Files
MABEA/backend/app/schemas/geraet_instanz.py
T
patrickandClaude Sonnet 5 6934276e8a
CI / backend-tests (push) Failing after 1m21s
CI / frontend-build (push) Successful in 22s
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
2026-09-04 20:55:09 +02:00

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