Implement per-system AI flags
This commit is contained in:
@@ -16,6 +16,11 @@ class TenCodesBody(BaseModel):
|
||||
ten_codes: Dict[str, str]
|
||||
|
||||
|
||||
class AiFlagsBody(BaseModel):
|
||||
stt_enabled: Optional[bool] = None
|
||||
correlation_enabled: Optional[bool] = None
|
||||
|
||||
|
||||
@router.get("")
|
||||
async def list_systems():
|
||||
return await fstore.collection_list("systems")
|
||||
@@ -54,6 +59,30 @@ async def delete_system(system_id: str):
|
||||
await fstore.doc_delete("systems", system_id)
|
||||
|
||||
|
||||
# ── Per-system AI flag overrides ──────────────────────────────────────────────
|
||||
|
||||
@router.put("/{system_id}/ai-flags")
|
||||
async def update_system_ai_flags(system_id: str, body: AiFlagsBody):
|
||||
"""
|
||||
Set per-system AI flag overrides. Only fields included in the body are
|
||||
written; omitted fields remain unchanged (or absent, meaning inherit global).
|
||||
Pass null to clear an override and fall back to the global flag.
|
||||
"""
|
||||
existing = await fstore.doc_get("systems", system_id)
|
||||
if not existing:
|
||||
raise HTTPException(404, f"System '{system_id}' not found.")
|
||||
|
||||
current: dict = existing.get("ai_flags") or {}
|
||||
for field, value in body.model_dump(exclude_unset=False).items():
|
||||
if value is None:
|
||||
current.pop(field, None) # clear override → inherit global
|
||||
else:
|
||||
current[field] = value
|
||||
|
||||
await fstore.doc_update("systems", system_id, {"ai_flags": current})
|
||||
return {"ok": True, "ai_flags": current}
|
||||
|
||||
|
||||
# ── Ten-codes endpoints ────────────────────────────────────────────────────────
|
||||
|
||||
@router.get("/{system_id}/ten-codes")
|
||||
|
||||
Reference in New Issue
Block a user