refactor: update milestone/task status enums to new state machine values

Milestone: open/freeze/undergoing/completed/closed (was open/pending/deferred/progressing/closed)
Task: open/pending/undergoing/completed/closed (was open/pending/progressing/closed)

- Add MilestoneStatusEnum to schemas with typed validation
- Add started_at field to Milestone model
- Update all router/CLI references from progressing->undergoing
- Add completed status handling in task transition logic
This commit is contained in:
zhi
2026-03-17 00:04:29 +00:00
parent 9e14df921e
commit 9e22c97ae8
8 changed files with 38 additions and 23 deletions

View File

@@ -18,7 +18,8 @@ class TaskTypeEnum(str, Enum):
class TaskStatusEnum(str, Enum):
OPEN = "open"
PENDING = "pending"
PROGRESSING = "progressing"
UNDERGOING = "undergoing"
COMPLETED = "completed"
CLOSED = "closed"
@@ -193,11 +194,19 @@ class ProjectMemberResponse(BaseModel):
from_attributes = True
class MilestoneStatusEnum(str, Enum):
OPEN = "open"
FREEZE = "freeze"
UNDERGOING = "undergoing"
COMPLETED = "completed"
CLOSED = "closed"
# Milestone schemas
class MilestoneBase(BaseModel):
title: str
description: Optional[str] = None
status: Optional[str] = "open"
status: Optional[MilestoneStatusEnum] = MilestoneStatusEnum.OPEN
due_date: Optional[datetime] = None
planned_release_date: Optional[datetime] = None
depend_on_milestones: Optional[List[str]] = None
@@ -212,7 +221,7 @@ class MilestoneCreate(MilestoneBase):
class MilestoneUpdate(BaseModel):
title: Optional[str] = None
description: Optional[str] = None
status: Optional[str] = None
status: Optional[MilestoneStatusEnum] = None
due_date: Optional[datetime] = None
planned_release_date: Optional[datetime] = None
depend_on_milestones: Optional[List[str]] = None
@@ -223,6 +232,7 @@ class MilestoneResponse(MilestoneBase):
id: int
project_id: int
created_by_id: Optional[int] = None
started_at: Optional[datetime] = None
created_at: datetime
updated_at: Optional[datetime] = None