Integrate formal decisions with cases

This commit is contained in:
2026-08-06 12:42:20 +02:00
parent 2f030e56a9
commit 23f5091a2b
17 changed files with 2048 additions and 23 deletions
+14
View File
@@ -82,6 +82,19 @@ class CaseUpdateRequest(BaseModel):
metadata: dict[str, Any] | None = None
class CaseDecisionRequest(BaseModel):
model_config = ConfigDict(extra="forbid")
expected_case_revision: int = Field(ge=1)
effective_at: datetime
decision_type: str = Field(min_length=1, max_length=120)
operative_result: str = Field(min_length=1, max_length=20_000)
reasoning: str = Field(min_length=1, max_length=50_000)
conditions: list[str] = Field(default_factory=list, max_length=100)
change_reason: str = Field(min_length=1, max_length=1_000)
idempotency_key: str = Field(min_length=1, max_length=255)
class CaseListResponse(BaseModel):
cases: list[dict[str, Any]]
total: int
@@ -99,6 +112,7 @@ class CaseTimelineResponse(BaseModel):
__all__ = [
"CaseGrantRequest",
"CaseDecisionRequest",
"CaseHistoryResponse",
"CaseListResponse",
"CaseStatusWriteRequest",