2 Commits

Author SHA1 Message Date
chpark 50f1d5cfb6 Pull mega-menu from g5_eyoom_menu and redesign home with Tailwind v4
## Menu now matches production exactly
- Read the 122-row inspection2.g5_eyoom_menu tree directly so the admin's
  defined hierarchy (10 top-level + 25+ submenus + sub-submenus) flows
  straight to the navbar without hand-maintained constants.
- Build tree from me_code (3/6/9 char prefix = depth), preserve me_order,
  rewrite legacy /bbs/board.php?bo_table=foo + /bbs/qalist.php +
  game/exchange/lottery URLs into the new app routes.
- Top-level + submenu coverage verified by grep against rendered HTML:
  10/10 top items + ALL 카지노 게임 (5트레져/88포춘/바다이야기/다빈치/
  체리마스터/야마토/강시/루팡/대공/축제/마릴린먼로/고인돌/반지의제왕/
  바카본), 스포츠 (크로스/스페셜), 미니게임 (슬롯홀짝/파워볼), 슬생TV
  (스포츠중계/하이라이트/픽게시판/큰손형방송), 포인트존 10개 항목 모두.

## Home page rebuilt with Tailwind v4 + Framer Motion + lucide
- New @import "tailwindcss" theme with brand-50..900 palette, shadow-pop,
  ticker marquee animation, and a `lift` hover transform.
- Hero block: gradient radial backdrop, blur orbs, animated headline ticker,
  three pill CTAs, and a glassmorphic KICK 큰손형 방송 status card with
  pulsing live-dot. Status pulled from getKickStatus() (live/break/offline
  by hour & weekday).
- 9-tile QuickAccess grid where each tile gets its own gradient (purple/
  rose/amber/emerald/blue/pink/yellow/cyan/violet) and lifts on hover.
- BoardSlots cards with per-board gradient header (free=violet,
  review=amber, mukti=rose, humor=sky, pick=emerald, lottery_ticket=fuchsia)
  and rose comment badges.
- Header: sticky blurred top bar, integrated 검색 box in brand row, mega
  nav with framer-motion slide-down submenus, dark mode button.
- Sidebar: glassmorphic LOGIN card with point/level row, Telegram CS
  banner with gradient + shadow, brand-tinted tag pills, ranked member
  list with gold/silver/bronze chips, visitor stats grid.
- Footer: deep purple gradient with brand mark, 4 link columns, terms
  and privacy emphasized.

## New menu-driven routes
- /games/[game] catch-all renders all 14 slot simulators + roulette +
  ranking pages with a unified gradient header + 3-card stats template.
- /tv/sports, /tv/highlight, /games/sports/{cross,special},
  /games/mini/{slot-holjjak,powerball}, /wallet/{guide, exchange/list,
  point-exchange/list, event-exchange, event-exchange/list},
  /column, /dividend, /adjudicate, /newsite, /plugin, /lottery,
  /fakeslot, /interrogation, /report — all 200, all themed.

## Verification
- 27 routes + 4 theme variants + full-page home + 10 mega-menu hover
  captures — all pass. PNGs under next-app/screenshots/.
2026-04-27 20:38:47 +09:00
chpark 980d7d905d Add Next.js + PostgreSQL rewrite scaffold with 4-theme system
Stack
- Next.js 15 (App Router) + TypeScript + Drizzle ORM + postgres-js
- Node scrypt for password hashing; PBKDF2 verifier for legacy gnuboard5 hashes
- pnpm workspace monorepo: apps/web + packages/{db,auth,themes,...}

Themes (admin-selectable at /admin/themes)
- basic     : 그누보드 default reproduction (light, blue accent)
- eyoom     : eb4_maga_005 매거진 reproduction (dark, orange accent, ranking sidebar)
- amina     : Aminam Builder reproduction (light, violet gradient, card grid)
- youngcart : 영카트 shop reproduction (red accent, search bar, category nav)

DB
- New schema (12 tables) pushed to PG via drizzle-kit: members, sessions, boards,
  posts, point_ledger, app_settings, bacara_*, lottery_tickets, roulette_spins,
  game_points, board_groups
- Legacy data still readable from inspection2 schema via @slot/db/legacy

Verified end-to-end against the migrated DB on localhost:3000:
- Home renders with active theme tokens injected as CSS variables
- /free lists 442K real posts from inspection2.g5_write_free
- Login (testlogin/test1234) issues session cookie, header switches to
  "테스트님 환영합니다 / 로그아웃"
- Switching app_settings.theme.global from eyoom → amina swaps colors,
  layout, and Korean nav labels site-wide on next request

Migration docs added: 03-migration-plan, 04-theme-architecture,
05-local-dev-setup, 06-feature-inventory.
2026-04-27 18:51:32 +09:00