イベント Event

このページでイベントの土台を作ります。ここで入力した情報は、他のタブ(バトル・キャスト・タイムライン・受付)にそのまま反映されます。新しいイベントを始める時は、まずここから。
Start here. Whatever you enter on this page flows into Battles, Cast, Timeline, and Doors automatically. If you're setting up a new event, this is the first stop.

基本情報 Basics — confirmed current event
イベント名 Name
開催日 Dates
会場 Venue
DJ / MC
早割終了 Early-bird cutoff
観覧者・同行者 料金 Attendees fee (spectator + companion)
💴 バトル別 参加費 Per-battle entry fee — auto-updated when you edit a battle
読み込み中… / Loading…

編集はバトルタブ → 各バトルを開く → 💴 参加費 (バトル別) で。
Edit per-battle pricing in the Battles tab → open a battle → 💴 Entry fee (per battle) subcard.

エントリーフォーム URL Entry form — share on HP / IG / email

ダンサー向けのエントリー窓口です。register.html が現在のイベント設定を動的に読み込みます。
Dancers register here. register.html adapts to the active event automatically.

スケジュール重複しきい値 Overlap window (SHIROFES) — minutes

portal.html のパーソナルスケジュールで、この分数内の2件を重複として警告表示します。広い会場は45〜60分、単一フロアは15〜20分が目安です。
portal.html flags conflicts between entries falling within this window. Wider for multi-floor venues; tighter for single-floor.

新しいイベントを作る New event from template

現在のイベント(バトル・ジャッジ設定・価格・キャスト・受付チェックリスト)をベースに、新しい日程の下書きイベントを作ります。参加者・スコア・ラウンドはコピーされません。
Clones the current event (battles + judges + pricing + cast + reception checklist) into a new draft. Participants, scores, and rounds are NOT copied.

IDは英小文字・数字・ハイフンのみ(3〜60文字)。作成後は自動でこのイベントに切替わります。
ID: lowercase + hyphens only (3-60 chars). Picker auto-switches to the new event on success.

テスト・リハーサル用ツール Rehearsal tools · Advanced

本番前の練習用ツール。リハーサル後に練習データを消したり、前のイベントのデータが残っていないか確認できます。
For walkthroughs before the real event. Clean up practice data or scan for leftover data from a prior event.

サンプルデータ投入 Load sample data

バトル 11件 + デモ参加者を現在のイベントにシード。SHIROFES デフォルト構成。
Seeds 11 SHIROFES battles + demo participants on the current event. Only runs if the event is empty.

⚠ ランタイムデータリセット Runtime reset

参加者・スコア・ラウンド・ROS・ログを削除。バトル設定・ジャッジ・キャスト・イベント設定は保持。
Wipes runtime data (participants, scores, rounds, ROS, audit log). Preserves battles, judges, cast, event settings. Use to clear rehearsal data before the real event.

汚染チェック Cross-event leak scan

他イベントのデータが混入していないかチェック。バトル ID プレフィックス + 孤立参照を検出。
Detects data from other events (foreign battle ID prefixes) + orphan battleId refs. Run before opening doors.

メールパイプラインチェックは Doors タブ に移動しました。/ Email pipeline check moved to Doors.
バトル識別キーワード Battle keywords — XLSX import & form ingest mapping

参加フォームの「参加コンテンツ」欄に書かれた文字列を、どのバトル(battleId)に紐付けるかを決めるテーブルです。
XLSX import + Google Form ingest auto-parse entries. If a battle is coming through unassigned, add its synonyms here — e.g. allage-2on2: 2ON2, /2\s*on\s*2/i.

バトル一覧 Battles

読み込み中 / Loading…
詳細操作 / Advanced ops — admin-tier; per-action confirmation required
定員無制限承認 / Sanction battle as uncapped
指定バトルの参加上限を解除します(ショーケース等の枠無し演目向け)。
Marks one battle's capacity counter as uncapped (showcase / no-cap event).
出場者ポータル リンク再発行 / Regenerate portal magic-link
参加者の出場者ポータル magic-link を再発行+メール送信します(旧リンクは即無効化)。
Per-row action lives on each participant card in the 受付 tab; this entry is a quick lookup.
→ 受付タブの各参加者カードで再発行 / open 受付 tab → tap 「リンク再発行」 on any row

