video-accessibility/backend/app
Vadym Samoilenko 595897e61a feat(w-12): JobBrief model, endpoints, migration + brief→job linkage
- JobBrief model (DRAFT→SUBMITTED→APPROVED→FULFILLED) with 6 CRUD
  endpoints: list, create, get, patch (DRAFT only), submit, approve
- All endpoints use MembershipContext; read=VIEWER, mutate=MANAGER,
  approve=ADMIN for org-scoped access
- create_job accepts brief_id Form field; validates APPROVED brief,
  copies organization_id/project_id/deadline from brief, marks brief
  FULFILLED after job insert
- organization_id now populated from project client_id on job create
  (fixes missing multi-tenant field on new jobs)
- migration_2026-04-29-000001: job_briefs collection + 4 indexes
- Wired briefs router into main.py

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 20:38:08 +01:00
..
api/v1 feat(w-12): JobBrief model, endpoints, migration + brief→job linkage 2026-04-29 20:38:08 +01:00
core refactor(mt-15): consolidate authz in routes_jobs and dependencies 2026-04-29 20:26:07 +01:00
lib docs: add canonical documentation + audit cleanup 2026-04-29 14:22:51 +01:00
middleware feat(pr4+pr5): hotkeys, unified status labels, upload size constant 2026-04-29 18:42:03 +01:00
migrations feat(w-12): JobBrief model, endpoints, migration + brief→job linkage 2026-04-29 20:38:08 +01:00
models feat(w-12): JobBrief model, endpoints, migration + brief→job linkage 2026-04-29 20:38:08 +01:00
prompts feat: per-client glossary — hybrid exact/vector retrieval + AI injection 2026-04-29 13:03:38 +01:00
schemas feat(l3): optimistic locking for VTT edits (ETag / 409 Conflict) 2026-04-29 19:01:57 +01:00
services feat(mt-11): cross-org assignment guard in language_qc 2026-04-29 20:22:46 +01:00
tasks feat(w-13): structured failure handlers in tasks; fix translation→TTS_FAILED bug 2026-04-29 20:28:37 +01:00
telemetry docs: add canonical documentation + audit cleanup 2026-04-29 14:22:51 +01:00
main.py feat(w-12): JobBrief model, endpoints, migration + brief→job linkage 2026-04-29 20:38:08 +01:00