// EN: Command to create an exchange (return + new order in one transaction).
// VI: Command để tạo đổi hàng (trả hàng + đơn mới trong một transaction).

using MediatR;
using OrderService.API.Application.DTOs;

namespace OrderService.API.Application.Commands;

/// <summary>
/// EN: Command to process exchange — return items from original order and create new order with replacement items.
/// VI: Command để xử lý đổi hàng — trả items từ đơn gốc và tạo đơn mới với items thay thế.
/// </summary>
public record CreateExchangeCommand(
    Guid ShopId,
    Guid OriginalOrderId,
    List<ReturnItemDto> ReturnItems,
    List<ExchangeItemDto> NewItems,
    string Reason) : IRequest<CreateExchangeResult>;
