38 lines
2.0 KiB
TypeScript
38 lines
2.0 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { PrismaModule } from '../../common/prisma-adapter/prisma.module.js';
|
|
import { IssueModule } from '../issue/issue.module.js';
|
|
import { UserModule } from '../user/user.module.js';
|
|
import { COMMENT_REPOSITORY } from './domain/repositories/comment.repository.interface.js';
|
|
import { CommentPrismaRepository } from './infrastructure/persistence/prisma/repositories/comment.prisma-repository.js';
|
|
import { CommentController } from './presentation/controllers/comment.controller.js';
|
|
import { CreateCommentUseCase } from './application/use-cases/create-comment/create-comment.use-case.js';
|
|
import { ListCommentsUseCase } from './application/use-cases/list-comments/list-comments.use-case.js';
|
|
import { UpdateCommentUseCase } from './application/use-cases/update-comment/update-comment.use-case.js';
|
|
import { DeleteCommentUseCase } from './application/use-cases/delete-comment/delete-comment.use-case.js';
|
|
import { WatchIssueCommentsUseCase } from './application/use-cases/watch-issue-comments/watch-issue-comments.use-case.js';
|
|
import { CommentAccessService } from './application/services/comment-access.service.js';
|
|
import { CommentAuthorExpanderService } from './application/services/comment-author-expander.service.js';
|
|
import { CommentEventsService } from './application/services/comment-events.service.js';
|
|
|
|
@Module({
|
|
imports: [PrismaModule, IssueModule, UserModule],
|
|
controllers: [CommentController],
|
|
providers: [
|
|
CreateCommentUseCase,
|
|
ListCommentsUseCase,
|
|
UpdateCommentUseCase,
|
|
DeleteCommentUseCase,
|
|
WatchIssueCommentsUseCase,
|
|
CommentAccessService,
|
|
CommentAuthorExpanderService,
|
|
CommentEventsService,
|
|
{
|
|
// Domain видит только интерфейс ICommentRepository,
|
|
// конкретную реализацию (Prisma) подставляет DI-контейнер здесь
|
|
provide: COMMENT_REPOSITORY,
|
|
useClass: CommentPrismaRepository,
|
|
},
|
|
],
|
|
})
|
|
export class CommentModule {}
|