報價內容欄位

目的

說明 provider 送出報價時,request 參數如何轉成 quote_bids 的報價內容欄位。

重點:rating_type 不是 quote_bids 欄位。它是 API request 參數,用來決定要寫哪一組 DB 欄位。

相關欄位

欄位意義
price_noteprovider 填寫的報價說明
quote_last_update_on報價內容最後更新時間
flat_rate_at固定總價 / 單次報價金額
hourly_rate_at小時計價的每小時金額
hourly_rate_for小時計價的預估工時
quote_amount報價金額,用於顯示或後續判斷
pricing_unit價格單位,例如 單次小時
is_on_site_visit_required_for_quote需要現場估價
is_more_information_required需要 consumer 補更多資訊
is_quote_viewedquote card 是否已被看過;送出或更新報價會重設
is_requestor_readedrequestor 是否已讀這筆 bid;送出或更新報價會重設
provider_last_read_onprovider 視角的最後讀取時間;送出報價時通常寫入 now + 3 秒

rating_type 對應

rating_type 是前端送來的報價模式,不會原樣存入 DB。後端會把它轉成下列欄位組合。

request rating_type使用者語意寫入欄位
flat固定總價 / 單次報價flat_rate_at, quote_amount, pricing_unit=單次
hourly小時計價hourly_rate_at, hourly_rate_for, quote_amount, pricing_unit=小時
quote需要現場估價後才能報價is_on_site_visit_required_for_quote=1
required需要更多資訊才能報價is_more_information_required=1

flat

代表 provider 直接報一個總價。

rating_type=flat
flat_rate_at=5000
 
DB:
flat_rate_at = 5000
quote_amount = 5000
pricing_unit = 單次

hourly

代表 provider 報小時計價。

rating_type=hourly
hourly_rate_at=800
hourly_rate_for=3
 
DB:
hourly_rate_at = 800
hourly_rate_for = 3
quote_amount = 2400
pricing_unit = 小時

如果沒有 hourly_rate_forquote_amount 通常先等於 hourly_rate_at

quote

代表 provider 需要現場勘查或進一步評估,現在不能直接給固定金額。

rating_type=quote
 
DB:
is_on_site_visit_required_for_quote = 1
is_book_it_now_enabled = 0
is_requestor_paid_for_book_it = 0

因為沒有明確價格,book-it-now 會被關閉。

required

代表 provider 需要 consumer 補更多資訊,現在不能直接報價。

rating_type=required
 
DB:
is_more_information_required = 1
is_book_it_now_enabled = 0
is_requestor_paid_for_book_it = 0

為什麼要先重置 pricing 欄位

送出或更新報價前,流程會先清掉多個 pricing 欄位,再依本次 rating_type 寫入其中一組。

這是為了避免舊報價模式殘留。

例子:

第一次:
rating_type=hourly
hourly_rate_at=800
 
第二次改成:
rating_type=flat
flat_rate_at=5000

如果第二次沒有先清掉 hourly_rate_at,DB 會同時殘留小時計價與固定總價,後續畫面、報表或通知可能不知道該用哪一組。

因此判讀報價內容時,不要找 rating_type 欄位;要看目前有效的 pricing 欄位組合。

相關流程