using CMSMicroservice.Domain.Enums;

namespace CMSMicroservice.Application.StockMovementCQ.Commands.CreateStockMovement;

/// <summary>
/// Command برای ایجاد حرکت موجودی جدید
/// </summary>
public record CreateStockMovementCommand : IRequest<CreateStockMovementResponseDto>
{
    /// <summary>شناسه آیتم موجودی</summary>
    public long InventoryItemId { get; init; }
    /// <summary>نوع حرکت</summary>
    public StockMovementType MovementType { get; init; }
    /// <summary>تعداد</summary>
    public int Quantity { get; init; }
    /// <summary>یادداشت</summary>
    public string? Note { get; init; }
    /// <summary>شماره مرجع</summary>
    public string? ReferenceNumber { get; init; }
    /// <summary>شناسه سفارش عادی</summary>
    public long? OrderId { get; init; }
    /// <summary>شناسه سفارش تخفیفی</summary>
    public long? DiscountOrderId { get; init; }
    /// <summary>شناسه کاربر انجام‌دهنده</summary>
    public long? PerformedByUserId { get; init; }
}
