MCPcopy
hub / github.com/dataelement/Clawith / Task

Class Task

backend/app/models/task.py:13–56  ·  view source on GitHub ↗

Task assigned to or managed by a digital employee.

Source from the content-addressed store, hash-verified

11
12
13class Task(Base):
14 """Task assigned to or managed by a digital employee."""
15
16 __tablename__ = "tasks"
17
18 id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
19 agent_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("agents.id"), nullable=False)
20 title: Mapped[str] = mapped_column(String(500), nullable=False)
21 description: Mapped[str | None] = mapped_column(Text)
22 type: Mapped[str] = mapped_column(
23 Enum("todo", "supervision", name="task_type_enum", create_constraint=False),
24 default="todo",
25 nullable=False,
26 )
27 status: Mapped[str] = mapped_column(
28 Enum("pending", "doing", "done", name="task_status_enum"),
29 default="pending",
30 nullable=False,
31 )
32 priority: Mapped[str] = mapped_column(
33 Enum("low", "medium", "high", "urgent", name="task_priority_enum"),
34 default="medium",
35 nullable=False,
36 )
37 assignee: Mapped[str] = mapped_column(String(50), default="self") # "self" or user_id
38 created_by: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False)
39 due_date: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
40
41 # Supervision specific fields
42 supervision_target_user_id: Mapped[uuid.UUID | None] = mapped_column(UUID(as_uuid=True), ForeignKey("users.id"))
43 supervision_target_name: Mapped[str | None] = mapped_column(String(100))
44 supervision_channel: Mapped[str | None] = mapped_column(String(50))
45 remind_schedule: Mapped[str | None] = mapped_column(String(100))
46
47 created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
48 updated_at: Mapped[datetime] = mapped_column(
49 DateTime(timezone=True), server_default=func.now(), onupdate=func.now()
50 )
51 completed_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
52
53 # Relationships
54 agent: Mapped["Agent"] = relationship(back_populates="tasks")
55 creator: Mapped["User"] = relationship("User", foreign_keys=[created_by])
56 logs: Mapped[list["TaskLog"]] = relationship(back_populates="task", cascade="all, delete-orphan")
57
58
59class TaskLog(Base):

Callers 4

delegate_taskMethod · 0.90
_manage_tasksFunction · 0.90
create_taskFunction · 0.90
_create_task_recordMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected