namespace PowderCoating.Application.Interfaces; public class InventoryAiLookupResult { public bool Success { get; set; } public string? ErrorMessage { get; set; } // Identity public string? Manufacturer { get; set; } public string? ManufacturerPartNumber { get; set; } public string? ColorName { get; set; } public string? ColorCode { get; set; } public string? Description { get; set; } // Coating specs public string? Finish { get; set; } public decimal? CureTemperatureF { get; set; } public int? CureTimeMinutes { get; set; } public string? ColorFamilies { get; set; } // comma-separated e.g. "Green,Blue" public bool? RequiresClearCoat { get; set; } // Application properties public decimal? CoverageSqFtPerLb { get; set; } // typical ~80-120 sq ft/lb public decimal? TransferEfficiency { get; set; } // typical 50-75% public decimal? UnitCostPerLb { get; set; } // price per lb/unit if found in search results public string? VendorName { get; set; } // manufacturer/vendor name for dropdown matching public string? SpecPageUrl { get; set; } // URL of the product page that was fetched public string? ImageUrl { get; set; } // og:image or first product image found on the page public string? Reasoning { get; set; } // brief explanation of what was found } public interface IInventoryAiLookupService { /// /// Search the web for powder coating product info and use AI to extract structured data. /// Task LookupAsync( string? manufacturer, string? colorName, string? colorCode, string? partNumber); }