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; }
}