Lets treasurers/captains/coaches define recurring fee/levy dues that are automatically booked for all active players on a monthly, quarterly, or yearly schedule via a daily cron job, instead of having to book them manually every cycle. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
66 lines
2.4 KiB
TypeScript
66 lines
2.4 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
import { UsersModule } from './users/users.module';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import databaseConfig from './config/database.config';
|
|
import authConfig from './config/auth.config';
|
|
import appConfig from './config/app.config';
|
|
import mailConfig from './config/mail.config';
|
|
import { MailerModule } from '@nestjs-modules/mailer';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import { TypeOrmConfigService } from './database/typeorm-config.service';
|
|
import { MailConfigService } from './mail/mail-config.service';
|
|
import { ForgotModule } from './forgot/forgot.module';
|
|
import { MailModule } from './mail/mail.module';
|
|
import { DataSource } from 'typeorm';
|
|
import { PlayersModule } from './players/players.module';
|
|
import { TeamsModule } from './teams/teams.module';
|
|
import { TransactionsModule } from './transactions/transactions.module';
|
|
import { TeamWalletTransactionsModule } from './team-wallet-transactions/team-wallet-transactions.module';
|
|
import { ServeStaticModule } from '@nestjs/serve-static';
|
|
import { join } from 'path';
|
|
import { LoggingModule } from './database/logging/logging.module';
|
|
import { TranslateModule } from './translate/translate.module';
|
|
import { PenaltyModule } from './penalty/penalty.module';
|
|
import { RecurringTransactionsModule } from './recurring-transactions/recurring-transactions.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
ScheduleModule.forRoot(),
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
load: [databaseConfig, authConfig, appConfig, mailConfig],
|
|
envFilePath: ['.env'],
|
|
}),
|
|
TypeOrmModule.forRootAsync({
|
|
useClass: TypeOrmConfigService,
|
|
dataSourceFactory: async (options) => {
|
|
const dataSource = await new DataSource(options).initialize();
|
|
return dataSource;
|
|
},
|
|
}),
|
|
MailerModule.forRootAsync({
|
|
useClass: MailConfigService,
|
|
}),
|
|
ServeStaticModule.forRoot({
|
|
rootPath: join(__dirname, '../client'),
|
|
exclude: ['*/api*'],
|
|
}),
|
|
UsersModule,
|
|
AuthModule,
|
|
ForgotModule,
|
|
MailModule,
|
|
PlayersModule,
|
|
TeamsModule,
|
|
TransactionsModule,
|
|
TeamWalletTransactionsModule,
|
|
LoggingModule,
|
|
TranslateModule,
|
|
PenaltyModule,
|
|
RecurringTransactionsModule,
|
|
],
|
|
providers: [],
|
|
})
|
|
export class AppModule {}
|