24a96c3da1
- Add FlyerSession, FlyerItem, and FlyerSelection models to Prisma schema - Implement session persistence with weekly key generation in FlyerImportService - Add FlyerSelectionModule to AppModule - Extend FlyerImportResponse with sessionId and flyerItemId fields - Create new flyer-selection module directory structure - Add migration for flyer session and selection tables BREAKING CHANGE: Flyer import now persists data to FlyerSession and FlyerItem tables
72 lines
2.3 KiB
TypeScript
72 lines
2.3 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { APP_GUARD } from '@nestjs/core';
|
|
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
|
|
import { HealthModule } from './health/health.module';
|
|
import { PrismaModule } from './prisma/prisma.module';
|
|
import { ProductsModule } from './products/products.module';
|
|
import { InventoryModule } from './inventory/inventory.module';
|
|
import { RecipesModule } from './recipes/recipes.module';
|
|
import { QuickImportModule } from './quick-import/quick-import.module';
|
|
import { PantryModule } from './pantry/pantry.module';
|
|
import { MealPlanModule } from './meal-plan/meal-plan.module';
|
|
import { ReceiptImportModule } from './receipt-import/receipt-import.module';
|
|
import { ReceiptAliasModule } from './receipt-alias/receipt-alias.module';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import { UsersModule } from './users/users.module';
|
|
import { UserProductsModule } from './user-products/user-products.module';
|
|
import { CategoriesModule } from './categories/categories.module';
|
|
import { AiModule } from './ai/ai.module';
|
|
import { RealtimeModule } from './realtime/realtime.module';
|
|
import { HelpTextsModule } from './help-texts/help-texts.module';
|
|
import { FlyerImportModule } from './flyer-import/flyer-import.module';
|
|
import { FlyerSelectionModule } from './flyer-selection/flyer-selection.module';
|
|
import { JwtAuthGuard } from './auth/jwt-auth.guard';
|
|
import { RolesGuard } from './auth/roles.guard';
|
|
|
|
|
|
@Module({
|
|
imports: [
|
|
ThrottlerModule.forRoot([
|
|
{
|
|
name: 'default',
|
|
ttl: 60_000, // 1 minut
|
|
limit: 120, // 120 anrop per minut (generellt)
|
|
},
|
|
]),
|
|
HealthModule,
|
|
PrismaModule,
|
|
ProductsModule,
|
|
InventoryModule,
|
|
RecipesModule,
|
|
QuickImportModule,
|
|
PantryModule,
|
|
MealPlanModule,
|
|
ReceiptImportModule,
|
|
ReceiptAliasModule,
|
|
AuthModule,
|
|
UsersModule,
|
|
UserProductsModule,
|
|
CategoriesModule,
|
|
AiModule,
|
|
RealtimeModule,
|
|
HelpTextsModule,
|
|
FlyerImportModule,
|
|
FlyerSelectionModule,
|
|
],
|
|
providers: [
|
|
{
|
|
provide: APP_GUARD,
|
|
useClass: ThrottlerGuard,
|
|
},
|
|
{
|
|
provide: APP_GUARD,
|
|
useClass: JwtAuthGuard,
|
|
},
|
|
{
|
|
provide: APP_GUARD,
|
|
useClass: RolesGuard,
|
|
},
|
|
],
|
|
})
|
|
export class AppModule {}
|