namespace NetinaShop.Domain.CommandQueries.Commands;

public sealed record CreateProductCommand(
string PersianName,
string EnglishName,
string Summery,
string ExpertCheck,
string Tags,
string Warranty,
bool BeDisplayed,
double Cost,
double PackingCost,
int Stock,
bool HasExpressDelivery,
int MaxOrderCount,
bool IsSpecialOffer,
Guid BrandId,
Guid CategoryId,
DiscountSDto SpecialOffer,
List<SpecificationSDto> Specifications,
List<StorageFileSDto> Files):IRequest<ProductLDto>;

public sealed record UpdateProductCommand(
    Guid Id,
    string PersianName,
    string EnglishName,
    string Summery,
    string ExpertCheck,
    string Tags,
    string Warranty,
    bool BeDisplayed,
    double Cost,
    double PackingCost,
    int Stock,
    bool HasExpressDelivery,
    int MaxOrderCount,
    bool IsSpecialOffer,
    Guid BrandId,
    Guid CategoryId,
    DiscountSDto SpecialOffer,
    List<SpecificationSDto> Specifications,
    List<StorageFileSDto> Files) : IRequest<bool>;

public sealed record ChangeProductDisplayedCommand(Guid Id,bool BeDisplayed) : IRequest<bool>;

public sealed record DeleteProductCommand(Guid Id) : IRequest<bool>;

public sealed record CalculateProductDiscountCommand(object Product) : IRequest<bool>;