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