using System.ComponentModel.DataAnnotations; namespace Extrudex.API.DTOs.Materials; /// /// Response DTO for MaterialFinish entity. /// public class MaterialFinishResponse { /// Unique identifier for the finish. public Guid Id { get; set; } /// Human-readable name (e.g., "Basic", "Matte", "Silk"). 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 MaterialFinish. /// public class CreateMaterialFinishRequest { /// Human-readable name (e.g., "Basic", "Matte", "Silk"). 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 MaterialFinish. /// public class UpdateMaterialFinishRequest { /// Human-readable name (e.g., "Basic", "Matte", "Silk"). 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; } }