Files
ulitka/src/modules/issue/issue.module.ts
T
vadim 7b999a670c
Gitea Actions Demo / Deploy (push) Failing after 18s
init
2026-09-24 10:34:27 +03:00

43 lines
2.1 KiB
TypeScript

import { Module } from '@nestjs/common';
import { PrismaModule } from '../../common/prisma-adapter/prisma.module.js';
import { ProjectModule } from '../project/project.module.js';
import { UserModule } from '../user/user.module.js';
import { IssuePrismaRepository } from './infrastructure/persistence/prisma/repositories/issue.prisma-repository.js';
import { ISSUE_REPOSITORY } from './domain/repositories/issue.repository.interface.js';
import { IssueController } from './presentation/controllers/issue.controller.js';
import { CreateIssueUseCase } from './application/use-cases/create-issue/create-issue.use-case.js';
import { GetIssueUseCase } from './application/use-cases/get-issue/get-issue.use-case.js';
import { ListIssuesUseCase } from './application/use-cases/list-issues/list-issues.use-case.js';
import { UpdateIssueUseCase } from './application/use-cases/update-issue/update-issue.use-case.js';
import { DeleteIssueUseCase } from './application/use-cases/delete-issue/delete-issue.use-case.js';
import { IssueResolver } from './presentation/resolvers/issue.resolver.js';
import { GetIssueByCkeyUseCase } from './application/use-cases/get-issue-by-ckey/get-issue-by-ckey.use-case.js';
import { IssueEventsService } from './application/services/issue-events.service.js';
import { IssueUserExpanderService } from './application/services/issue-user-expander.service.js';
import { GetIssueStatsUseCase } from './application/use-cases/get-issue-stats/get-issue-stats.use-case.js';
@Module({
imports: [PrismaModule, ProjectModule, UserModule],
controllers: [IssueController],
providers: [
CreateIssueUseCase,
GetIssueUseCase,
GetIssueByCkeyUseCase,
ListIssuesUseCase,
UpdateIssueUseCase,
DeleteIssueUseCase,
GetIssueStatsUseCase,
IssueResolver,
IssueEventsService,
IssueUserExpanderService,
{
// Domain видит только интерфейс IIssueRepository,
// конкретную реализацию (Prisma) подставляет DI-контейнер здесь
provide: ISSUE_REPOSITORY,
useClass: IssuePrismaRepository,
},
],
exports: [ISSUE_REPOSITORY],
})
export class IssueModule {}