From 8467ecbdb5f2d805b8709611bb90d8b132d7040f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A4=EC=B0=AC?= Date: Sun, 12 Apr 2026 21:33:17 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20project=5Fstatus=20=EA=B0=B1=EC=8B=A0?= =?UTF-8?q?=20=E2=80=94=20Phase=20V2-6=20Admin=20CRM=20=EA=B3=A0=EB=8F=84?= =?UTF-8?q?=ED=99=94=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- memory/project_status.md | 43 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/memory/project_status.md b/memory/project_status.md index af34d4e..60a29fc 100644 --- a/memory/project_status.md +++ b/memory/project_status.md @@ -1,8 +1,49 @@ # D3RO-VOICE 프로젝트 현황 -> 마지막 갱신: 2026-04-12 22:00 (마스터플랜 4개 작업 + Admin CRM 독립 프로젝트) +> 마지막 갱신: 2026-04-13 09:30 (Phase V2-6 Admin CRM 고도화) > 규칙 13: 작업 완료 즉시 이 파일 갱신 의무 +## Phase V2-6: Admin CRM 고도화 (2026-04-13 09:30) ✅ + +### DB 마이그레이션 (`20260413000004_admin_enhancement.sql`) +- `audit_log` 테이블: admin_id, action, target, before/after JSON diff, memo +- `subscriptions.admin_note` 컬럼 추가 +- `profiles.role` CHECK 확장: user/admin/super_admin +- RLS: admin+super_admin 조회, super_admin 쓰기 +- SQL RPC 3종: admin_usage_by_feature, admin_top_users, admin_dau + +### Edge Functions 4개 (admin-users, admin-subscriptions, admin-payments, admin-audit-log) +- admin-users: 유저 목록/상세 + super_admin role 변경 +- admin-subscriptions: 구독 CRUD (생성/수정/소프트삭제) + 메모 필수 + 감사로그 자동 기록 +- admin-payments: DB + Payple API 병행 결제 이력 조회 +- admin-audit-log: 감사로그 목록/상세 (필터: target_type, admin_id, 날짜) +- 공유 유틸: `_shared/admin-auth.ts` (권한 검증), `_shared/audit.ts` (감사 기록) + +### Swagger UI (`apps/admin-swagger/`) +- 독립 정적 페이지 + OpenAPI 3.0 spec +- Bearer token 입력으로 admin 인증 + +### Admin CRUD 웹페이지 (apps/admin) +- 구독 상세/수정/삭제: `/subscriptions/[id]` + SubscriptionForm + MemoDialog +- 구독 생성 (VIP 부여): `/subscriptions/new` +- 유저 상세: role 변경 버튼 (super_admin만) + RoleChangeDialog +- 감사로그: `/audit-log` 목록 + `/audit-log/[id]` 상세 diff (AuditDiffViewer) +- 결제 이력: PaymentHistory 컴포넌트 (DB + Payple 병행) +- 사이드바: Audit Log 메뉴 + API Docs 외부 링크 + +### recharts 차트 3종 +- FeatureUsageChart: feature별 일간 StackedBar +- DauChart: DAU 추이 Line +- TopUsersChart: 유저별 사용량 Top 20 HorizontalBar +- Usage 페이지: 차트 + 기간 필터(7/14/30일) + 테이블 + +### 권한 체계 +- super_admin: 구독 CRUD, role 변경, 구독 삭제 (위험 작업) +- admin: 전체 조회 전용 +- admin-guard.ts: requireAdmin(), requireSuperAdmin(), isSuperAdmin() + +--- + ## Admin CRM 독립 프로젝트 (2026-04-12 22:00) ✅ - `apps/admin` Next.js 독립 앱 (포트 3001) — apps/web에서 완전 분리