54 lines
1.2 KiB
Python
54 lines
1.2 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"}
|
|
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
|
|
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]
|
|
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]
|