myrmidon / python /src /server /schemas /projects.py
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
3.12 kB
"""
Project Schemas for API Requests and Responses
"""
from datetime import datetime
from typing import Any
from pydantic import BaseModel
class CreateProjectRequest(BaseModel):
title: str
description: str | None = None
github_repo: str | None = None
docs: list[Any] | None = None
features: list[Any] | None = None
data: list[Any] | None = None
technical_sources: list[str] | None = None
business_sources: list[str] | None = None
pinned: bool | None = None
class UpdateProjectRequest(BaseModel):
title: str | None = None
description: str | None = None
github_repo: str | None = None
docs: list[Any] | None = None
features: list[Any] | None = None
data: list[Any] | None = None
technical_sources: list[str] | None = None
business_sources: list[str] | None = None
pinned: bool | None = None
class AssignableUser(BaseModel):
id: str
name: str
role: str
class CreateTaskRequest(BaseModel):
project_id: str
title: str
description: str | None = None
status: str | None = "todo"
priority: str | None = "medium"
assignee: str | None = "User"
assignee_id: str | None = None
task_order: int | None = 0
feature: str | None = None
due_date: datetime | None = None
knowledge_source_ids: list[str] | None = None
is_recurring: bool | None = False
crawler_target_id: str | None = None
schedule_config: dict[str, Any] | None = None
class RefineTaskRequest(BaseModel):
title: str
description: str
class GenerateTaskFromAlertRequest(BaseModel):
alert_id: str
assignee_id: str | None = None
class Attachment(BaseModel):
filename: str
url: str
class UpdateTaskRequest(BaseModel):
title: str | None = None
description: str | None = None
status: str | None = None
priority: str | None = None
assignee: str | None = None
assignee_id: str | None = None
collaborator_agent_ids: list[str] | None = None
task_order: int | None = None
feature: str | None = None
attachments: list[Attachment] | None = None
due_date: datetime | None = None
is_recurring: bool | None = None
crawler_target_id: str | None = None
schedule_config: dict[str, Any] | None = None
class AgentStatusUpdateRequest(BaseModel):
status: str
agent_id: str
class AgentOutputUpdateRequest(BaseModel):
output: dict[str, Any]
agent_id: str
class CreateDocumentRequest(BaseModel):
document_type: str
title: str
content: dict[str, Any] | None = None
tags: list[str] | None = None
author: str | None = None
class UpdateDocumentRequest(BaseModel):
title: str | None = None
content: dict[str, Any] | None = None
tags: list[str] | None = None
author: str | None = None
class CreateVersionRequest(BaseModel):
field_name: str
content: dict[str, Any]
change_summary: str | None = None
change_type: str | None = "update"
document_id: str | None = None
created_by: str | None = "system"
class RestoreVersionRequest(BaseModel):
restored_by: str | None = "system"