feat(analytics): add GET /analytics/price-movers endpoint

Top tăng/giảm giá theo district cho Home dashboard.
Compares avg listing prices between current and previous time windows,
filters by min sample size (10), caches for 30 min.

TEC-3053

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-21 02:24:44 +07:00
parent a70db64da1
commit 0651074319
8 changed files with 337 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ import { GetHeatmapHandler } from './application/queries/get-heatmap/get-heatmap
import { GetListingAiAdviceHandler } from './application/queries/get-listing-ai-advice/get-listing-ai-advice.handler';
import { GetMarketReportHandler } from './application/queries/get-market-report/get-market-report.handler';
import { GetMarketSnapshotHandler } from './application/queries/get-market-snapshot/get-market-snapshot.handler';
import { GetPriceMoversHandler } from './application/queries/get-price-movers/get-price-movers.handler';
import { GetProjectAiAdviceHandler } from './application/queries/get-project-ai-advice/get-project-ai-advice.handler';
import { GetNearbyPOIsHandler } from './application/queries/get-nearby-pois/get-nearby-pois.handler';
import { GetNeighborhoodScoreHandler } from './application/queries/get-neighborhood-score/get-neighborhood-score.handler';
@@ -63,6 +64,7 @@ const QueryHandlers = [
GetListingAiAdviceHandler,
GetProjectAiAdviceHandler,
GetMarketSnapshotHandler,
GetPriceMoversHandler,
];
const EventHandlers = [