- Add import module with CSV/Excel template download and bulk import endpoints - Support client+subscription and outstanding invoice imports with per-row error handling - Templates include Field Guide sheet with valid plan/area names - Add manager role to unremitted payments endpoint - Add createdAt field to remittance history response
86 lines
3.2 KiB
TypeScript
86 lines
3.2 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR } from '@nestjs/core';
|
|
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
|
|
import { HealthModule } from './health/health.module';
|
|
import { PrismaModule } from './prisma/prisma.module';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import { UserModule } from './user/user.module';
|
|
import { TenantModule } from './tenant/tenant.module';
|
|
import { AreaModule } from './area/area.module';
|
|
import { PlanModule } from './plan/plan.module';
|
|
import { ClientModule } from './client/client.module';
|
|
import { TicketModule } from './ticket/ticket.module';
|
|
import { SubscriptionModule } from './subscription/subscription.module';
|
|
import { InvoiceModule } from './invoice/invoice.module';
|
|
import { PaymentModule } from './payment/payment.module';
|
|
import { DashboardModule } from './dashboard/dashboard.module';
|
|
import { ReportModule } from './report/report.module';
|
|
import { NotificationModule } from './notification/notification.module';
|
|
import { AuditModule } from './audit/audit.module';
|
|
import { EmployeeModule } from './employee/employee.module';
|
|
import { ExpenseModule } from './expense/expense.module';
|
|
import { AccountModule } from './account/account.module';
|
|
import { AssetModule } from './asset/asset.module';
|
|
import { PortalModule } from './portal/portal.module';
|
|
import { BillingModule } from './billing/billing.module';
|
|
import { SchedulerModule } from './scheduler/scheduler.module';
|
|
import { AccountingModule } from './accounting/accounting.module';
|
|
import { PayrollModule } from './payroll/payroll.module';
|
|
import { RoleModule } from './role/role.module';
|
|
import { CommentModule } from './comment/comment.module';
|
|
import { ImportModule } from './import/import.module';
|
|
import { GlobalExceptionFilter } from './common/filters/http-exception.filter';
|
|
import { ResponseInterceptor } from './common/interceptors/response.interceptor';
|
|
import { PermissionsGuard } from './common/guards/permissions.guard';
|
|
import { AccessGuard } from './common/guards/access.guard';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
envFilePath: '../../.env',
|
|
}),
|
|
ThrottlerModule.forRoot([
|
|
{ name: 'short', ttl: 1000, limit: 50 }, // 50 req/sec
|
|
{ name: 'medium', ttl: 60000, limit: 500 }, // 500 req/min
|
|
]),
|
|
PrismaModule,
|
|
HealthModule,
|
|
AuthModule,
|
|
UserModule,
|
|
TenantModule,
|
|
AreaModule,
|
|
PlanModule,
|
|
ClientModule,
|
|
TicketModule,
|
|
SubscriptionModule,
|
|
InvoiceModule,
|
|
PaymentModule,
|
|
DashboardModule,
|
|
ReportModule,
|
|
NotificationModule,
|
|
AuditModule,
|
|
EmployeeModule,
|
|
ExpenseModule,
|
|
AccountModule,
|
|
AssetModule,
|
|
PortalModule,
|
|
BillingModule,
|
|
SchedulerModule,
|
|
AccountingModule,
|
|
PayrollModule,
|
|
RoleModule,
|
|
CommentModule,
|
|
ImportModule,
|
|
],
|
|
providers: [
|
|
{ provide: APP_FILTER, useClass: GlobalExceptionFilter },
|
|
{ provide: APP_GUARD, useClass: ThrottlerGuard },
|
|
{ provide: APP_GUARD, useClass: PermissionsGuard },
|
|
{ provide: APP_GUARD, useClass: AccessGuard },
|
|
{ provide: APP_INTERCEPTOR, useClass: ResponseInterceptor },
|
|
],
|
|
})
|
|
export class AppModule {}
|