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
32 lines
868 B
Python
32 lines
868 B
Python
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
|