namespace Meezi.API.Models.Menu;

public record MenuCategoryDto(
    string Id,
    string Name,
    string? NameAr,
    string? NameEn,
    int SortOrder,
    string? TaxId,
    decimal DiscountPercent,
    string? Icon,
    string? IconPresetId,
    string? IconStyle,
    string? ImageUrl,
    bool IsActive,
    string? KitchenStationId);

public record CreateMenuCategoryRequest(
    string Name,
    string? NameAr,
    string? NameEn,
    int SortOrder,
    string? TaxId,
    decimal DiscountPercent,
    string? Icon = null,
    string? IconPresetId = null,
    string? IconStyle = null,
    string? ImageUrl = null,
    bool IsActive = true,
    string? KitchenStationId = null);

public record UpdateMenuCategoryRequest(
    string? Name,
    string? NameAr,
    string? NameEn,
    int? SortOrder,
    string? TaxId,
    decimal? DiscountPercent,
    string? Icon,
    string? IconPresetId,
    string? IconStyle,
    string? ImageUrl,
    bool? IsActive,
    string? KitchenStationId);

public record MenuItemDto(
    string Id,
    string CategoryId,
    string Name,
    string? NameAr,
    string? NameEn,
    string? Description,
    decimal Price,
    decimal DiscountPercent,
    string? ImageUrl,
    string? VideoUrl,
    string? Model3dUrl,
    bool IsAvailable);

public record CreateMenuItemRequest(
    string CategoryId,
    string Name,
    string? NameAr,
    string? NameEn,
    string? Description,
    decimal Price,
    decimal DiscountPercent = 0,
    string? ImageUrl = null,
    string? VideoUrl = null,
    string? Model3dUrl = null,
    bool IsAvailable = true);

public record UpdateMenuItemRequest(
    string? CategoryId,
    string? Name,
    string? NameAr,
    string? NameEn,
    string? Description,
    decimal? Price,
    decimal? DiscountPercent,
    string? ImageUrl,
    string? VideoUrl,
    string? Model3dUrl,
    bool? IsAvailable);

public record UpdateMenuItemAvailabilityRequest(bool IsAvailable);
