feat(messaging): add in-app messaging module with Conversation + Message models

Implements buyer-agent in-app messaging (Task 8.4):
- Prisma models: Conversation, ConversationParticipant, Message
- Full DDD module: domain entities, repository interfaces, CQRS commands/queries
- REST API: POST/GET conversations, POST/GET messages, PATCH read, DELETE messages
- WebSocket gateway (/messaging namespace): real-time message delivery, typing indicators, room-based routing
- 46 unit tests covering handlers, repositories, controller, and gateway

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-16 05:36:04 +07:00
parent 30d3039b94
commit 3b5da2dcf9
37 changed files with 2310 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ import { InquiriesModule } from '@modules/inquiries';
import { LeadsModule } from '@modules/leads';
import { ListingsModule } from '@modules/listings';
import { McpIntegrationModule } from '@modules/mcp';
import { MessagingModule } from '@modules/messaging';
import { HttpMetricsInterceptor, MetricsModule } from '@modules/metrics';
import { NotificationsModule } from '@modules/notifications';
import { PaymentsModule } from '@modules/payments';
@@ -46,6 +47,7 @@ import { AppController } from './app.controller';
AnalyticsModule,
MetricsModule,
McpIntegrationModule,
MessagingModule,
// ── Rate Limiting ──
// Default: 60 requests per 60 seconds per IP