import { Module } from '@nestjs/common'; import { PrismaService } from '../../shared/prisma.service'; import { ApplicationsController } from './presentation/controllers/applications.controller'; import { PrismaApplicationRepository } from './infrastructure/repositories/prisma-application.repository'; import { IApplication } from './domain/repositories/application.interface'; import { GetApplicationsHandler } from './application/handlers/get-applications.handler'; import { GetApplicationHandler } from './application/handlers/get-application.handler'; import { CreateApplicationHandler } from './application/handlers/create-application.handler'; import { UpdateApplicationHandler } from './application/handlers/update-application.handler'; import { DeleteApplicationHandler } from './application/handlers/delete-application.handler'; import { GetMeApplicationsHandler } from './application/handlers/get-me-applications.handler'; import { ApplicationValidator } from './application/validators/application.validator'; import { JwtAuthGuard } from '../../core/auth/guards/jwt-auth.guard'; import { CurrentUserGuard } from '../identity/presentation/guards/current-user.guard'; @Module({ imports: [], providers: [ PrismaService, PrismaApplicationRepository, GetApplicationsHandler, GetApplicationHandler, CreateApplicationHandler, UpdateApplicationHandler, DeleteApplicationHandler, GetMeApplicationsHandler, ApplicationValidator, JwtAuthGuard, CurrentUserGuard, { provide: IApplication, useClass: PrismaApplicationRepository, }, ], controllers: [ApplicationsController], }) export class ApplicationModule {}