Files
MABEA/backend/alembic/versions/0026_dokumenttyp.py
T
patrickandClaude Sonnet 5 069a1ee7ee
CI / backend-tests (push) Successful in 2m14s
CI / frontend-build (push) Successful in 36s
feat(dokumente): DOC-002 feste Dokumenttypen statt Freitext
Neues Pflichtfeld dokumenttyp (Enum: Prüfprotokoll/Wartungsbericht/
Bedienungsanleitung/Rechnung/Zulassungsdokument/Sonstiges, Migration 0026)
- macht Dokumente kategorisier- und filterbar statt nur per Freitext-
Beschreibung auffindbar zu sein. Backend: Pflichtfeld beim Upload, optionaler
Query-Filter bei GET /dokumente. Frontend: Auswahl-Dropdown beim Upload,
Typ-Badge + Filter-Dropdown in der Liste (DokumentePanel).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-08 10:32:25 +02:00

34 lines
1.1 KiB
Python

"""DOC-002: feste Dokumenttypen statt reinem Freitext (Kategorie beim Upload).
Revision ID: 0026_dokumenttyp
Revises: 0025_material_suchindex
Create Date: 2026-09-08
"""
from typing import Sequence, Union
from alembic import op
revision: str = "0026_dokumenttyp"
down_revision: Union[str, None] = "0025_material_suchindex"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.execute(
"CREATE TYPE dokument_typ AS ENUM "
"('pruefprotokoll', 'wartungsbericht', 'bedienungsanleitung', 'rechnung', "
"'zulassungsdokument', 'sonstiges')"
)
op.execute(
"ALTER TABLE dokument ADD COLUMN dokumenttyp dokument_typ NOT NULL DEFAULT 'sonstiges'"
)
# Default nur für den Backfill nötig - künftige Inserts sollen den Typ immer
# explizit mitgeben (Anwendungsebene), kein stiller Fallback mehr.
op.execute("ALTER TABLE dokument ALTER COLUMN dokumenttyp DROP DEFAULT")
def downgrade() -> None:
op.execute("ALTER TABLE dokument DROP COLUMN dokumenttyp")
op.execute("DROP TYPE dokument_typ")