using System.Collections.Generic; using eprintServer.Entities; namespace eprintServer.DTOs; public class CustomizableProductDetailDto { public long Id { get; set; } public List Names { get; set; } = new List(); public List Descriptions { get; set; } = new List(); public decimal BasePrice { get; set; } public bool IsCanvasEnabled { get; set; } public int MinimumOrderQuantity { get; set; } public int BaseDeliveryDays { get; set; } public bool? IsBranchingEnabled { get; set; } public decimal? UnitWeight { get; set; } public bool Archive { get; set; } public CategoryDto Category { get; set; } public List Steps { get; set; } = new List(); // Kept exactly from your original code public FileModel? Image { get; set; } public QuantityPricingConfig? QuantityPricingConfig { get; set; } public List Mockups { get; set; } = new List(); public List? AllowedQuantities { get; set; } = new List(); public bool? Has3DPreview { get; set; } public ThreeDConfig? ThreeDConfig { get; set; } public List TextureSlots { get; set; } = new List(); public FileModel? UvMapImage { get; set; } public FileModel? ThreeDModelFile { get; set; } } public class MockupDetailDto { public long Id { get; set; } public string? Name { get; set; } public double DesignWidth { get; set; } public double DesignHeight { get; set; } public double PrintWidth { get; set; } public double PrintHeight { get; set; } public FileModel? File { get; set; } public FileModel? Thumbnail { get; set; } } public class CategoryDto { public long Id { get; set; } public List Name { get; set; } = new List(); } public class StepDetailDto { public long Id { get; set; } public int StepOrder { get; set; } public string StepType { get; set; } public long? NextStepId { get; set; } public List StepName { get; set; } = new List(); public List FormElements { get; set; } = new List(); public class TextureSlotDto { public long Id { get; set; } public string Name { get; set; } public string TextureType { get; set; } // Enum to string public UvCoordinates UvCoordinates { get; set; } public FileModel? File { get; set; } } } public class FormElementDetailDto { public long Id { get; set; } public List Label { get; set; } = new List(); public string InputType { get; set; } public string FieldName { get; set; } public bool IsRequired { get; set; } public int ElementOrder { get; set; } public string? DefaultValue { get; set; } public string? ValidationRules { get; set; } public string? Placeholder { get; set; } // ADDED: Pricing configurations public string? PriceConfigType { get; set; } public ColorPricingConfig? ColorPricingConfig { get; set; } public QuantityPricingConfig? QuantityPricingConfig { get; set; } public List Options { get; set; } = new List(); } public class FormElementOptionDetailDto { public long Id { get; set; } public List OptionLabel { get; set; } = new List(); public string OptionValue { get; set; } public int OptionOrder { get; set; } // ADDED: Specific price config public PriceConfig? PriceConfig { get; set; } public long? NextStepId { get; set; } } public class TextureSlotDto { public long Id { get; set; } public string Name { get; set; } public string TextureType { get; set; } // Enum to string public UvCoordinates UvCoordinates { get; set; } public FileModel? File { get; set; } }