feat: milestones, due dates, overdue filter, CSV export

This commit is contained in:
Zhi
2026-02-22 19:12:35 +00:00
parent f48b829511
commit 7485f29ada
4 changed files with 192 additions and 0 deletions

View File

@@ -34,6 +34,8 @@ class IssueBase(BaseModel):
priority: IssuePriorityEnum = IssuePriorityEnum.MEDIUM
tags: Optional[str] = None
depends_on_id: Optional[int] = None
due_date: Optional[datetime] = None
milestone_id: Optional[int] = None
class IssueCreate(IssueBase):
@@ -54,6 +56,8 @@ class IssueUpdate(BaseModel):
assignee_id: Optional[int] = None
tags: Optional[str] = None
depends_on_id: Optional[int] = None
due_date: Optional[datetime] = None
milestone_id: Optional[int] = None
# Resolution specific
resolution_summary: Optional[str] = None
positions: Optional[str] = None
@@ -69,6 +73,8 @@ class IssueResponse(IssueBase):
resolution_summary: Optional[str]
positions: Optional[str]
pending_matters: Optional[str]
due_date: Optional[datetime] = None
milestone_id: Optional[int] = None
created_at: datetime
updated_at: Optional[datetime]
@@ -163,3 +169,32 @@ class ProjectMemberResponse(ProjectMemberBase):
class Config:
from_attributes = True
# Milestone schemas
class MilestoneBase(BaseModel):
title: str
description: Optional[str] = None
due_date: Optional[datetime] = None
class MilestoneCreate(MilestoneBase):
project_id: int
class MilestoneUpdate(BaseModel):
title: Optional[str] = None
description: Optional[str] = None
status: Optional[str] = None
due_date: Optional[datetime] = None
class MilestoneResponse(MilestoneBase):
id: int
status: str
project_id: int
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True