namespace PowderCoating.Application.DTOs.Inventory;

/// <summary>Result returned by the catalog lookup endpoint to auto-fill inventory fields.</summary>
public class PowderCatalogLookupResult
{
    public int Id { get; set; }
    public string VendorName { get; set; } = string.Empty;
    public string Sku { get; set; } = string.Empty;
    public string ColorName { get; set; } = string.Empty;
    public string? Description { get; set; }
    public decimal UnitPrice { get; set; }
    public string? ImageUrl { get; set; }
    public string? SdsUrl { get; set; }
    public string? TdsUrl { get; set; }
    public string? ApplicationGuideUrl { get; set; }
    public string? ProductUrl { get; set; }
    public bool IsDiscontinued { get; set; }

    // Coating specs — populated for scan-contributed entries and AI-augmented lookups
    public decimal? CureTemperatureF { get; set; }
    public int? CureTimeMinutes { get; set; }
    public string? Finish { get; set; }
    public string? ColorFamilies { get; set; }
    public bool? RequiresClearCoat { get; set; }
    public decimal? CoverageSqFtPerLb { get; set; }
    public decimal? SpecificGravity { get; set; }
    public decimal? TransferEfficiency { get; set; }
}

/// <summary>Stats shown on the SuperAdmin Powder Catalog management page.</summary>
public class PowderCatalogStatsDto
{
    public int TotalProducts { get; set; }
    public int ActiveProducts { get; set; }
    public int DiscontinuedProducts { get; set; }
    public int VendorCount { get; set; }
    public int UserContributedProducts { get; set; }
    public DateTime? LastImportedAt { get; set; }
}

/// <summary>Result returned after a catalog import operation.</summary>
public class PowderCatalogImportResult
{
    public bool Success { get; set; }
    public int Inserted { get; set; }
    public int Updated { get; set; }
    public int Skipped { get; set; }
    public int Errors { get; set; }
    public string? ErrorMessage { get; set; }
}
