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
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
"""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")
|
||||
Reference in New Issue
Block a user