Lagerorte und Einheiten umbenennen

Beide kannte die API bisher nur als Anlegen und Loeschen. Wer sich vertippt
hatte, musste den Eintrag wegwerfen und neu anlegen - und verlor dabei genau
das, was daran haengt: Chargen zeigen auf die Lagerort-ID, Produkte und Gruppen
auf die Einheiten-ID. Ein Tippfehler kostete also Zuordnungen.

Neu ist je ein PATCH nach dem Vorbild der Gebinde, samt Pruefung auf doppelte
Namen ohne Ruecksicht auf Gross- und Kleinschreibung. Anders als beim Loeschen
duerfen auch eingebaute Einheiten umbenannt werden - auch das wie bei den
Gebinden. Art und Faktor einer Einheit bleiben dagegen fest: Sie stecken in
bereits umgerechneten Bestaenden, eine Aenderung wuerde die still verfaelschen.

Die Tests halten fest, worum es eigentlich geht - dass die Verweise das
Umbenennen ueberleben.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-23 18:23:51 +02:00
parent 4730d791e8
commit 794a81f58b
4 changed files with 175 additions and 2 deletions

View File

@@ -23,6 +23,13 @@ class UnitCreate(BaseModel):
factor: float = Field(gt=0)
class UnitUpdate(BaseModel):
"""Nur der Name. Art und Faktor bleiben fest sie stecken bereits in
umgerechneten Bestaenden, eine Aenderung wuerde die still verfaelschen."""
name: str = Field(min_length=1, max_length=64)
# ---- API-Tokens (externe Zugriffe, z.B. Home Assistant) ----
class ApiTokenOut(BaseModel):
model_config = ConfigDict(from_attributes=True)
@@ -156,6 +163,10 @@ class LocationCreate(BaseModel):
parent_id: int | None = None
class LocationUpdate(BaseModel):
name: str = Field(min_length=1, max_length=120)
# ---- Gebinde (Packung, Glas, …) ----
class PackageTypeCreate(BaseModel):
singular: str = Field(min_length=1, max_length=32)