羽球輪換系統

羽球輪換系統 An architecture diagram generated by Archify. 球隊操作頁 · iPad 拖曳 · Pointer Events · Architecture component 球隊操作頁 iPad 拖曳 · Pointer Events 觀戰頁 / 大螢幕 · 掃 QR 免登入唯讀 · Architecture component 觀戰頁 / 大螢幕 掃 QR 免登入唯讀 superadmin 後台 · 方案 · 付款 · IP 黑名單 · Architecture component superadmin 後台 方案 · 付款 · IP 黑名單 LINE 群組 · +1 / -1 報名 · 開團 · Architecture component LINE 群組 +1 / -1 報名 · 開團 Cloudflare + nginx · court.relexes.com · GCP VM line-bot Cloudflare + nginx court.relexes.com Go 單一 binary · 內嵌 HTML/JS · SSE hub · GCP VM line-bot Go 單一 binary 內嵌 HTML/JS · SSE hub SQLite · WAL · 單一寫入連線 · GCP VM line-bot SQLite WAL · 單一寫入連線 Threads · 排程發文 · token 自動續期 · Architecture component Threads 排程發文 · token 自動續期 claude-agent · 共用 AI 服務 · GCP VM line-bot claude-agent 共用 AI 服務 Telegram · 待回留言 · 配額 · 失敗通知 · Architecture component Telegram 待回留言 · 配額 · 失敗通知 HTTPS + SSE 後台 API Webhook 反向代理 · 不緩衝 單一交易寫入 文案生成 Graph API 發文 通知 GCP VM line-bot Legend Frontend Backend Database Security External

輪換與並發

  • • 站位操作一律檢查 version、存 undo 快照、執行、version+1,同一交易完成
  • • slots 以 UNIQUE(session_id, sp_id) 保證一人只在一處
  • • 報名正取與候補在讀取時依 id 順序算出,單一寫入連線天然序列化,不需要鎖

多租戶與安全

  • • 所有查詢以 session 的 team_id 過濾,不信任前端傳來的 team_id
  • • Session cookie 不落地:HMAC 帶球隊專屬 salt,停權或強制登出只要換 salt
  • • LINE 由群組 id 解析所屬球隊,一群只屬一隊,綁定碼一次性

AI 發文與回覆

  • • 文案依 14 種情境現生,提示詞帶最近 5 篇成效與讀者留言,順著有人追問的方向寫
  • • 草稿審核後可立即發或排程;發文前先鎖定並確認是否已發出,避免重複發文
  • • 讀者留言由 AI 擬回覆進待回清單,預設人工審核才發,配額用完與發文共用同一個等待