‹ 回 ArenaMate 系統地圖

館間聯誼賽 · 畫面流程設計

規劃中的線框流程(動工前先確認)。依老闆 2026-06-30 的畫面描述設計,標出新增/沿用/要改/待你確認的點。

沿用現有 新增 要改現有 待你確認

✅ 已定(2026-06-30,老闆全部拍板)

  1. A. 多隊參賽:v1 一館一隊(代表隊=參賽單位)。多隊列進階日後再做。
  2. B. 開賽閘:改為 「有指派裁判/計分員即可開賽」(不靠報到觸發)。
  3. C. 場次預約審核:per-gym 「場地預約需審核」開關,只擋場地預約、不擋日常開場。
  4. D. 鎖定欄位:鎖=運動 / 賽制 / 開賽門檻 / 每隊人數;可改=名稱 / 賽事日期 / 報名截止 / 獎勵 / 規則 / 注意事項 / 聯絡人。
  5. E. 報到=GPS 地理圍欄(不是刷卡):球員走進場館範圍 → 自動記一筆到場(沿用既有 geofence.dart)。 軟性記錄、永不當硬閘:上場名單由幹部排陣決定 → 忘記帶手機照樣能被排上場比賽;幹部也可手動標「已到」。

🛠️ 實作進度(2026-06-30 夜間,已上 main + 裝 iPhone,test 648 綠)

  1. ✅ 已上線可看:Slice1 點賽事直進詳細+賽事管理鎖定欄位;Slice2 對戰表依實力排種子(1 vs N);Slice3 收成 2 tab+代表隊選完自動產生對戰表+確認參賽打勾✓;Slice4 建賽精靈新增賽事日期/獎勵/規則/注意事項/聯絡人+賽事資訊 tab 顯示。
  2. 🧠 引擎就緒(純 Gate+測試,待接 UI):分天批次排程、GPS 軟性到場(到場非硬閘)、場地預約審核(決策 C)。
  3. ⏸ 刻意延後(盲改無法驗證/破壞性,等你實機檢視再做):3d 對戰表拖拉調整、比賽介面變體、開賽閘 B 改寫(與比賽流程耦合)、批次排程操作 UI、站位模板編輯器、預約審核的核准介面。

1建立館間聯誼賽 → 賽事詳細(兩個 tab)

建立後出現在行事曆+即將到來。點某場 → 直接進「賽事詳細」(現在會進「賽事列表」是錯的,要改)。

建立館間聯誼賽(精靈)
建立欄位(依序)
賽事名稱 · 運動 · 賽制小卡
對手場館 · 比賽場地
每隊人數 · 開賽門檻
+ 賽事日期/期間
報名截止(必填)
+ 獎勵(選填)· 規則(選填)
寄出邀請 ›
沿用+4 新欄位
  • 賽制小卡已上線;新增 4 欄位(日期/期間、獎勵、規則)依前面定案插入。
  • 日期欄=單日或期間都可;Gate 驗 報名截止 < 賽事日期。
▼ 建立後
行事曆 / 即將到來的賽事
📅 週末排球友誼賽 · 6/14 報名中
📅 春季館際盃 · 6/21 報名中
點任一場 →
要改
  • 目前:點賽事 → 進「賽事列表」畫面(錯)。
  • 要改成:點賽事 → 直接進「賽事詳細」(帶 tournamentId)。
▼ 進入賽事詳細
週末排球友誼賽
賽事管理
賽事資訊
基本(依建立欄位排序)
運動 排球🔒只顯示
賽制 單淘汰🔒
開賽門檻 2 隊🔒
賽事日期 6/14 ✎
獎勵 / 規則 ✎ 可改
★ 對戰表 = 代表隊 + 參賽情況(三合一)
①各館選代表隊 ②全選完自動產生對戰表 ③主辦拖拉調整 ④隊伍確認打勾✓
測試戰隊(溪邊)✓ 已確認
銘展青果行(海邊)待確認
三合一架構圖權限分流
  • 主辦方看全部;非主辦只看自己可管理的(會員制權限)。
  • 欄位依建立順序排;🔒 鎖定=運動/賽制/開賽門檻/每隊人數(改了會讓系統亂)。
  • 代表隊 section → 大家選完 → 自動產生對戰表 → 主辦可拖拉調整 → 隊伍確認後在節點打勾。
