File size: 2,949 Bytes
f78b36a
 
 
 
 
 
 
 
 
 
 
 
 
 
683d259
9d53e35
0addeca
c35b446
 
 
 
 
 
f78b36a
 
c35b446
4bdd2f7
395abdc
27e706d
 
f78b36a
 
 
 
 
 
 
 
 
 
 
 
08512dc
 
 
 
 
 
 
 
f78b36a
 
 
 
 
 
 
 
 
 
 
 
683d259
9d53e35
0addeca
c35b446
 
 
 
 
 
 
4bdd2f7
27e706d
 
 
f78b36a
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { Module } from "@nestjs/common";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { ThrottlerModule, ThrottlerGuard } from "@nestjs/throttler";
import { APP_GUARD } from "@nestjs/core";
import { ScheduleModule } from "@nestjs/schedule";
import { DatabaseModule } from "./database/database.module";
import { AuthModule } from "./auth/auth.module";
import { UserProfileModule } from "./user-profile/user-profile.module";
import { BloodPressureModule } from "./blood-pressure/blood-pressure.module";
import { SymptomsModule } from "./symptoms/symptoms.module";
import { CarePriorityModule } from "./care-priority/care-priority.module";
import { NotificationsModule } from "./notifications/notifications.module";
import { EducationModule } from "./education/education.module";
import { ClinicFinderModule } from "./clinic-finder/clinic-finder.module";
import { MonitoringEngineModule } from "./monitoring-engine/monitoring-engine.module";
import { EmailModule } from "./email/email.module";
import { ContactUsModule } from "./contact-us/contact-us.module";
import { AppointmentsModule } from "./appointments/appointments.module";
import { HealthWorkerModule } from "./health-worker/health-worker.module";
import { OrganizationsModule } from "./organizations/organizations.module";
import { FacilitiesModule } from "./facilities/facilities.module";
import { AdminHealthWorkersModule } from "./admin-health-workers/admin-health-workers.module";
import { PatientsModule } from "./patients/patients.module";
import { AppController } from "./app.controller";
import { HealthController } from "./health.controller";
import { ReferralModule } from "./referral/referral.module";
import { EmergencyModule } from "./emergency/emergency.module";
import { AncVisitModule } from "./anc-visit/anc-visit.module";
import { OcrModule } from "./ocr/ocr.module";
import { RiskModule } from "./risk/risk.module";

@Module({
  imports: [
    // Configuration
    ConfigModule.forRoot({
      isGlobal: true,
      envFilePath: ".env",
    }),

    // Scheduling
    ScheduleModule.forRoot(),

    // Throttling
    ThrottlerModule.forRoot([
      {
        ttl: 60000,
        limit: 20,
      },
    ]),

    // Database (Prisma) - Global module
    DatabaseModule,

    // Domain modules
    AuthModule,
    UserProfileModule,
    BloodPressureModule,
    SymptomsModule,
    CarePriorityModule,
    NotificationsModule,
    EducationModule,
    ClinicFinderModule,
    MonitoringEngineModule,
    EmailModule,
    ContactUsModule,
    AppointmentsModule,
    HealthWorkerModule,
    OrganizationsModule,
    FacilitiesModule,
    AdminHealthWorkersModule,
    PatientsModule,
    ReferralModule,
    EmergencyModule,
    AncVisitModule,
    OcrModule,
    RiskModule,
  ],
  controllers: [AppController, HealthController],
  providers: [
    {
      provide: APP_GUARD,
      useClass: ThrottlerGuard,
    },
  ],
})
export class AppModule {}