flowchart LR
Client[Clients<br/>Browser / Mobile / Other Services] -->|HTTP / REST / JSON| API[Salieri.Api<br/>ASP.NET Core Web API]
subgraph Infra["Infrastructure / DevOps optional"]
CI[CI/CD Pipeline]
Container[Container / Docker / K8s]
Monitoring[Monitoring / Logs / Health Checks]
end
API --> CI
API --> Container
API --> Monitoring
subgraph App["Salieri.Api (runtime)"]
API --> Middleware[Middleware<br/>Auth, Logging, Error Handling]
API --> Controllers[Controllers<br/>RoomsController, ...]
Controllers --> Services[Services / Business Logic]
AppService --> DI[Dependency Injection Container]
Controllers --> DTOs[DTOs / ViewModels]
Services --> Repositories[Repositories / Data Access]
Repositories --> DbContext[SalieriDbContext<br/>EF Core]
DbContext -->|ORM mapping| Entities[(Entities<br/>Room, Capacity, RoomType, Facility, BookableByRole, ...)]
AppService --> Config[Configuration<br/>appsettings.json / env vars]
Config --> Secrets[(Secrets / Key Vault)]
AppService --> Config[Configuration<br/>appsettings.json / env vars]
AppService --> Migrations[EF Core Migrations]
Controllers ---|constructor injection| DI
Services ---|constructor injection| DI
Repositories ---|constructor injection| DI
end