namespace Backend.MarketDataRequest { public sealed class LiveEquityRequest { public int RequestId { get; init; } public string Symbol { get; init; } = string.Empty; public string SecType { get; init; } = "STK"; public string Exchange { get; init; } = "SMART"; public string PrimaryExchange { get; init; } = "NASDAQ"; public string Currency { get; init; } = "USD"; public bool RegulatorySnapshot { get; init; } = false; public void Validate() { if (RequestId <= 0) throw new ArgumentException("RequestId must be greater than 0."); if (string.IsNullOrWhiteSpace(Symbol)) throw new ArgumentException("Symbol is required."); if (string.IsNullOrWhiteSpace(SecType)) throw new ArgumentException("SecType is required."); if (string.IsNullOrWhiteSpace(Exchange)) throw new ArgumentException("Exchange is required."); if (string.IsNullOrWhiteSpace(PrimaryExchange)) throw new ArgumentException("PrimaryExchange is required."); if (string.IsNullOrWhiteSpace(Currency)) throw new ArgumentException("Currency is required."); } } }