feat(api): add inquiries, leads, and agents modules for Agent Portal
Build three new DDD modules following existing CQRS patterns: - Inquiries: CRUD endpoints for buyer consultation requests with agent notification support - Leads: Full lead lifecycle management with status state machine and conversion tracking - Agents: Quality score calculation (event-driven on review changes) and dashboard stats API All modules include unit tests (14 test files, all 797 tests pass). Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
28
apps/api/src/modules/inquiries/inquiries.module.ts
Normal file
28
apps/api/src/modules/inquiries/inquiries.module.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { CqrsModule } from '@nestjs/cqrs';
|
||||
import { CreateInquiryHandler } from './application/commands/create-inquiry/create-inquiry.handler';
|
||||
import { MarkInquiryReadHandler } from './application/commands/mark-inquiry-read/mark-inquiry-read.handler';
|
||||
import { GetInquiriesByAgentHandler } from './application/queries/get-inquiries-by-agent/get-inquiries-by-agent.handler';
|
||||
import { GetInquiriesByListingHandler } from './application/queries/get-inquiries-by-listing/get-inquiries-by-listing.handler';
|
||||
import { INQUIRY_REPOSITORY } from './domain/repositories/inquiry.repository';
|
||||
import { PrismaInquiryRepository } from './infrastructure/repositories/prisma-inquiry.repository';
|
||||
import { InquiriesController } from './presentation/controllers/inquiries.controller';
|
||||
|
||||
const CommandHandlers = [CreateInquiryHandler, MarkInquiryReadHandler];
|
||||
|
||||
const QueryHandlers = [
|
||||
GetInquiriesByListingHandler,
|
||||
GetInquiriesByAgentHandler,
|
||||
];
|
||||
|
||||
@Module({
|
||||
imports: [CqrsModule],
|
||||
controllers: [InquiriesController],
|
||||
providers: [
|
||||
{ provide: INQUIRY_REPOSITORY, useClass: PrismaInquiryRepository },
|
||||
...CommandHandlers,
|
||||
...QueryHandlers,
|
||||
],
|
||||
exports: [INQUIRY_REPOSITORY],
|
||||
})
|
||||
export class InquiriesModule {}
|
||||
Reference in New Issue
Block a user