車主安心助手

這是待實作架構,不表示資料庫、LINE 身分驗證、檔案儲存或對外 API 已建置。

1. 建議系統分工

系統與資料流向
流程規劃 · 可開啟原圖放大閱讀

提案採 LINE Messaging API+LIFF,管理介面沿用團隊熟悉的 Next.js/TypeScript;獨立 PostgreSQL 支援訂單、收入與帳本的交易及唯一鍵,照片放私有物件儲存。這是技術提案,未選定主機、購買服務或部署;既有 CRM 的 MongoDB 不遷移。

第一版使用具版本的固定規則和人工確認。若後續加 AI,適合用於經授權的文字摘要、文件欄位擷取草稿與客服知識檢索;人身安全、肇責、理賠、實車車況、收益或付款均由可驗證規則與人員決定。這次不設定 AI API 金鑰。

2. LINE 與邀請歸屬

  • 平台先用一個專用 LINE 官方帳號,多個 B 以邀請連結識別;後期才做各 B 自有帳號的品牌方案。不得直接覆蓋現有 CRM LINE 用途。
  • LIFF 入口示意為 https://liff.line.me/{LIFF_ID}/invite/{code}。登入重導後仍須保留邀請意圖,並由伺服器驗證代碼。LINE 的 liff.state 只協助傳遞入口,不代表授權。LIFF 官方流程
  • 邀請可轉傳不代表個案可轉傳。公開來源碼不能當案件密碼;照片或帳本分享不可塞入同一來源 URL。
  • LINE Login 與 Messaging API 的 provider 配置需正確,伺服器驗證 token 與受眾,不能只相信前端 getProfile 傳來的 userId。LINE 身分資料官方指引既有好友、外部瀏覽器、登入取消、封鎖與重新加入都要驗收。
  • webhook 驗證原始 body 簽章,再交事件佇列;以 channel+webhookEventId 去重,處理重送、亂序、回覆失敗及未知事件。只有可靠收妥事件才確認接收。LINE webhook 文件
  • 訊息收回、使用者封鎖與資料撤回各有不同語意;收回內容需適當刪除或停止使用,不能仍在後台顯示原照片。

3. 核心資料模型

資料 核心欄位 約束
organizations/memberships 組織、成員、角色、停用狀態 B、C、客服與財務依角色;跨組織服務需明確關係
owners/identities A 內部 ID、LINE provider/subject、狀態 LINE 身分唯一;前端不能自行指定 A
vehicles/vehicle_access 車型、選填車牌、車主/駕駛/車隊關係 車輛不是帳號;共用車不讓駕駛互看私人案件
partner_invites B、活動、雜湊代碼、狀態、有效期限 停用/逾期不能新增綁定
referral_relationships A、原始 B、來源證據、確認時間、版本 同時只有一筆有效原始歸屬;更正留歷史
cases A、類型、來源、使用關係、狀態、版本 每張案件有擁有人與獨立授權,不靠來源授權
case_events 案件、事件、誰回報、時間、輸入版本 本人自述、業者回報、系統核實分開標示
case_assets 案件、私有物件鍵、類別、可用狀態 下載檢查權限,期限網址;未授權不得跨案讀
consents A、案件/訂單、用途、收件者、欄位/資產、告知版本、期限、撤回 原 B 查看、C 轉介、行銷、其他用途分開
service_providers C、品類、區域、時段、資格/文件狀態 沒有可確認的接案能力不顯示可即時派遣
referrals/assignments 案件、C、服務、授權 ID、接案狀態 使用最新有效授權,拒接不自動轉給下一家
quotes/orders A、案件、C、工項、金額、付款者、核准者、版本 報價變更需重新核准;同案多訂單各別結算
revenue_events 原交易、平台實收、退款、來源、證據、外部事件鍵 只採可信帳務事件;同來源事件唯一
revenue_allocations 收入事件、來源 A、受益 B、分配金額、依據 分配總額不可超過原收入;未分配列明;鎖定原 B
reward_rules 品類、比例、基礎、條件、版本及適用期間 交易鎖定規則快照,改版不追溯侵蝕既得權益
ledger_entries B、來源 A、原交易、帳項類型、整數金額、規則、冪等鍵 不覆寫歷史;新增沖回;幣別固定並隔離
payout_requests B 契約收款主體、保留額度、付款識別、狀態、核准及對帳 保留與可用額度更新在同一交易內,防止雙花
parking_sessions A、本人保存的位置/樓層、停車時間、提醒選擇、到期 不採持續追蹤,設定到期刪除
notifications 收件人、用途、來源事件、狀態、重試、退訂 行銷撤回即停止;不把送出認定本人完成行動

