Files
MABEA/backend/alembic/versions/0005_add_objektposition_code.py
patrickandClaude Sonnet 5 69e7d0c8d0
CI / backend-tests (push) Successful in 1m1s
CI / frontend-build (push) Successful in 18s
Karte 10: Geräte-Code für Objektpositionen (Code128-Vorbereitung) + Code-Vorschlag
objektposition.code (nullable, unique) für Geräte-Etiketten, separat von
seriennummer. Lookup-Endpunkt für Geräte-Scan (GET /objektpositionen/code/{code})
sowie Auto-Vorschlag PRAEFIX-NNN für Objekt- und Objektposition-Codes
(GET /objekte/naechster-code, GET /objektpositionen/naechster-code).

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

33 lines
988 B
Python

"""objektposition.code: Code128-Etikett für Geräte-Exemplare
Revision ID: 0005_add_objektposition_code
Revises: 0004_add_fach
Create Date: 2026-09-04
Konzept-Ergänzung zu Karte 10 / Prompt 09: objekt.code und material.code
identifizieren Objekt bzw. Materialart, aber bei materialtyp='geraet_sn'
identifiziert der Code das konkrete Exemplar an der Objektposition, nicht
den Materialstamm. Eigenes nullable/unique Feld, kein Umbau bestehender
Spalten (seriennummer bleibt separates Attribut).
"""
from typing import Sequence, Union
from alembic import op
revision: str = "0005_add_objektposition_code"
down_revision: Union[str, None] = "0004_add_fach"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
op.execute(
"""
ALTER TABLE objektposition ADD COLUMN code TEXT UNIQUE;
"""
)
def downgrade() -> None:
op.execute("ALTER TABLE objektposition DROP COLUMN code;")