feat(admin): add Admin module with moderation, user mgmt, and dashboard

- Commands: ApproveListing, RejectListing, BanUser, AdjustSubscription
- Queries: GetModerationQueue, GetDashboardStats, GetRevenueStats
- Admin-only guards via @Roles('ADMIN') on all endpoints
- Prisma-based admin query repository for dashboard aggregations
- 14 unit tests covering all command handlers and query handlers
- Added activate() method to UserEntity for unban support

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-08 02:17:09 +07:00
parent ac3947b42d
commit dafed32e11
49 changed files with 1485 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import { SearchModule } from '@modules/search';
import { NotificationsModule } from '@modules/notifications';
import { PaymentsModule } from '@modules/payments';
import { SubscriptionsModule } from '@modules/subscriptions';
import { AdminModule } from '@modules/admin';
import { Module } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { CqrsModule } from '@nestjs/cqrs';
@@ -22,6 +23,7 @@ import { AppController } from './app.controller';
NotificationsModule,
PaymentsModule,
SubscriptionsModule,
AdminModule,
// ── Rate Limiting ──
// Default: 60 requests per 60 seconds per IP