agent-todo-tracker/agent_todos/models.py

32 lines
777 B
Python

from dataclasses import dataclass, field
from datetime import datetime
from enum import Enum
from typing import Optional
class Priority(str, Enum):
high = "high"
medium = "medium"
low = "low"
class Status(str, Enum):
open = "open"
in_progress = "in_progress"
blocked = "blocked"
resolved = "resolved"
@dataclass
class Todo:
id: Optional[int]
title: str
repo: str = ""
status: Status = Status.open
priority: Priority = Priority.medium
assignee: str = ""
tags: list[str] = field(default_factory=list)
created_at: str = field(default_factory=lambda: datetime.utcnow().isoformat() + "Z")
updated_at: str = field(default_factory=lambda: datetime.utcnow().isoformat() + "Z")
resolved_at: Optional[str] = None