using System.ComponentModel.DataAnnotations; namespace BlueLaminate.Scraper.CsFloat; /// /// Configuration for , bound from the /// CsFloat configuration section. Defaults match the live API so the /// client works with no configuration beyond the key. /// public sealed class CsFloatOptions { public const string SectionName = "CsFloat"; /// /// Developer key CSFloat requires on the Authorization header. Falls /// back to the legacy CSFLOAT_API_KEY environment variable (wired in the /// composition root). Only commands that hit the API need it. /// public string? ApiKey { get; set; } /// Active-listings endpoint. public string BaseUrl { get; set; } = "https://csfloat.com/api/v1/listings"; /// /// Listings per page. CSFloat caps this at 50; values outside [1, 50] are /// rejected at startup rather than silently clamped. /// [Range(1, 50, ErrorMessage = "CsFloat:MaxLimit must be between 1 and 50 (the CSFloat API page cap).")] public int MaxLimit { get; set; } = 50; }