namespace SatelliteProvider.IntegrationTests; public record DownloadTileResponse { public Guid Id { get; set; } public int ZoomLevel { get; set; } public double Latitude { get; set; } public double Longitude { get; set; } public double TileSizeMeters { get; set; } public int TileSizePixels { get; set; } public string ImageType { get; set; } = string.Empty; public string? MapsVersion { get; set; } public string FilePath { get; set; } = string.Empty; public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } } public record RequestRegionRequest { public Guid Id { get; set; } public double Latitude { get; set; } public double Longitude { get; set; } public double SizeMeters { get; set; } public int ZoomLevel { get; set; } public bool StitchTiles { get; set; } = false; } public record RegionStatusResponse { public Guid Id { get; set; } public string Status { get; set; } = string.Empty; public string? CsvFilePath { get; set; } public string? SummaryFilePath { get; set; } public int TilesDownloaded { get; set; } public int TilesReused { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } } public class RoutePointInput { [System.Text.Json.Serialization.JsonPropertyName("lat")] public double Lat { get; set; } [System.Text.Json.Serialization.JsonPropertyName("lon")] public double Lon { get; set; } } public class GeoPointInput { [System.Text.Json.Serialization.JsonPropertyName("lat")] public double Lat { get; set; } [System.Text.Json.Serialization.JsonPropertyName("lon")] public double Lon { get; set; } } public class GeofencePolygonInput { [System.Text.Json.Serialization.JsonPropertyName("northWest")] public GeoPointInput? NorthWest { get; set; } [System.Text.Json.Serialization.JsonPropertyName("southEast")] public GeoPointInput? SouthEast { get; set; } } public class GeofencesInput { [System.Text.Json.Serialization.JsonPropertyName("polygons")] public List Polygons { get; set; } = new(); } public class CreateRouteRequest { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string? Description { get; set; } public double RegionSizeMeters { get; set; } public int ZoomLevel { get; set; } public List Points { get; set; } = new(); [System.Text.Json.Serialization.JsonPropertyName("geofences")] public GeofencesInput? Geofences { get; set; } public bool RequestMaps { get; set; } = false; public bool CreateTilesZip { get; set; } = false; } public class RoutePointModel { public double Latitude { get; set; } public double Longitude { get; set; } public string PointType { get; set; } = string.Empty; public int SequenceNumber { get; set; } public int SegmentIndex { get; set; } public double? DistanceFromPrevious { get; set; } } public class RouteResponseModel { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string? Description { get; set; } public double RegionSizeMeters { get; set; } public int ZoomLevel { get; set; } public double TotalDistanceMeters { get; set; } public int TotalPoints { get; set; } public List Points { get; set; } = new(); public bool RequestMaps { get; set; } public bool MapsReady { get; set; } public string? CsvFilePath { get; set; } public string? SummaryFilePath { get; set; } public string? StitchedImagePath { get; set; } public string? TilesZipPath { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } }