feat(api): improve notifications, reviews, search, and subscriptions modules

- Add listing-sold event listener with spec for notifications
- Add review-deleted event listener with spec for reviews
- Improve search handlers with proper Typesense client injection
- Improve subscription handlers with ConfigService and quota tracking

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-09 09:43:39 +07:00
parent f15e98a33b
commit e927385ed5
54 changed files with 356 additions and 82 deletions

View File

@@ -1,4 +1,4 @@
import { type DomainEvent } from '@modules/shared/domain/domain-event';
import { type DomainEvent } from '@modules/shared';
export class QuotaExceededEvent implements DomainEvent {
readonly eventName = 'quota.exceeded';

View File

@@ -1,5 +1,5 @@
import { type PlanTier } from '@prisma/client';
import { type DomainEvent } from '@modules/shared/domain/domain-event';
import { type DomainEvent } from '@modules/shared';
export class SubscriptionCancelledEvent implements DomainEvent {
readonly eventName = 'subscription.cancelled';

View File

@@ -1,5 +1,5 @@
import { type PlanTier } from '@prisma/client';
import { type DomainEvent } from '@modules/shared/domain/domain-event';
import { type DomainEvent } from '@modules/shared';
export class SubscriptionCreatedEvent implements DomainEvent {
readonly eventName = 'subscription.created';

View File

@@ -1,5 +1,5 @@
import { type PlanTier } from '@prisma/client';
import { type DomainEvent } from '@modules/shared/domain/domain-event';
import { type DomainEvent } from '@modules/shared';
export class SubscriptionUpgradedEvent implements DomainEvent {
readonly eventName = 'subscription.upgraded';