BE-PR-010: deprecate feat_task_id — retain column, read-only compat
- Updated model docstring with full deprecation strategy - Updated column comment to mark as deprecated (BE-PR-010) - Updated schema/router comments for deprecation clarity - Added deprecation doc: docs/BE-PR-010-feat-task-id-deprecation.md - feat_task_id superseded by Task.source_proposal_id (BE-PR-008)
This commit is contained in:
@@ -51,7 +51,7 @@ def _serialize_proposal(db: Session, proposal: Proposal, *, include_essentials:
|
||||
"project_id": proposal.project_id,
|
||||
"created_by_id": proposal.created_by_id,
|
||||
"created_by_username": creator.username if creator else None,
|
||||
"feat_task_id": proposal.feat_task_id, # DEPRECATED — read-only compat
|
||||
"feat_task_id": proposal.feat_task_id, # DEPRECATED (BE-PR-010): read-only for legacy rows. Clients should use generated_tasks.
|
||||
"created_at": proposal.created_at,
|
||||
"updated_at": proposal.updated_at,
|
||||
}
|
||||
@@ -237,7 +237,7 @@ def update_proposal(
|
||||
raise HTTPException(status_code=403, detail="Proposal edit permission denied")
|
||||
|
||||
data = proposal_in.model_dump(exclude_unset=True)
|
||||
# Never allow client to set feat_task_id
|
||||
# DEPRECATED (BE-PR-010): feat_task_id is read-only; strip from client input
|
||||
data.pop("feat_task_id", None)
|
||||
|
||||
for key, value in data.items():
|
||||
@@ -365,7 +365,7 @@ def accept_proposal(
|
||||
})
|
||||
next_num = task.id + 1 # use real id for next code to stay consistent
|
||||
|
||||
# Update proposal status (do NOT write feat_task_id — deprecated)
|
||||
# Update proposal status — feat_task_id is NOT written (deprecated per BE-PR-010)
|
||||
proposal.status = ProposalStatus.ACCEPTED
|
||||
|
||||
db.commit()
|
||||
|
||||
Reference in New Issue
Block a user