32 lines
777 B
Python
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
|