feat(growth): automate sales source reconciliation

This commit is contained in:
ogt
2026-07-14 18:37:14 +08:00
parent 5cdf1403bf
commit 3c142c1950
10 changed files with 705 additions and 43 deletions

View File

@@ -73,3 +73,17 @@ PChome 後台業績匯出
- `daily_sales_snapshot``realtime_sales_monthly` 最新日期落後不超過 1 天。
- `/daily_sales``/growth_analysis` 圖表 smoke 通過。
- 失敗檔只告警一次,並被移到 `匯入失敗`
## 來源 Reconciliation 合約
`PChomeSalesAcquisitionService` 每輪必須把四個授權來源的設定狀態、探測結果、
連續空跑/失敗次數、fallback chain、下一次重試時間與通知去重決策寫入同一張
`pchome_sales_acquisition_receipts`。正式合約名稱為
`pchome_sales_source_reconciliation_v1`
- ready 但無檔:維持 30 分鐘固定重試,並繼續探測所有已啟用 fallback。
- provider 失敗:使用 30、60、120、240 分鐘有界指數退避。
- disabled 來源:必須顯示為 `disabled`,不得誤報為已探測但沒有候選。
- 相同 stale/error fingerprint6 小時內抑制重複通知;狀態改變立即通知。
- 低階 Drive importer 由 acquisition controller 呼叫時不直接發 stale 告警,避免雙重通知。
- receipt 與 API 只能輸出 public-safe 狀態,不得回傳 URL、帳號、token 或郵件內容。