Community 93 Premium feature complete

This commit is contained in:
Eric Gullickson
2025-12-21 11:31:10 -06:00
parent 1bde31247f
commit 95f5e89e48
60 changed files with 8061 additions and 350 deletions

View File

@@ -24,6 +24,7 @@ import { CatalogImportService } from '../domain/catalog-import.service';
import { PlatformCacheService } from '../../platform/domain/platform-cache.service';
import { cacheService } from '../../../core/config/redis';
import { pool } from '../../../core/config/database';
import { CommunityStationsController } from '../../stations/api/community-stations.controller';
export const adminRoutes: FastifyPluginAsync = async (fastify) => {
const adminController = new AdminController();
@@ -33,6 +34,9 @@ export const adminRoutes: FastifyPluginAsync = async (fastify) => {
const stationOversightService = new StationOversightService(pool, adminRepository);
const stationsController = new StationsController(stationOversightService);
// Initialize community stations dependencies
const communityStationsController = new CommunityStationsController();
// Initialize catalog dependencies
const platformCacheService = new PlatformCacheService(cacheService);
const catalogService = new VehicleCatalogService(pool, platformCacheService);
@@ -294,4 +298,24 @@ export const adminRoutes: FastifyPluginAsync = async (fastify) => {
preHandler: [fastify.requireAdmin],
handler: stationsController.removeUserSavedStation.bind(stationsController)
});
// Phase 5: Community gas station submission oversight
// GET /api/admin/community-stations - List all submissions with filters
fastify.get('/admin/community-stations', {
preHandler: [fastify.requireAdmin],
handler: communityStationsController.listAllSubmissions.bind(communityStationsController)
});
// GET /api/admin/community-stations/pending - Get pending review queue
fastify.get('/admin/community-stations/pending', {
preHandler: [fastify.requireAdmin],
handler: communityStationsController.getPendingQueue.bind(communityStationsController)
});
// PATCH /api/admin/community-stations/:id/review - Approve or reject submission
fastify.patch('/admin/community-stations/:id/review', {
preHandler: [fastify.requireAdmin],
handler: communityStationsController.reviewStation.bind(communityStationsController)
});
};