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