namespace PowderCoating.Core.Entities;

/// <summary>
/// Stores per-manufacturer URL patterns so the AI lookup service can build
/// direct product page URLs rather than relying solely on search results.
/// These records are global (CompanyId = 0) and shared across all tenants.
/// </summary>
public class ManufacturerLookupPattern : BaseEntity
{
    /// <summary>Display / match name (case-insensitive contains check).</summary>
    public string ManufacturerName { get; set; } = string.Empty;

    /// <summary>
    /// URL template. Supported placeholders:
    ///   {partNumber}  – manufacturer part number (slashes normalized to hyphens)
    ///   {slug}        – color name transformed by SlugTransform
    ///   {colorCode}   – color code as-is
    /// If a required placeholder is missing at runtime the template is skipped and
    /// the system falls back to a Serper search URL.
    /// </summary>
    public string? ProductUrlTemplate { get; set; }

    /// <summary>How the color name is turned into a URL slug.</summary>
    public string SlugTransform { get; set; } = "LowerHyphen"; // LowerHyphen | LowerUnderscore | TitleHyphen | AsIs

    /// <summary>
    /// Manufacturer/retailer domain (e.g. "prismaticpowders.com").
    /// Used by the search result URL picker even when no template is configured.
    /// </summary>
    public string? Domain { get; set; }

    public bool IsActive { get; set; } = true;
    public string? Notes { get; set; }
}
