# Component Relationship Diagram ```mermaid graph TD subgraph "External" Client[HTTP Clients] GoogleMaps[Google Maps API] PG[(PostgreSQL)] FS[File System] end subgraph "SatelliteProvider" WebApi[WebApi
Program.cs endpoints] Route[RouteManagement
RouteService + RouteProcessingService] Region[RegionProcessing
RegionService + Queue + Workers] Tile[TileDownloader
GoogleMapsDownloaderV2 + TileService] DA[DataAccess
Repositories + Migrations] Common[Common
DTOs + Interfaces + Configs + GeoUtils] end Client -->|HTTP| WebApi WebApi --> Route WebApi --> Region WebApi --> Tile Route --> Region Route --> DA Region --> Tile Region --> DA Tile --> DA Tile -->|HTTPS| GoogleMaps Tile --> FS Region --> FS Route --> FS DA --> PG WebApi --> DA WebApi --> Common Route --> Common Region --> Common Tile --> Common DA --> Common ``` ## Component Summary | # | Component | Project(s) | Responsibility | |---|-----------|-----------|---------------| | 1 | Common | SatelliteProvider.Common | Shared DTOs, interfaces, configs, GeoUtils | | 2 | DataAccess | SatelliteProvider.DataAccess | Database entities, Dapper repositories, DbUp migrations | | 3 | TileDownloader | SatelliteProvider.Services (GoogleMapsDownloaderV2, TileService) | Google Maps tile acquisition, storage, caching | | 4 | RegionProcessing | SatelliteProvider.Services (RegionService, RegionProcessingService, RegionRequestQueue) | Region request lifecycle, tile stitching, CSV/summary output | | 5 | RouteManagement | SatelliteProvider.Services (RouteService, RouteProcessingService) | Route creation, point interpolation, geofencing, consolidated map output | | — | WebApi | SatelliteProvider.Api (Program.cs) | HTTP endpoints, DI configuration, startup |