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