feat(web): 관리자 CRM 웹페이지 — admin role + 4개 페이지

- migration: profiles.role 컬럼 + admin RLS 정책
- admin-guard.ts: RSC용 admin 권한 체크
- /admin: CRM 대시보드 (총 유저, 유료 구독자, API 호출, 만료 예정)
- /admin/users: 유저 목록 (검색/필터/페이지네이션)
- /admin/users/[id]: 유저 상세 (프로필+구독+30일 사용량)
- /admin/subscriptions: 구독 목록 (상태 필터)
- /admin/usage: 사용량 집계 (7/14/30일)
- Sidebar에 Admin 네비게이션 추가
This commit is contained in:
윤찬 2026-04-12 20:24:26 +09:00
parent d3c2a4348d
commit 667c09242b
10 changed files with 816 additions and 0 deletions

View file

@ -25,6 +25,7 @@ import LibraryBooksIcon from '@mui/icons-material/LibraryBooks'
import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome'
import GroupsIcon from '@mui/icons-material/Groups'
import PaymentIcon from '@mui/icons-material/Payment'
import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings'
import LogoutIcon from '@mui/icons-material/Logout'
import PaletteIcon from '@mui/icons-material/Palette'
import type { ThemeMode } from '@d3ro/core/types'
@ -99,6 +100,12 @@ export function Sidebar(): React.ReactElement {
path: '/billing',
label: t('nav.billing') ?? 'Billing',
icon: <PaymentIcon />
},
{
key: 'admin',
path: '/admin',
label: 'Admin',
icon: <AdminPanelSettingsIcon />
}
]