Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
81 lines
2.1 KiB
Python
81 lines
2.1 KiB
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from app.models.task import TaskDispatchStatus, TaskPriority, TaskQuadrant, TaskStatus
|
|
from app.schemas.goal import GoalOut
|
|
from app.schemas.reminder import ReminderOut
|
|
from app.schemas.task import TaskOut
|
|
from app.schemas.todo import TodoOut
|
|
|
|
|
|
class ScheduleCenterDaySummary(BaseModel):
|
|
date: str
|
|
todo_total: int
|
|
todo_completed: int
|
|
task_due_total: int
|
|
high_priority_total: int
|
|
reminder_total: int
|
|
goal_total: int
|
|
|
|
|
|
class ScheduleCenterFocusTaskOut(BaseModel):
|
|
id: str
|
|
title: str
|
|
status: TaskStatus
|
|
priority: TaskPriority
|
|
quadrant: TaskQuadrant | None = None
|
|
assignee_type: str | None = None
|
|
assignee_id: str | None = None
|
|
dispatch_status: TaskDispatchStatus
|
|
due_date: datetime | None = None
|
|
|
|
|
|
class ScheduleCenterQuadrantTaskOut(BaseModel):
|
|
id: str
|
|
title: str
|
|
status: TaskStatus
|
|
priority: TaskPriority
|
|
dispatch_status: TaskDispatchStatus
|
|
assignee_type: str | None = None
|
|
assignee_id: str | None = None
|
|
|
|
|
|
class ScheduleCenterQuadrantOut(BaseModel):
|
|
id: TaskQuadrant
|
|
title: str
|
|
subtitle: str
|
|
color: str
|
|
glow_color: str
|
|
icon: str
|
|
tasks: list[ScheduleCenterQuadrantTaskOut] = Field(default_factory=list)
|
|
|
|
|
|
class ScheduleCenterCommanderSummaryOut(BaseModel):
|
|
total: int = 0
|
|
queued: int = 0
|
|
running: int = 0
|
|
completed: int = 0
|
|
failed: int = 0
|
|
overall_status: str | None = None
|
|
|
|
|
|
class ScheduleCenterMonthOut(BaseModel):
|
|
month: str
|
|
days: list[ScheduleCenterDaySummary]
|
|
|
|
|
|
class ScheduleCenterDateOut(BaseModel):
|
|
date: str
|
|
todos: list[TodoOut]
|
|
tasks: list[TaskOut]
|
|
reminders: list[ReminderOut]
|
|
goals: list[GoalOut]
|
|
summary: ScheduleCenterDaySummary
|
|
focus_tasks: list[ScheduleCenterFocusTaskOut] = Field(default_factory=list)
|
|
quadrants: list[ScheduleCenterQuadrantOut] = Field(default_factory=list)
|
|
commander_summary: ScheduleCenterCommanderSummaryOut = Field(
|
|
default_factory=ScheduleCenterCommanderSummaryOut,
|
|
)
|
|
generated_at: datetime
|