| """ |
| 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" |
|
|