35 lines
1.4 KiB
C#
35 lines
1.4 KiB
C#
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; }
|
||
}
|