using System.ComponentModel.DataAnnotations; namespace Extrudex.API.DTOs.Materials; /// /// Response DTO for MaterialModifier entity. /// public class MaterialModifierResponse { /// Unique identifier for the modifier. public Guid Id { get; set; } /// Human-readable name (e.g., "Carbon Fiber", "Wood Fill"). public string Name { get; set; } = string.Empty; /// Foreign key to the parent MaterialBase. public Guid MaterialBaseId { get; set; } /// Name of the parent material base (for display). public string MaterialBaseName { get; set; } = string.Empty; /// Timestamp when this record was created (UTC). public DateTime CreatedAt { get; set; } /// Timestamp when this record was last updated (UTC). public DateTime UpdatedAt { get; set; } } /// /// Request DTO for creating a new MaterialModifier. /// public class CreateMaterialModifierRequest { /// Human-readable name (e.g., "Carbon Fiber", "Wood Fill"). Required, max 50 characters. [Required(ErrorMessage = "Name is required.")] [StringLength(50, MinimumLength = 1, ErrorMessage = "Name must be between 1 and 50 characters.")] public string Name { get; set; } = string.Empty; /// Foreign key to the parent MaterialBase. Required. [Required(ErrorMessage = "MaterialBaseId is required.")] public Guid MaterialBaseId { get; set; } } /// /// Request DTO for updating an existing MaterialModifier. /// public class UpdateMaterialModifierRequest { /// Human-readable name (e.g., "Carbon Fiber", "Wood Fill"). Required, max 50 characters. [Required(ErrorMessage = "Name is required.")] [StringLength(50, MinimumLength = 1, ErrorMessage = "Name must be between 1 and 50 characters.")] public string Name { get; set; } = string.Empty; /// Foreign key to the parent MaterialBase. Required. [Required(ErrorMessage = "MaterialBaseId is required.")] public Guid MaterialBaseId { get; set; } }