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
}

/** 島民鍵盤密碼 — unlock.ts 與本目錄共用 */
export const ISLANDER_UNLOCK_CODE = 'abababc'

/**
 * 巡樓彩蛋登錄簿（前端）。
 * 新增彩蛋時請同步更新此檔，管理員可在「彩蛋手冊」頁查閱。
 */
export const easterEggCatalog: EasterEggEntry[] = [
  {
    id: 'islander-guide',
    title: '島民嚮導',
    password: ISLANDER_UNLOCK_CODE,
    kind: 'keyboard',
    summary: '預設隱藏右下角浮動島民。連續輸入密碼可開關，狀態僅存於目前分頁的 session。',
    howTo: [
      '登入後，在任意已登入頁面（不需點特定區域）',
      '鍵盤連續輸入密碼（英文小寫，不需 Enter）',
      '右下角出現島民浮動按鈕；再輸入一次相同密碼可隱藏',
      '重新整理分頁後，若 session 仍有效會維持顯示狀態',
    ],
    notes: '密碼欄位與 IME 組字中不會觸發；一般搜尋框內輸入亦可解鎖。',
  },
  {
    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 '隱藏路由'
  }
}