%%{init: {'theme': 'neutral'}}%% sequenceDiagram autonumber participant Admin as Admin (GalleryAdminPage) participant FE as Frontend Services (gallery) participant BE as Backend API (GalleryController) participant Z as Zonerama API participant DB as Postgres Note over Admin,BE: Profile & refresh FE->>BE: GET /api/v1/admin/gallery/profile BE-->>FE: Zonerama profile (cached) FE->>BE: POST /api/v1/admin/gallery/refresh BE->>Z: Fetch albums/photos Z-->>BE: Payload BE->>DB: Upsert albums/photos BE-->>FE: 200 OK rect rgba(230,255,230,0.2) Note over Admin,BE: Fetch single album FE->>BE: POST /api/v1/admin/gallery/albums/fetch {id} BE->>Z: GET album by id Z-->>BE: Album data BE->>DB: Upsert album BE-->>FE: 200 OK end rect rgba(230,230,255,0.2) Note over FE,BE: Public endpoints FE->>BE: GET /api/v1/gallery/albums BE->>DB: List albums BE-->>FE: Albums FE->>BE: GET /api/v1/gallery/albums/:id BE->>DB: Album+photos BE-->>FE: Album detail FE->>BE: GET /api/v1/gallery/proxy-image?url=... BE->>Z: Download image (proxy) Z-->>BE: Binary BE-->>FE: Image end