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;
}