Karte 14 Schritt 2 (Admin-Teil) + Frontend für Anhänger-Kopplung
Backend: geraet_instanz-CRUD (Liste/Anlegen/Status ändern inkl. optionalem Fehlbestand pro Gerät/Löschen), pruefintervall_monate in Objektposition- Schemas verdrahtet (Prüfdatum -> naechste_pruefung wird automatisch berechnet, Monatsrechnung ohne neue Dependency). Frontend: GeraeteInstanzenListe ersetzt das Einzel-SN-Feld im Admin-Portal (ObjektPositionenPanel) durch eine Instanz-Liste mit Status/Prüfdatum/ Bemerkung je Exemplar - löst das Karte-14-Kernproblem (mehrere Geräte pro Position). ObjektSection: Anhänger-Kopplung bei Anlage und nachträglich änderbar. Kontroll-Erfassung (PositionCard/KontrollPage) bleibt unverändert - die komplett neue Erfassungs-UI für geraet_sn (Umsetzungsschritt 4, Karte 14) ist bewusst nicht Teil dieses Commits. 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,31 @@
|
||||
import uuid
|
||||
from datetime import date
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
from app.models.geraet_instanz import GeraetStatus
|
||||
|
||||
|
||||
class GeraetInstanzCreate(BaseModel):
|
||||
seriennummer: str
|
||||
|
||||
|
||||
class GeraetInstanzRead(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
id: uuid.UUID
|
||||
objektposition_id: uuid.UUID
|
||||
seriennummer: str
|
||||
pruefdatum: date | None
|
||||
naechste_pruefung: date | None
|
||||
status: GeraetStatus
|
||||
bemerkung: str | None
|
||||
|
||||
|
||||
class GeraetInstanzStatusUpdate(BaseModel):
|
||||
status: GeraetStatus
|
||||
pruefdatum: date | None = None
|
||||
bemerkung: str | None = None
|
||||
# Karte 14: "pro Gerät entscheidbar" - defekt/in_reparatur kann optional
|
||||
# einen Fehlbestand erzeugen (nutzt bestehende Fehlbestand-Infrastruktur),
|
||||
# muss aber nicht (z.B. Ersatzgerät bereits vorhanden).
|
||||
erzeuge_fehlbestand: bool = False
|
||||
@@ -52,6 +52,7 @@ class ObjektpositionRead(BaseModel):
|
||||
ablaufdatum: date | None
|
||||
chargennummer: str | None
|
||||
code: str | None
|
||||
pruefintervall_monate: int | None
|
||||
|
||||
|
||||
class ObjektpositionUpdate(BaseModel):
|
||||
@@ -62,6 +63,7 @@ class ObjektpositionUpdate(BaseModel):
|
||||
ablaufdatum: date | None = None
|
||||
chargennummer: str | None = None
|
||||
code: str | None = None
|
||||
pruefintervall_monate: int | None = None
|
||||
|
||||
|
||||
class ObjektpositionCreate(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user