{
  "Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "MinimumLevel": {
      "Default": "Warning",
      "Override": {
        "Microsoft.AspNetCore": "Warning"
      }
    },
    "WriteTo": [
      { "Name": "Console" },
      {
        "Name": "File",
        "Args": {
          "path": "./logs/satellite-provider-.log",
          "rollingInterval": "Day",
          "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
        }
      }
    ]
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=satelliteprovider;Username=postgres;Password=postgres"
  },
  "Jwt": {
    "Secret": "",
    "Issuer": "",
    "Audience": ""
  },
  "UavQuality": {
    "MinBytes": 5120,
    "MaxBytes": 5242880,
    "MaxAgeDays": 7,
    "CapturedAtFutureSkewSeconds": 30,
    "MinLuminanceVariance": 10.0,
    "MaxBatchSize": 100,
    "LuminanceSampleSize": 32
  },
  "MapConfig": {
    "Service": "GoogleMaps",
    "ApiKey": "",
    "TileSizePixels": 256,
    "AllowedZoomLevels": [ 15, 16, 17, 18, 19 ],
    "RetryBaseDelaySeconds": 1,
    "RetryMaxDelaySeconds": 30
  },
  "StorageConfig": {
    "TilesDirectory": "./tiles",
    "ReadyDirectory": "./ready"
  },
  "ProcessingConfig": {
    "MaxConcurrentDownloads": 4,
    "MaxConcurrentRegions": 20,
    "DefaultZoomLevel": 20,
    "QueueCapacity": 1000,
    "DelayBetweenRequestsMs": 50,
    "SessionTokenReuseCount": 100,
    "RegionProcessingTimeoutSeconds": 300,
    "RouteProcessingPollIntervalSeconds": 5,
    "MaxRoutePointSpacingMeters": 200.0,
    "LatLonTolerance": 0.0001
  },
  "TileProvision": {
    "MaxTilesPerBatch": 200,
    "ProgressEmitIntervalSeconds": 2
  },
  "CorsConfig": {
    "AllowedOrigins": []
  }
}
