QuoteBids Details

quote_bids 是目前 API migration 中最複雜的區塊,包含報價、聯絡專家、narrow match、狀態流、付款與通知。

已深入調查

API / 流程文件狀態
/quote_bids/change_status/{filter}/{quote_bid_id}.jsonchange_status/README.md拆成 filter 文件維護
/quote_bids/want_to_contact_provider/{quote_bid_id}.jsonwant_to_contact_provider.md已補 legacy parity + PHPUnit,staging success / error 17 已驗證
/quote_bids/switch_to_manual_quote/{quote_bid_id}.jsonswitch_to_manual_quote.md已補 action + routing + PHPUnit;staging wallet debt path 已驗證
/quote_bids/want_to_contact_provider_for_call_jwt / /quote_bids/call_fee_jwtcall_jwt.md已補 action + call fee transaction + PHPUnit;需補 staging callback 實測
/quote_bids/consumer_want_provider_quote/{quote_bid_id}.jsonconsumer_want_provider_quote.md已補 action + PHPUnit + staging 已驗證
/quote_bids/provider_request_review/{quote_bid_id}.jsonprovider_request_review.md已補 action + routing + PHPUnit;staging response / DB side effect 已驗證
/quote_bids/provider_accept_narrow_match/{quote_bid_id}.jsonprovider_accept_narrow_match.md已補 action + PHPUnit;narrow_status_id 由 param/body 帶入
/quote_bids/preview_quote_fee/{quote_bid_id}/is_auto_quote:{is_auto_quote}.jsonpreview_quote_fee.md已補 action + routing + PHPUnit;staging response / DB side effect 已驗證
/quote_bids/provider_receive_phone/{quote_bid_id}.jsonprovider_receive_phone.md已補 action + routing + PHPUnit;staging response / DB side effect 已驗證
/quote_bids/edit/{quote_bid_id}.jsonedit.md已補 legacy response / provider_tag parity + PHPUnit;正式流量 16569 筆
/quote_bids/consumer_want_to_see_more_quote/{quote_request_id}/page:{page}/limit:{limit}.jsonconsumer_want_to_see_more_quote.md已補 action + routing + PHPUnit;staging response 對表已完成
/quote_bids/add_consumer_survey/quote_bid_id:{quote_bid_id}.jsonadd_consumer_survey.md已補 action + routing + PHPUnit;staging response / DB 對表已完成
/quote_bids/get_consumer_survey/quote_bid_id:{quote_bid_id}.jsonget_consumer_survey.md已在新專案正式環境長期運行;視為過去已處理完成

子文件規則

  • change_status/:用 filter 拆文件,不再新增一份混合文件。
  • provider_accept_narrow_match/:主文件放流程,子文件放付款、queue/log、測試案例。
  • 與付款、queue、log 有關的共通規則,優先連到 /Users/mattsu/Documents/Common Process Documents,不要在每支 API 重複貼完整背景。

目前同步狀態

  • consumer_want_provider_quote:staging 已完成成功、request closed / hired guard、duplicate guard 實測,DB side effect 已回填文件。
  • want_to_contact_provider:已補 legacy parity、PHPUnit、新專案 staging success 與 error=17 insignificant 實測;剩餘缺口是 prime / TapPay sequence。
  • switch_to_manual_quote:已補 action、routing、wallet 成功路徑與已聯絡 guard PHPUnit;staging 已驗證 wallet debt 未達刷卡門檻 path,多卡刷卡 fallback 仍需補測。
  • provider_accept_narrow_match:staging load balancer 已切換,付款 / queue / guard 規則維持在子文件。
  • provider_request_review:正式機 access log 有 961POST 200;new staging 已驗證 response、review_requested_atProviderInviteReview activity、security hash 與 Request_Review queue/log。
  • preview_quote_fee:正式機 gzip access log 有 41144 筆,實際 caller 使用 GET /quote_bids/preview_quote_fee/{quote_bid_id}/is_auto_quote:{is_auto_quote}.json;已補 action / routing / PHPUnit / staging baseline。
  • provider_receive_phone:正式機 access log 有 6246 筆,實際 caller 使用 POST /quote_bids/provider_receive_phone/{quote_bid_id}.json;已補 new route / action / PHPUnit / staging baseline。
  • edit:正式機 access log 有 16569POST 200;web-app 只送 provider_tag=favorite 或空字串,且依賴 response message=Success。已修正 new response 與 legacy provider_tag 寫入語意。
  • consumer_want_to_see_more_quote:正式機 access log 有 1688GET 200;web-app 使用 GET path id + page / limit,這支只讀取可邀請 narrow match 清單,不做任何同步 side effect;staging response 對表已完成。
  • add_consumer_survey:正式機 access log 有 598POST 200;web-app 使用 named path quote_bid_id:{id},body 是 total_pay/comment/unit,這支只 upsert quote_consumer_surveys;staging response / DB 對表已完成。
  • get_consumer_survey:已在新專案正式環境長期運行;2026-06-03 查 legacy 正式機 access log 無命中,判斷流量已不在 legacy 專案。後續以現行 new production 行為為準,不再把 legacy 差異列為 migration 待修正項。

SMS / Every8d retry 屬外部服務設定或第三方服務問題,不作為上述 API migration parity 的阻塞條件。