Files
ai-ticket-platform/backend/apps/skills/schemas.py
2026-09-18 15:26:19 +08:00

58 lines
1.3 KiB
Python

from datetime import datetime
from typing import Any
from ninja import Schema
class SkillCreateIn(Schema):
code: str
name: str
description: str = ""
prompt_template: str = ""
input_schema: dict[str, Any] = {"type": "object"}
output_schema: dict[str, Any] = {"type": "object"}
output_enforcement: str = "validated_json"
example_input: dict[str, Any] = {}
class SkillDefinitionUpdateIn(Schema):
name: str | None = None
description: str | None = None
class SkillDraftUpdateIn(Schema):
prompt_template: str | None = None
input_schema: dict[str, Any] | None = None
output_schema: dict[str, Any] | None = None
output_enforcement: str | None = None
example_input: dict[str, Any] | None = None
class SkillVersionOut(Schema):
id: int
version: int
status: str
prompt_template: str
input_schema: dict[str, Any]
output_schema: dict[str, Any]
output_enforcement: str
structured_output_metrics: dict[str, Any]
example_input: dict[str, Any]
created_at: datetime
updated_at: datetime
published_at: datetime | None
class SkillDefinitionOut(Schema):
id: int
code: str
name: str
description: str
active_version: int | None
draft_version: int | None
updated_at: datetime
class SkillDetailOut(SkillDefinitionOut):
versions: list[SkillVersionOut]