workspace/projects/gamilit/apps/backend/src/modules/admin/admin.module.ts
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

134 lines
8.1 KiB
TypeScript

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from '@modules/auth/entities/user.entity';
import { Profile } from '@modules/auth/entities/profile.entity';
import { Role } from '@modules/auth/entities/role.entity';
import { UserRole } from '@modules/auth/entities/user-role.entity';
import { Tenant } from '@modules/auth/entities/tenant.entity';
import { Membership } from '@modules/auth/entities/membership.entity';
import { AuthAttempt } from '@modules/auth/entities/auth-attempt.entity';
import { UserSuspension } from '@modules/auth/entities/user-suspension.entity';
import { Module as EducationalModule } from '@modules/educational/entities/module.entity';
import { Exercise } from '@modules/educational/entities/exercise.entity';
import { ContentApproval } from '@modules/educational/entities/content-approval.entity';
import { ContentTemplate } from '@modules/content/entities/content-template.entity';
import { MediaFile } from '@modules/content/entities/media-file.entity';
import { Classroom } from '@modules/social/entities/classroom.entity';
import { TeacherClassroom } from '@modules/social/entities/teacher-classroom.entity';
import { AssignmentClassroom } from '@modules/social/entities/assignment-classroom.entity';
import { Assignment } from '@modules/assignments/entities/assignment.entity';
import { AssignmentStudent } from '@modules/assignments/entities/assignment-student.entity';
import { AssignmentSubmission } from '@modules/assignments/entities/assignment-submission.entity';
import { SystemSetting, FeatureFlag, NotificationSettings, BulkOperation, SystemAlert, AdminReport } from './entities'; // ✨ NUEVO - P1/P2 (System Configuration + Bulk Ops + Alerts + Reports)
import { AdminUsersController } from './controllers/admin-users.controller';
import { AdminOrganizationsController } from './controllers/admin-organizations.controller';
import { AdminContentController } from './controllers/admin-content.controller';
import { AdminSystemController } from './controllers/admin-system.controller';
import { AdminDashboardController } from './controllers/admin-dashboard.controller';
import { AdminRolesController } from './controllers/admin-roles.controller';
import { AdminReportsController } from './controllers/admin-reports.controller';
import { AdminLogsController } from './controllers/admin-logs.controller';
import { ClassroomAssignmentsController } from './controllers/classroom-assignments.controller';
import { ClassroomTeachersRestController } from './controllers/classroom-teachers-rest.controller';
import { AdminGamificationConfigController } from './controllers/admin-gamification-config.controller';
import { AdminBulkOperationsController } from './controllers/admin-bulk-operations.controller';
import { AdminAlertsController } from './controllers/admin-alerts.controller';
import { AdminAnalyticsController } from './controllers/admin-analytics.controller';
import { AdminProgressController } from './controllers/admin-progress.controller';
import { AdminMonitoringController } from './controllers/admin-monitoring.controller';
import { AdminInterventionsController } from './controllers/admin-interventions.controller';
import { AdminAssignmentsController } from './controllers/admin-assignments.controller';
import { FeatureFlagsController } from './controllers/feature-flags.controller';
import { AdminUsersService } from './services/admin-users.service';
import { AdminOrganizationsService } from './services/admin-organizations.service';
import { AdminContentService } from './services/admin-content.service';
import { AdminSystemService } from './services/admin-system.service';
import { AdminDashboardService } from './services/admin-dashboard.service';
import { AdminRolesService } from './services/admin-roles.service';
import { AdminReportsService } from './services/admin-reports.service';
import { ClassroomAssignmentsService } from './services/classroom-assignments.service';
import { GamificationConfigService } from './services/gamification-config.service';
import { BulkOperationsService } from './services/bulk-operations.service';
import { AdminAlertsService } from './services/admin-alerts.service';
import { AdminAnalyticsService } from './services/admin-analytics.service';
import { AdminProgressService } from './services/admin-progress.service';
import { AdminMonitoringService } from './services/admin-monitoring.service';
import { AdminInterventionsService } from './services/admin-interventions.service';
import { AdminAssignmentsService } from './services/admin-assignments.service';
import { FeatureFlagsService } from './services/feature-flags.service';
import { AdminGuard } from './guards/admin.guard';
import { TasksModule } from '../tasks/tasks.module';
@Module({
imports: [
TypeOrmModule.forFeature([User, Profile, Role, UserRole, Tenant, Membership, AuthAttempt, UserSuspension, SystemSetting, FeatureFlag, NotificationSettings, BulkOperation, AdminReport], 'auth'),
TypeOrmModule.forFeature([EducationalModule, Exercise, ContentApproval, Assignment, AssignmentStudent, AssignmentSubmission], 'educational'),
TypeOrmModule.forFeature([ContentTemplate, MediaFile], 'content'),
TypeOrmModule.forFeature([Classroom, TeacherClassroom, AssignmentClassroom], 'social'),
TypeOrmModule.forFeature([SystemAlert], 'audit'),
TypeOrmModule.forFeature([], 'progress'), // For AdminInterventionsService (student_intervention_alerts)
TasksModule, // Import TasksModule to access MissionsCronService
],
controllers: [
AdminUsersController,
AdminOrganizationsController,
AdminContentController,
AdminSystemController,
AdminDashboardController,
AdminRolesController,
AdminReportsController,
AdminLogsController,
ClassroomAssignmentsController,
ClassroomTeachersRestController, // NEW: REST endpoints for US-AE-007
AdminGamificationConfigController,
AdminBulkOperationsController,
AdminAlertsController, // NEW: System alerts management
AdminAnalyticsController, // NEW: Analytics endpoints (Plan 2)
AdminProgressController, // NEW: Progress tracking endpoints (Plan 3)
AdminMonitoringController, // NEW: Monitoring endpoints (Plan 4)
AdminInterventionsController, // NEW: Student intervention alerts (BE-001)
AdminAssignmentsController, // NEW: Assignments management endpoints (US-AE-009)
FeatureFlagsController, // NEW: Feature flags management (BE-ADMIN-001-003)
],
providers: [
AdminUsersService,
AdminOrganizationsService,
AdminContentService,
AdminSystemService,
AdminDashboardService,
AdminRolesService,
AdminReportsService,
ClassroomAssignmentsService,
GamificationConfigService,
BulkOperationsService,
AdminAlertsService, // NEW: System alerts service
AdminAnalyticsService, // NEW: Analytics service (Plan 2)
AdminProgressService, // NEW: Progress tracking service (Plan 3)
AdminMonitoringService, // NEW: Monitoring service (Plan 4)
AdminInterventionsService, // NEW: Student intervention alerts service (BE-001)
AdminAssignmentsService, // NEW: Assignments management service (US-AE-009)
FeatureFlagsService, // NEW: Feature flags service (BE-ADMIN-001-003)
AdminGuard,
],
exports: [
AdminUsersService,
AdminOrganizationsService,
AdminContentService,
AdminSystemService,
AdminDashboardService,
AdminRolesService,
AdminReportsService,
ClassroomAssignmentsService,
GamificationConfigService,
BulkOperationsService,
AdminAlertsService, // NEW: Export alerts service for use in other modules
AdminAnalyticsService, // NEW: Export analytics service for use in other modules
AdminProgressService, // NEW: Export progress service for use in other modules
AdminMonitoringService, // NEW: Export monitoring service for use in other modules
AdminInterventionsService, // NEW: Export interventions service for use in other modules (BE-001)
AdminAssignmentsService, // NEW: Export assignments service for use in other modules (US-AE-009)
FeatureFlagsService, // NEW: Export feature flags service for use in other modules (BE-ADMIN-001-003)
],
})
export class AdminModule {}