← 回主控台

下一批計劃:總帳本 · 開發者聯絡 · 課程改版 · 館方營運日曆

2026-07-15 規劃(老闆口述需求 → 完整計劃)。照 底層對齊原則:表開對、鏈拆對、入口收攏;業餘 UI 收合複雜度。每節=需求還原 → 資料地基 → UIUX → 你沒想到的面向 → 拍板題。
這批的共同地基洞察:五個需求其實咬在一起 — 課程開課要吃「館方暫停日」;課表行事曆要聚合「課程+賽事+暫停日」;總帳本要吃「課程抽成+賽事報名費+裁判費支出」。所以批 A 先把三張地基表一次開對(帳本事件表/館方封館表/學程表),再往上蓋 UI,順序錯了會做兩次。

一、總帳本(每館一本)批B

需求還原:每個體育館一本總帳;各賽事(和課程)在總帳裡是一個項目(收入/支出);點項目進詳細(該次辦賽的每筆收支)。

資料地基(關鍵決策)

金流現況是散的:賽事報名費(fee book)、課程收入抽成(coach_ledger 95/5)、裁判費(批1 結算,記帳)、退費。建議開一張帳本事件表而不是每次現算聚合:

欄位說明
arena_gym_ledgergym_id / direction(in|out) / amount / source_type(tournament|course|officiating|refund|manual) / source_id / counterparty / occurred_at / memo / method(mock|cash|ecpay)每一筆錢進出=一列;寫入點收攏成 LedgerRepository(綠界接上時只換 method,表不用改 — G3 同款思路)。既有資料寫 backfill script 補進來

UIUX

你沒想到的面向:

二、開發者聯絡強化批B

需求還原:能篩選訊息有沒有價值;有 LINE ID/電話欄位,能真的聯繫用戶討論規格。

資料地基

改動說明
feedback 表 +contact_line_id / +contact_phone回饋表單加兩個選填欄(附一行「留下聯絡方式,開發者可能找你聊需求」=取得同意)
+triage(untriaged|valuable|normal|junk|done) / +triage_note審核台的價值分級;done=已處理

UIUX

你沒想到的面向:

三、課程改版:教練分類+九步開課流+學程批C(最大)

需求還原:課程按教練分類。開課流程:準備課程資訊(含退款制度:官方統一+系統建議)→ 選課/學程 → 預約場地(只列可約的)→ 招生 → 繳費 → 行前通知 → 報到 → 課後評價 → 預約下一堂。學程=可連續階段(上完前一階段才能進下一階段),也可單學程。

現況對照(哪些已有、哪些要新做)

1 課程模板庫+退款制度 2 從模板選課/學程 3 場地空檔預約 4 招生(已有:審核+報名+候補) 5 繳費(已有 mock) 6 行前通知(已有 24h+加自訂訊息) 7 報到(已有 GPS/點名) 8 課後評價 9 預約下一堂

資料地基

表/欄位說明
arena_course_templates教練的「準備好開課資訊」:名稱/類別/大綱/定價/退款制度 key。開課=從模板帶入,改一次全系列適用
refund_policy(平台常數+課程欄位)官方統一制度存平台常數(如 官方標準:開課 7 天前全退/72h 前 50%/之後不退);系統建議=依類別給預設;教練只能選官方制度或「更寬鬆」自訂(Gate 擋更嚴苛)。課程存 policy key+快照(同 G4 思路:報名當下的制度要可回溯)
arena_coach_programs + program_stages學程:program(名稱/教練/整包價?)+stages(order, course_id)。單學程=只有一個 stage。解鎖 Gate:報 stage N+1 需 stage N 完課(出席率門檻拍板)
arena_course_reviews課後評價:1-5 星+標籤(專業/準時/講解清楚/親切)+留言;unique(slot, student);只有「有出席」者能評(Gate)。教練頁聚合顯示

UIUX

你沒想到的面向:

四、館方暫停開放日批A(地基)+批D(UI)

需求還原:館方可以把某些天暫停對外開放(整修/辦比賽用)。

資料地基

欄位
arena_gym_closuresgym_id / date_from / date_to / scope(all|courts[])/ reason(renovation|tournament|private) / note

