using System.Text.Json.Serialization; namespace SatelliteProvider.Common.DTO; public class CreateRouteRequest { // AZ-809: [JsonRequired] enforces presence at the deserializer; range and // shape checks live in `SatelliteProvider.Api/Validators/CreateRouteRequestValidator`. // Description and Geofences remain optional. The legacy in-service // `RouteValidator` is left in place as defense-in-depth for direct // service-layer callers (e.g. unit tests). [JsonRequired] public Guid Id { get; set; } [JsonRequired] public string Name { get; set; } = string.Empty; public string? Description { get; set; } [JsonRequired] public double RegionSizeMeters { get; set; } [JsonRequired] public int ZoomLevel { get; set; } [JsonRequired] public List Points { get; set; } = new(); [JsonPropertyName("geofences")] public Geofences? Geofences { get; set; } [JsonRequired] public bool RequestMaps { get; set; } [JsonRequired] public bool CreateTilesZip { get; set; } }