import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { PrismaModule } from './prisma/prisma.module';
import { ProductsModule } from './products/products.module';
import { CategoriesModule } from './categories/categories.module';
import { JobsModule } from './jobs/jobs.module';
import { LogsModule } from './logs/logs.module';
import { ClientsModule } from './clients/clients.module';
import { UsersModule } from './users/users.module';
import { ReportsModule } from './reports/reports.module';
import { AuthModule } from './auth/auth.module';
import { providePrismaClientExceptionFilter } from 'nestjs-prisma';
import { MatricesModule } from './matrices/matrices.module';
import { InksModule } from './inks/inks.module';
import { FeesModule } from './fees/fees.module';
import { DesignsModule } from './designs/designs.module';
import { LineitemsModule } from './lineitems/lineitems.module';
import { MilestonesModule } from './milestones/milestones.module';
import { ImprintsModule } from './imprints/imprints.module';
import { XeroTestingModule } from './xero-testing/xero-testing.module';
import { CombinesModule } from './combines/combines.module';
import { QuotesModule } from './quotes/quotes.module';
import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';
import { EmailsModule } from './emails/emails.module';
import { ExpensesModule } from './expenses/expenses.module';
import { ImagesModule } from './images/images.module';
import { SettingsModule } from './settings/settings.module';

@Module({
	imports: [
		ServeStaticModule.forRoot({
			rootPath: join(__dirname, '../../', 'public'),
			serveRoot: '/public/',
		}),
		PrismaModule,
		ProductsModule,
		CategoriesModule,
		JobsModule,
		LogsModule,
		ClientsModule,
		UsersModule,
		ReportsModule,
		AuthModule,
		MatricesModule,
		InksModule,
		FeesModule,
		DesignsModule,
		LineitemsModule,
		MilestonesModule,
		ImprintsModule,
		XeroTestingModule,
		CombinesModule,
		QuotesModule,
		EmailsModule,
		ExpensesModule,
		ImagesModule,
        SettingsModule,
	],
	controllers: [AppController],
	providers: [AppService, providePrismaClientExceptionFilter()],
})
export class AppModule {}
