# 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 |