57 lines
2.1 KiB
C#
57 lines
2.1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Extrudex.API.DTOs.Materials;
|
|
|
|
/// <summary>
|
|
/// Response DTO for MaterialFinish entity.
|
|
/// </summary>
|
|
public class MaterialFinishResponse
|
|
{
|
|
/// <summary>Unique identifier for the finish.</summary>
|
|
public Guid Id { get; set; }
|
|
|
|
/// <summary>Human-readable name (e.g., "Basic", "Matte", "Silk").</summary>
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
/// <summary>Foreign key to the parent MaterialBase.</summary>
|
|
public Guid MaterialBaseId { get; set; }
|
|
|
|
/// <summary>Name of the parent material base (for display).</summary>
|
|
public string MaterialBaseName { get; set; } = string.Empty;
|
|
|
|
/// <summary>Timestamp when this record was created (UTC).</summary>
|
|
public DateTime CreatedAt { get; set; }
|
|
|
|
/// <summary>Timestamp when this record was last updated (UTC).</summary>
|
|
public DateTime UpdatedAt { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Request DTO for creating a new MaterialFinish.
|
|
/// </summary>
|
|
public class CreateMaterialFinishRequest
|
|
{
|
|
/// <summary>Human-readable name (e.g., "Basic", "Matte", "Silk"). Required, max 50 characters.</summary>
|
|
[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;
|
|
|
|
/// <summary>Foreign key to the parent MaterialBase. Required.</summary>
|
|
[Required(ErrorMessage = "MaterialBaseId is required.")]
|
|
public Guid MaterialBaseId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Request DTO for updating an existing MaterialFinish.
|
|
/// </summary>
|
|
public class UpdateMaterialFinishRequest
|
|
{
|
|
/// <summary>Human-readable name (e.g., "Basic", "Matte", "Silk"). Required, max 50 characters.</summary>
|
|
[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;
|
|
|
|
/// <summary>Foreign key to the parent MaterialBase. Required.</summary>
|
|
[Required(ErrorMessage = "MaterialBaseId is required.")]
|
|
public Guid MaterialBaseId { get; set; }
|
|
} |