
JianMiauandClaude Fable 5
1ff149621f
新增 V2 場地排程頁面與實力權重系統
根本原因:
V1 三輪配對制不符合實際打球流程:實際是 2、3 號場地各打 8 局雙打、
每局換搭檔輪休;且配對完全沒考慮成員實力,會出現強強同隊的失衡對戰。
影響:
- 首頁改為 V2 場地排程:每局從全員挑 8 人分兩場地打雙打,其餘自動輪休,
搭檔組合在全部輪過一遍之前不重複,每人上場局數落差最多 1 局
- tg_members 新增 skill 欄位(1~10,預設 1),attendance API 一併帶出實力,
新增 GET /api/skills 供頁面開啟時載入全體實力表(載完才能產生賽程)
- V2 依實力排點:搭檔強弱互補、每局兩隊實力總和盡量接近,
滑鼠停在隊伍上會浮出實力泡泡;讀取指定日期可回填已上傳的 V2 賽程
- V1 完整保留於 /v1,讀取出席名單改為依實力自動分 A / B 區
- V2 推送 LINE 固定走測試目標(LINE_TARGET_ID_LOCAL),不碰正式群組,
訊息改用綠底標題+斑馬紋對戰列的新版 Flex 卡片
- 上傳沿用 badminton 表,battlecombination 改以場地為 key 存 16 組搭檔
修法:
App.tsx 拆為路由(/ 進 AppV2、/v1 進 AppV1);AppV2 排程演算法以 105 種
完美配對窮舉搭配重試 40 次,取「重複最少、總實力差最小」的一份賽程;
server 新增 /api/skills、LINE V2 Flex 訊息與 target 覆寫,attendance 查詢
LEFT JOIN tg_members 取得 skill(user_id 優先、nickname 備援、預設 1)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>