4. 最小化分享

接收方/用途 初始可分享提案 預設不分享
拖吊 C A 選定聯絡方式、救援位置、車型及必要救援需求 保單、事故責任描述、所有歷史、銀行資料
修復 C 車型、所選車損照片、需求、聯絡及預約地區 無關精準定位、對方身分、保單及 B 的回饋餘額
B 案件協助 A 明確選定的進度、聯絡與文件 未授權照片、定位、全部歷史交易
保險服務窗口 該次選定的事故與保單資料 其他無關消費、行蹤、B 的回饋收款資料
美容/保養/中古車商 新需求及本次必要車況、聯絡資料 自動繼承事故的全部授權
財務 收益、帳項、核對所需憑證及收款資料 無關事故照片、即時位置

授權需精確到公司、人員角色、目的、欄位及所選資產。傳送前及每次讀取都重新檢查;撤回時取消待送工作與存取。照片包含他人的資訊時,提供裁切/遮蔽流程;A 的同意不自動涵蓋對方個資。

5. 事件與生命週期

主事件規劃:invite_confirmedcase_createdsafety_self_reportedasset_addedconsent_granted/revokedreferral_requested/accepted/declinedquote_approvedorder_completedrevenue_confirmed/refundedreward_accrued/adjusted/availablepayout_requested/confirmed/failedcase_closed

各事件包含唯一 ID、來源、時間、案件/訂單、操作者、版本及必要的相關鍵。付款及收入由伺服器權限角色產生;車主不能透過聊天「已付款」直接造成收入入帳。

案件可暫停、取消、重開與轉人工;每次變更保留原因。同一事件重送不再建案、不再媒合、不再記收入、不再發回饋。

6. 保存與刪除

正式保存期間按「暫存登入/未建案、案件資料、定位/停車、授權證據、交易帳務、備份」分別定義,並由營運主體與適用要求確認後填入告知。未決定前,不啟用真實蒐集。

定位只用於本次目的;醫療/病歷文件不列首版上傳項。若後期有必要,另設具法定基礎及嚴格權限的流程。原始照片及文件保存在私有空間,記錄目的、到期、刪除、備份清除及收件方處理狀態。

A 可以查詢、匯出本人資料、提出更正及停止/刪除需求;B 查看本人/組織帳本。交易留存與一般行銷資料分開,A 退訂不取消本人案件查詢,B 的既得收益依約處理。

7. 對外 API 設計提案

群組 操作 身分/授權要求
LINE 接收 webhook、LIFF session exchange 簽章或經驗證 token;速率限制
邀請 B 建立/停用、A 確認歸屬 B 的組織權限、A 本人
案件 建立、更新本人自述、照片、摘要 A 本人或有授權的指派角色
授權 建立、查詢、撤回 A 本人,保留告知版本
服務 需求、轉介、接案、報價、核准 對應 B/C 角色;不可自行擴張欄位
財務 收入核對、退款、回饋、付款對帳 專屬財務權限、冪等及審計
停車 場站查詢、本人的停車筆記及提醒 查詢可不建帳;保存需本人同意

8. 既有 TS Dent CRM 介接

在 A 選定 TS Dent 為 C 並授權後,送最小化的商機資料與外部案件/訂單 ID。CRM 回傳接案、報價、完工及可核實收入事件;以外部 ID 去重,不直接把所有 LINE 好友匯入 CRM。

CRM 的完工狀態不等於平台已收取媒合費。收入以實際結算資料為準,回饋帳本由本子專案負責。介接故障可重試及人工對帳,失敗不顯示轉介成功。