BE-PR-008: add Proposal Accept tracking fields (source_proposal_id, source_essential_id)
- Add source_proposal_id and source_essential_id FK columns to Task model - Populate tracking fields during Proposal Accept task generation - Add generated_tasks relationship on Proposal model for reverse lookup - Expose source_proposal_id/source_essential_id in TaskResponse schema - Add GeneratedTaskBrief schema and include generated_tasks in ProposalDetailResponse - Proposal detail endpoint now returns generated story tasks with status
This commit is contained in:
@@ -93,6 +93,9 @@ class TaskResponse(TaskBase):
|
||||
resolution_summary: Optional[str] = None
|
||||
positions: Optional[str] = None
|
||||
pending_matters: Optional[str] = None
|
||||
# BE-PR-008: Proposal Accept tracking
|
||||
source_proposal_id: Optional[int] = None
|
||||
source_essential_id: Optional[int] = None
|
||||
created_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
@@ -344,10 +347,22 @@ class EssentialResponse(EssentialBase):
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class GeneratedTaskBrief(BaseModel):
|
||||
"""Brief info about a story task generated from Proposal Accept."""
|
||||
task_id: int
|
||||
task_code: Optional[str] = None
|
||||
task_type: str
|
||||
task_subtype: Optional[str] = None
|
||||
title: str
|
||||
status: Optional[str] = None
|
||||
source_essential_id: Optional[int] = None
|
||||
|
||||
|
||||
class ProposalDetailResponse(ProposalResponse):
|
||||
"""Extended Proposal response that embeds its Essential list."""
|
||||
"""Extended Proposal response that embeds its Essential list and generated tasks."""
|
||||
|
||||
essentials: List[EssentialResponse] = []
|
||||
generated_tasks: List[GeneratedTaskBrief] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
Reference in New Issue
Block a user