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:
zhi
2026-03-30 10:46:20 +00:00
parent cb0be05246
commit c84884fe64
4 changed files with 58 additions and 1 deletions

View File

@@ -78,6 +78,14 @@ class Proposal(Base):
lazy="select",
)
# BE-PR-008: reverse lookup — story tasks generated from this Proposal
generated_tasks = relationship(
"Task",
foreign_keys="Task.source_proposal_id",
lazy="select",
viewonly=True,
)
# ---- convenience alias ------------------------------------------------
@hybrid_property
def proposal_code(self) -> str | None: