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
33 lines
988 B
Python
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;")
|