33 lines
1.6 KiB
TypeScript
33 lines
1.6 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { PrismaModule } from '../../common/prisma-adapter/prisma.module.js';
|
|
import { ProjectPrismaRepository } from './infrastructure/persistence/prisma/repositories/project.prisma-repository.js';
|
|
import { PROJECT_REPOSITORY } from './domain/repositories/project.repository.interface.js';
|
|
import { ProjectController } from './presentation/controllers/project.controller.js';
|
|
import { CreateProjectUseCase } from './application/use-cases/create-project/create-project.use-case.js';
|
|
import { GetProjectUseCase } from './application/use-cases/get-project/get-project.use-case.js';
|
|
import { ListProjectsUseCase } from './application/use-cases/list-projects/list-projects.use-case.js';
|
|
import { UpdateProjectUseCase } from './application/use-cases/update-project/update-project.use-case.js';
|
|
import { DeleteProjectUseCase } from './application/use-cases/delete-project/delete-project.use-case.js';
|
|
import { ProjectResolver } from './presentation/resolvers/project.resolver.js';
|
|
|
|
@Module({
|
|
imports: [PrismaModule],
|
|
controllers: [ProjectController],
|
|
providers: [
|
|
CreateProjectUseCase,
|
|
GetProjectUseCase,
|
|
ListProjectsUseCase,
|
|
UpdateProjectUseCase,
|
|
DeleteProjectUseCase,
|
|
ProjectResolver,
|
|
{
|
|
// Domain видит только интерфейс IProjectRepository,
|
|
// конкретную реализацию (Prisma) подставляет DI-контейнер здесь
|
|
provide: PROJECT_REPOSITORY,
|
|
useClass: ProjectPrismaRepository,
|
|
},
|
|
],
|
|
exports: [PROJECT_REPOSITORY],
|
|
})
|
|
export class ProjectModule {}
|