✅ D 已定:鎖=運動/賽制/開賽門檻/每隊人數;其餘可改。
週末排球友誼賽
賽事管理
賽事資訊
基本資訊
排球 · 單淘汰 · 6/14
🗺️ 賽場位置地圖
注意事項
自備球鞋、提前 15 分集合…
聯絡人
王主辦 0912-xxx
新分頁
  • 賽事資訊 tab:基本資訊、賽場地圖、注意事項、聯絡人。
  • 所有人都看得到(觀眾/參賽/主辦)。

2邀請函推播 → 接受 + 指定代表隊

🔔 推播 · 邀請函
溪邊小巫 邀請你參加
週末排球友誼賽
指定代表隊:一軍 ▾
接受並指定代表隊
婉拒
APNs 邀請函一館一隊
  • APNs 推播邀請 → 點開接受 → 同畫面指定代表隊(一軍/二軍擇一)。
✅ A 已定:v1 一館一隊(代表隊=參賽單位)。多隊列進階日後再做。

4每場排程(兩種模式)→ 排好推播

階段三的對戰表已在「賽事管理 tab」產生(見上)。階段四主辦替每個節點排時間。

對戰表 · 排程
準決賽 A:溪邊 vs 海邊 6/14 14:00
準決賽 B:山上 vs 河邊 未排程 ›
決賽 未排程
排程方式(二選一)
① 逐場指定時間
② 分天批次(照順序跑)
逐場分天批次
  • 節點已排=顯示日期時間;未排=「未排程」。
  • ① 逐場:直接指定時間(不限開放區塊),但要避開已被約走的時段。
  • ② 分天批次:選分幾天 → 誰在第幾天 → 每天起訖時間 → 之後照對戰表順序往下跑。
  • 排好 → 推播所有隊伍+場館:「對戰表+日程表已出現」。
✅ C 已定:per-gym「場地預約需管理員核准」開關,只擋場地預約、不擋日常開場(防惡意佔時段)。

5戰隊:確認參賽 → 排陣(站位模板)

戰隊 · 賽程卡
準決賽 A(本隊)· 6/14 點我排陣 ›
確認參賽
出戰人員 / 站位 / 職位
套用模板 站位A ▾
半場拖頭像排先發 · 點頭像設職位
確認+排陣站位模板
  • 戰隊在賽事詳細看完對戰表 → 確認參賽(節點打勾)。
  • 幹部點對戰表上「自己那場」→ 選出戰人員/站位/職位,或直接套用模板。
  • 新:戰隊頁面裡教練/幹部可預建幾套模板(站位 A/B/C),比賽時一鍵套用。

6比賽日:進館 → 比賽介面(報到=GPS 地理圍欄)

進入體育館 · 場次列表
📍 已進入 溪邊小巫 範圍
自動記到場 · 不影響上場
🏐 一般練習場 16:00
🏆 館間聯誼賽 · 準決賽 A ▶ 直播
點直播小圖 → 進比賽介面
沿用 geofence.dart報到改 GPS
  • 幹部/教練任一人進館 → 場次列表 → 點館間聯誼賽場次的直播小圖 → 進比賽介面(不用刷卡 QR)。
  • 報到=GPS 地理圍欄:球員走進場館半徑 → 自動記一筆到場(沿用既有 geofence.dart + gymGeofenceProvider)。
✅ 防「忘記帶手機」:到場記錄是軟性的,永不當「能否比賽」的硬閘。上場名單由幹部排陣決定 → 沒帶手機照樣被排上場;幹部也能手動標「已到」。開賽閘只看「有指派裁判/計分員」。
比賽介面(vs 練習賽相似但不同)
溪邊(本隊可調)
上場區 6 人
板凳區 3 人
海邊(不可調)
上場區 6 人
比分 2 : 1
▶ 我來直播(官方 YouTube)
只有裁判/計分員可計分;其他人只看
沿用 match_tab 變體
  • 分區:比賽隊伍區(上場|板凳)+觀眾席;各隊只能改自己的先發
  • 「我來直播」→ 官方 YouTube 串流。
  • 只有裁判/計分員手機可計分,其他人只看;主辦/裁判/計分員可臨時指派新裁判/計分員。
  • 對齊既有:walk-in 權限狀態機 + YT gated 旗標(待 iPhone 回線驗)。