Lunch 分帳 Phase 1.1
Lunch · 本機原型
今日結餘

邊個欠邊個

正數應收 · 負數應付 · 加總永遠 0

你嘅淨結餘
$0
以邊個身份睇

欠得最多

下一次最可能要畀返 · 淨結餘最低 3 人(欠得最多 → 少啲)

最近餐次

步驟 1 / 4

邊個食?

剔今餐參加者,預設常客。

選擇模式:
參加者
步驟 1

上傳單據

影低或者相片上傳,AI 會自動讀取所有品項。

📷
點擊或拖曳上傳
支援 JPG / PNG / HEIC
流水

餐次紀錄

點一餐睇明細;Σ amount 必須 = 0。

Executable design plan · v5

Lunch 分帳:均分只係預設,真實一餐可以好亂

鎖定 gross_bill 之餘,補齊每人份額、優惠歸屬、小菜指定人。 Human approachable 視覺不變;簡單路徑仍然 30 秒。

gross_bill 已鎖 主餐先分 · 優惠後扣 首頁 Top3 應付 手機優先 · 響應式
01 · 語意鎖定

輸入係收據實付;主餐先分;優惠後扣;帳本記淨額腿

Form 已確認 gross_bill。v5:自訂主餐合計對住「總額 − 小菜」,優惠之後先減,唔會再 loop 叫你改主餐。

輸入欄
餐廳總額=收據實付(已包小菜)。可另填優惠金額。
例:5 人、$329 實付 → 填 329;若再有 $20 優惠要入分帳,填優惠 20。
寫入帳
每人 share(應付份額)算出後:
分帳合計 T = G − 優惠;付款人 leg = +(T − sharepayer);其他人 = −share
文案永遠寫「已扣自己份」,避免誤會 $xxx 係面值定應收。
分帳層
主餐基數 = G − 小菜 → 均分/自訂(合計必須 = 基數)→ 再扣優惠(全員/指定)→ + 小菜 = 每人 share
Σ share 必須 = G − 優惠;Σ leg 必須 = 0。優惠唔改主餐合計目標。
// G = 收據實付 · T = 分帳合計 = G − discount mainBase = G − Σ sides // 自訂合計只對呢個基數 maini = equal(mainBase) 或 customi maini −= disci // 優惠後扣:全員均分或指定人 sharei = maini + sidei Σ share = T = G − discount leg[payer] = +T − sharepayer // 已扣自己份 leg[other] = −shareother Σ leg = 0
02 · 三種現實場景(本輪補齊)

唔再假設永遠評分

每人食幾多

主餐可「均分」或「每人入金額」。自訂時合計要啱主餐基數(總額 − 小菜);唔受優惠影響,唔會再逼你改大/改細。

優惠/折扣

主餐入完之後先優惠。全員均分=每人減一截;指定人=只扣受惠人。分帳合計 = G − 優惠。

小菜

可加多項;每項金額 + 全員均分 / 指定邊幾個。小菜從主餐池抽出,再按指定人分。

簡單捷徑

唔開進階=舊行為:均分 G。30 秒路徑保留,唔逼人填齊。

03 · 入帳流程

四步不變;第三步變厚

01
選人 Who ate
多選 chip;預設常客
02
邊個請 Who paid
只可從已選人揀
03
總額 + 分法 How to split
G · 主餐均分/自訂 · 可選優惠 · 可選小菜 · 即時預覽
04
確認 → 結餘更新
Σ share = G−優惠、Σ leg = 0 先存;寫 split 明細
04 · 資料模型

Meal 帶 split 明細;Leg 仍然係帳本真相

Person { id, name, active, isRegular } Meal { id, date, place?, payerId, grossBill, split, legs[], createdAt } Split { mainMode: 'equal' | 'custom', customMains?: { [personId]: dollars }, discount: { amount, mode: 'equal'|'specific', who[] }, sides: [{ id, name, amount, mode, who[] }] } Leg { personId, amount } // +應收 / −應付 Balance[p] = base + Σ legs

Invariant

規則說明
Σ share = G − D分帳合計 = 收據實付 − 優惠(主餐先分,優惠後扣)
Σ leg = 0每餐儲存前硬檢查
share ≥ 0優惠唔可以大過嗰個人份額
mainBase = G − sides自訂合計對基數;優惠唔改呢個目標
結餘只係累積清帳用 settlement 類型(後續)
05 · 畫面狀態

本原型已實作

畫面內容狀態
首頁結餘淨結餘 + 欠得最多 Top 3(由欠得多到少)
入帳 · 均分30 秒捷徑
入帳 · 自訂每人主餐每人金額本輪
入帳 · 優惠金額 + 全員/指定本輪
入帳 · 小菜多項 + 全員/指定本輪
歷史/詳情legs + split 摘要
Excel 匯入讀 Current / 對帳後續
清帳建議最少轉帳後續
06 · 視覺系統

Human approachable · 每日工具

Tokens

中性底 + teal accent。綠=應收、紅=應付。圓角 12–16px,輕 elevation。

紀律

系統字;金額 mono;觸控 ≥44px。進階區塊預設收合,唔阻 30 秒路徑。

07 · 種子資料

來自 Lunch_RevC Balance

活躍成員真實結餘(2026-01-05 檔)。入新帳喺基線上累加。

結餘語意
Frank+493.99應收
Maffy+429.67應收
Eric+409.40應收
Vincent+364.82應收
Steve+120.15應收
Karl−113.55應付
Savanna−476.23應付
Alan−526.00應付
Kpo−597.15應付
08 · Roadmap

更新後階段

P0
而家
主餐先分·優惠後扣 · 首頁 Top3 應付 · 原型 + PLAN v5
P1
Excel 橋
xlsx 匯入、對帳、簡化匯出
P2
編輯 + 清帳
改已入餐、settlement 行、最少轉帳
P3
共用
雲端同步、PWA
09 · 下一步

用左上角切去「試用原型」走一次進階分帳

建議:5 人 · Steve 請 · 329 · 小菜 $40 只 Kpo · 優惠 $20 全員 → 主餐基數 289、分帳 309、Σ legs = 0。自訂主餐唔使因為優惠而改合計。