Change Status Completed / Closed
對應 legacy:
/quote_bids/change_status/completed/{quote_bid_id}.json
/quote_bids/change_status/reviews/{quote_bid_id}.json with is_completed=1
/quote_bids/change_status/reviews/{quote_bid_id}.json with is_closed=1快速結論
- 用途:標記 work completed / payment completed。
- actor:consumer 或 provider,依狀態與 request data 判斷。
- new API:目前沒有獨立 completed route;現行
reviewsaction 不接is_completed/is_closed狀態參數。 - legacy:
completed會轉進reviews分支。 - 2026-05-12 正式機
get-lancer_access.log*查詢:completed0 筆,reviews + is_completed=10 筆,reviews + is_closed=10 筆。 - 2026-06-18 狀態同步:已確認現況,近期正式流量為 0,暫不列下一支 migration 候選;若後續出現流量,再獨立補 migration。
completed alias
legacy 先把:
filter = completed
is_completed = 1
skip_review = 1
is_creator = actor 是否為 consumer再進 reviews 分支。
is_completed 規則
成功條件:
- quote bid 已 hired,或 provider side status 已 hired。
成功 side effect:
- 若
quote_bids.quote_status_id = Hired:quote_status_id = WorkCompletedprovider_status_id = WorkCompletedcompleted_on = now
- 若只有 provider side hired:
provider_status_id = WorkCompleted
- 更新
quote_feedbacks.quote_status_id = WorkCompleted - 寫 BidStatusChange activity
- 可能處理 Wallet / Sudopay book-it amount
is_closed 規則
成功條件:
- quote bid 已 WorkCompleted,或 provider side status 已 WorkCompleted。
成功 side effect:
- 若
quote_bids.quote_status_id = WorkCompleted:quote_status_id = PaymentCompletedprovider_status_id = PaymentCompletedclosed_on = now
- 若只有 provider side WorkCompleted:
provider_status_id = PaymentCompleted
- 寫 BidStatusChange activity
- 可能處理 Wallet / Sudopay payment completed
後續處理
- 不要把
completed只當成另一個 review API。 - 這條其實是 quote bid lifecycle 狀態流。
- 若後續有正式流量或產品確認需要恢復,建議獨立 helper,不要塞進
ChangeStatusReviewsHelper裡越塞越大。