UIUX+影響面(重點)

你沒想到的面向(最容易炸的一條):

五、館方課表行事曆(用戶端)批D

需求還原:用戶一進體育館(或開館頁)就能打開行事曆看近期活動。

UIUX

你沒想到的面向:

建議批次順序+工作量

內容為什麼這順序
批A 地基 migrationarena_gym_ledger+backfill/arena_gym_closures/course_templates+refund_policy/programs+stages/course_reviews/feedback 聯絡+triage 欄 — 一次開齊五個功能互相咬(行事曆吃暫停日、開課吃暫停日+模板、帳本吃課程抽成),表先對,UI 不返工
批B 帳本+聯絡總帳本頁(聚合+FeeBookPage 重用+手動記帳+CSV)/裁判費標記已付入帳/審核台分級篩選+LINE/電話按鈕小而獨立,先見效
批C 課程大改教練分類頁 → 模板+官方退款制度 → 場地空檔預約 → 評價 → 學程階段解鎖 → 預約下一堂;含通知鏈與 docs 同步最大一塊,吃批A 全部地基
批D 營運日曆館方暫停日 UI(含受影響項目處理)/gymClosedBlock 全系統掛閘/用戶端課表行事曆行事曆最後做=一次聚合到位

開工前要拍板的題目

  1. 官方退款制度的數字:建議「開課 7 天前全退/72 小時前退 50%/之後不退;教練或館方取消一律全退」— 要改嗎?
  2. 學程「完課」定義:出席該階段 ≥ 幾成才解鎖下一階段?(建議 60%,教練可豁免跳級)
  3. 整包學程退一半:已上階段照單堂原價扣、餘額退 — 同意嗎?
  4. 課程評價:星等公開;文字留言要「教練可回覆、僅館方+教練可見低分理由」還是全公開?
  5. 總帳本範圍:先做 賽事+課程+裁判費+手動;會員費/場租(散客)要不要這批一起?
  6. 行事曆對非會員公開?(建議公開,報名才登入)
  7. 暫停日撞既有預約:預設「列出讓館方逐筆決定」— 還是一鍵全取消?

✅ 完成紀錄(2026-07-15,老闆拍板「全部照建議做」)

四批全部上 main;七道拍板題全用建議值。行事曆追加拍板:活動標題直接顯示在格子上,點標題彈出正反面翻卡(不導航;翻卡手法同球員名片)。測試 1450 全綠。

Dogfood 驗證點:
  1. 後台 → 總帳本:看 backfill 的課程/賽事收入;+記一筆;匯 CSV。
  2. 賽事頁執法結算 → 標記已付 → 回總帳本看裁判費支出(同賽事聚合一列)。
  3. 個人頁意見回饋:填 LINE ID 送出 → 審核台篩「有聯絡方式」→ 點 LINE 鈕。
  4. 教練開課:選模板 → 自訂退款制度(填比官方嚴會被擋)→ 包場「空檔快選」。
  5. 報名課程:先看到退款制度同意 dialog;取消報名按新制度算退費。
  6. 點名完課 → 學員收「課後評價邀請」→ 我的課程評星 → 「預約下一堂」CTA。
  7. 我的開課 → 建學程(挑 2 門課)→ 學員整包報名 → 完成第 1 階(出席≥60%)解鎖第 2 階;教練可豁免跳級/退學程看退費算法。
  8. 後台 → 營運日曆:標下週兩天整修(這期間先開一個場次)→ 受影響盤點出現 → 取消場次;之後預約/開場/開課選那兩天都被擋;課表行事曆那兩天灰底。
  9. 櫃檯 → 課表行事曆:格子上直接看到課程/賽事/揪團標題 → 點標題翻卡(正面時間/背面詳情+課程報名 CTA)。

P2 未做(規劃內註記):辦賽自動建暫停日/整館 ics 訂閱/行事曆本週牆模式/50% 退費的分帳精算(綠界接上時處理;現況 offline 現場退現金以決策金額為準)。

本頁=規格書+完成紀錄;老闆原話需求已存 memory(arena-next-batch-spec)。