Erste Produktivversion

This commit is contained in:
2026-08-08 20:31:58 +02:00
parent d8ded2816d
commit 7b21e2d1b4
110 changed files with 18170 additions and 644 deletions

View File

@@ -0,0 +1,29 @@
from typing import Any, Literal
from pydantic import BaseModel, Field
OpKind = Literal["item.create", "item.update", "item.delete", "items.clear_bought"]
class OpIn(BaseModel):
# Vom Client vergeben, bevor gesendet wird. Grundlage der Idempotenz:
# dieselbe op_id wird nie zweimal ausgefuehrt.
op_id: str = Field(min_length=8, max_length=64)
kind: OpKind
payload: dict[str, Any] = Field(default_factory=dict)
class OpBatchIn(BaseModel):
ops: list[OpIn] = Field(default_factory=list, max_length=200)
class OpResult(BaseModel):
op_id: str
status: Literal["applied", "duplicate", "rejected"]
result_id: str | None = None
error: str | None = None
class OpBatchOut(BaseModel):
rev: int
results: list[OpResult]