キャスト Cast

キャスト登録URL Cast registration form — share with performers

このURLをLINE / Instagram / メールで出演者に送ると、フォーム経由で自己登録できます。登録は「確認待ち」フィルタに表示されるので、運営側で承認してください。
Send this link to performers via LINE / IG / email. Submissions land in the 確認待ち bucket for operator approval.

読み込み中 / Loading…

参加者 Participants

登録された参加者の事前ops。MEMO・同行者・メール再送・ポータルリンク再送・公開ロスター切替が可能。
Pre-event ops on registered participants. Same module as admin's Participants tab; admin-only actions (cash collection, door confirmation, same-day cancel) are hidden in prep. Use admin.html for those after lifecycle=active.

読み込み中 / Loading…

タイムライン Timeline

読み込み中 / Loading…

MC台本 MC Script

MCが読み上げる本番の台本を書くところ。バトルごとに台本をつくり、バトルの紹介文・ダンサー呼び出し・勝者コールなどをここで編集します。保存すると、本番中に MC が見ている画面に即反映。
Where you write what the MC says during the show. Create one script per battle — intro, dancer calls, winner announcement. Saves go straight to the MC's live view.

開場 Doors

最終チェック。ブロッカーが全て解消すれば「開場」ボタンが有効になり、イベントをactive状態に移して管理画面へ自動遷移します。
Final readiness gate. When no blockers remain, "Open doors" flips the event lifecycle to active and redirects to admin.

準備状況 Readiness
確認中… / Checking…
受付チェックリスト Reception checklist — what the reception desk should prepare
読み込み中… / Loading…
Secrets readiness Cloud Functions secrets state

シークレット値は表示されません — 設定済み✓/未設定✗ のみ。本番前に確認推奨。
Secret values aren't returned — only configured y/n. Verify before going live. Set via PowerShell: firebase functions:secrets:set SECRET_NAME

メールパイプラインチェック Email pipeline health

Resend 送信ドメイン・API キー・Webhook 署名鍵・直近 24h のアクティビティを確認。開場前に緑にしておかないと、確認メールが送られません。
Verify Resend API key, webhook secret, verified sending domain, and 24h activity. Must be green before doors open — otherwise confirmation emails won't send.

リストバンド枚数 Wristband count
枚 (参加者 名 + 予備10枚)

参加者数 + 10枚の予備を推奨。参加者数はエントリーが入るたびに自動更新。
Recommended: participant count + 10 buffer. Updates automatically as entries arrive.

📜 監査ログ Audit log — recent activity
「再読込」で読み込み / Click Refresh to load
登録受付開始 Open Registration (pre-event)

「登録受付開始」を押すと、register.html(公開登録ページ)からの登録を受付開始します。シートミラーと定員カウンターのセットアップが完了している必要があります。
Opens the public registration page (register.html). Requires sheet-mirror seeded + at least one battle has a capacity limit set. Event status stays in 'draft' until you hit Open Doors below.

読込中… / Loading…

必要な準備が未完了です: シートミラーまたは定員カウンターが未設定。

開場 Open the event to operators

「開場」ボタンを押すと、イベント状態が「準備中」から「開催中」に変わり、運営本部(admin.html)に画面が切り替わります。開場後はこの準備ページでの編集は参照のみになります。
Switches event status from 'draft' to 'active' and redirects you to the admin page. After opening, this prep page becomes read-only.

必須項目(イベント名・日付・バトル・QRコード鍵)のみが開場をブロックします。準備状況(Stripe鍵 / メール送信 / 定員カウンター / セットアップ)は警告のみで、開場の判定には影響しません。
Hard gate = required items only (event name, date, battles, QR secret). Readiness rows (Stripe secrets / email / counters / setup) are advisory — visible warnings but NOT door-blocking by design.

ブロッカーが残っています。上の「準備状況」のうち、赤い「ブロッカー」行を全て解消してください。 / Blockers remain — clear all red 'blocker' rows above.