using Extrudex.Domain.Base;

namespace Extrudex.Domain.Entities;

/// <summary>
/// Surface finish descriptor for a material. This is REQUIRED on every spool
/// record. The default value is "Basic" (not "Standard").
/// </summary>
public class MaterialFinish : AuditableEntity
{
    /// <summary>
    /// Human-readable name of the finish (e.g., "Basic", "Matte", "Silk", "Glitter").
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// Foreign key to the parent MaterialBase. A finish belongs to exactly one base material.
    /// </summary>
    public Guid MaterialBaseId { get; set; }

    /// <summary>
    /// Navigation to the parent MaterialBase.
    /// </summary>
    public MaterialBase MaterialBase { get; set; } = null!;

    /// <summary>
    /// Navigation collection of spools with this finish.
    /// </summary>
    public ICollection<Spool> Spools { get; set; } = new List<Spool>();
}