namespace IronLicensing.Client; public class LicensingOptions { /// /// Public API key for client authentication (pk_live_xxx or pk_test_xxx) /// public string PublicKey { get; set; } = string.Empty; /// /// Product identifier slug (e.g., "git-cleaner") /// public string ProductSlug { get; set; } = string.Empty; /// /// Base URL for the IronLicensing API /// public string ApiBaseUrl { get; set; } = "https://ironlicensing.com/api/v1"; /// /// Number of days to allow offline usage before requiring online validation /// public int OfflineGraceDays { get; set; } = 7; /// /// How often to re-validate license when online (in minutes) /// public int CacheValidationMinutes { get; set; } = 60; /// /// HTTP request timeout /// public TimeSpan HttpTimeout { get; set; } = TimeSpan.FromSeconds(30); /// /// Optional signing public key for offline signature verification. /// If not provided, will be fetched from server and cached. /// public string? SigningPublicKey { get; set; } /// /// Enable strict offline validation requiring valid signatures. /// If false, allows offline validation without signature verification. /// public bool RequireSignatureForOffline { get; set; } = true; /// /// Custom success URL for purchase redirects (deep link) /// public string SuccessUrl { get; set; } = "ironlicensing://purchase-success"; /// /// Custom cancel URL for purchase redirects (deep link) /// public string CancelUrl { get; set; } = "ironlicensing://purchase-cancelled"; }