Ho Ngoc Hai
2a392525a2
feat(cache): implement Redis caching layer for hot-read endpoints
...
Add cache-aside pattern for listing detail, search results, market
analytics (4 endpoints), and user profile queries. Cache invalidation
on all write mutations. Prometheus cache_hit_total/cache_miss_total
metrics with resource labels.
- CacheService: getOrSet, invalidate, invalidateByPrefix (SCAN-based)
- TTLs: listing 5m, search 1m, market 30m, profile 10m
- All 230 tests passing (13 new cache tests + 6 updated handler tests)
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 04:14:06 +07:00
Ho Ngoc Hai
8e7672694b
feat(api): add OpenAPI/Swagger documentation for all API endpoints
...
Install @nestjs/swagger, configure Swagger UI at /api/docs with JWT bearer
auth, and add ApiTags/ApiOperation/ApiResponse/ApiProperty decorators to
all 8 controllers (50+ endpoints) and 31 DTOs across auth, listings,
search, payments, subscriptions, admin, notifications, and analytics modules.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 04:08:11 +07:00
Ho Ngoc Hai
8a33aae026
feat(listings): implement Listings module with CRUD, media upload, and moderation
...
Full DDD/CQRS implementation for the Listings module (TEC-1423):
- Domain: Property, Listing, PropertyMedia entities with status machine
- Value Objects: Address, GeoPoint, Price with validation
- Events: ListingCreated, ListingApproved, ListingSold
- Commands: CreateListing, UpdateListingStatus, UploadMedia, ModerateListing
- Queries: GetListing, SearchListings, GetPendingModeration
- Infrastructure: Prisma repositories with PostGIS support, MinIO media storage
- Presentation: REST controller with JWT auth, role-based moderation
- 21 domain unit tests (all passing)
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 01:47:15 +07:00