**Goal:** Allow assigning a **single team** to each event, similar to how tags work — but with a stricter structure and controlled creation. ### Behavior - Each event can be linked to **exactly one team** (or none) - Teams are **not** created on-the-fly like tags — they must be created explicitly via a dedicated interface or API - Teams have: - `id` (UUID) - `name` (required, unique) - `description` (optional) ### Backend Tasks - [ ] Create `Team` model: - `id` (UUID) - `name` (str, unique, required) - `description` (str, optional) - [ ] Add `team_id` to the `Event` model (nullable FK) - [ ] Add team serialization in event API responses (`GET /events`, `GET /events/{id}`) - [ ] Support assigning `team_id` in event creation and update endpoints - `POST /events` - `PATCH /events/{id}` - [ ] Expose list of teams via: - `GET /teams` - `POST /teams` - `DELETE /teams/{id}` ### Frontend Tasks - [ ] Add dropdown/select input for **one team** in the event form - [ ] Fetch list of teams from `GET /teams` - [ ] Show assigned team on event detail view ### Notes - Only one team can be assigned to an event - Team assignment is meant for organizing ownership/responsibility — not for filtering or tagging like tags