export type EasterEggKind = 'keyboard' | 'admin-page' | 'hidden-route'

export type EasterEggEntry = {
  id: string
  title: string
  /** 鍵盤彩蛋的連續輸入密碼；頁面類彩蛋可為 null */
  password: string | null
  kind: EasterEggKind
  summary: string
  howTo: string[]
  notes?: string
}

/**
 * 巡樓彩蛋登錄簿（前端）。
 * 新增彩蛋時請同步更新此檔，管理員可在「彩蛋手冊」頁查閱。
 */
export const easterEggCatalog: EasterEggEntry[] = [
  {
    id: 'islander-guide',
    title: '島民嚮導',
    password: null,
    kind: 'admin-page',
    summary: '預設隱藏右下角浮動島民。管理員在彩蛋手冊按同一顆按鈕開關，狀態存於目前分頁 session。',
    howTo: [
      '以 admin 角色登入，進入彩蛋手冊（本頁）',
      '在「島民嚮導」卡片點「開啟島民嚮導」',
      '右下角出現島民浮動按鈕；再點「關閉島民嚮導」即可隱藏',
      '重新整理分頁後，若 session 仍有效會維持顯示狀態',
    ],
    notes: '開啟後可於任意已登入頁面使用島民對話。',
  },
  {
    id: 'hidden-register',
    title: '隱藏註冊',
    password: null,
    kind: 'admin-page',
    summary: '登入頁不顯示註冊入口。管理員在彩蛋手冊按同一顆按鈕開關註冊表單（無 /register 網址、無鍵盤暗號）。',
    howTo: [
      '以 admin 角色登入，進入彩蛋手冊（本頁）',
      '在「隱藏註冊」卡片點「開啟註冊表單」展開表單',
      '再點一次「關閉註冊表單」即可收起',
      '填寫 Email、顯示名稱與密碼後送出',
      '建立成功後維持目前管理員登入；新帳號需自行至登入頁登入',
    ],
    notes: '直接造訪 /register 會導回登入頁。建立帳號不會自動登入新使用者。',
  },
  {
    id: 'easter-eggs-handbook',
    title: '彩蛋手冊（本頁）',
    password: null,
    kind: 'admin-page',
    summary: '記錄所有已知彩蛋密碼與操作說明，僅管理員可從側欄「系統」區進入。',
    howTo: [
      '以 admin 角色登入',
      '桌面：左側 PATROL PAD → 系統 → 彩蛋手冊',
      '手機：底部「更多」→ 彩蛋手冊',
    ],
    notes: '路由：/easter-eggs。非 admin 會被導回總覽。',
  },
]

export function easterEggKindLabel(kind: EasterEggKind): string {
  switch (kind) {
    case 'keyboard':
      return '鍵盤密碼'
    case 'admin-page':
      return '管理員頁面'
    case 'hidden-route':
      return '隱藏路由'
  }
}