# Module: Media service ## Purpose HTTP surface and domain logic for **§7–10** in `01_annotations.md`: create media, batch upload, list, delete, and download raw media file. ## Code - `MediaService` — persistence + disk writes, batch from `IFormFileCollection`. - `MediaController` — `[Route("media")]`, `[Authorize(Policy = "ANN")]`. - `POST /media`, `POST /media/batch` (form: `waypointId` + files), `GET /media`, `GET /media/{id}/file`, delete route as implemented. ## DTOs (this module) - `CreateMediaRequest`, `GetMediaQuery`, `MediaListItem` — plus any media-specific shapes used only here. ## Dependencies `AppDataConnection`, `PathResolver` (media dir), JWT user id from claims. ## Consumers Annotator UI / React upload flows described in suite §Media Browsing. ## Suite doc `01_annotations.md` §7–10; accepted formats table in same doc.