FairRelay / ops /backend-dm /controllers /packagesController.js
MouleeswaranM's picture
Upload folder using huggingface_hub
fcf8749 verified
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
const MOCK_PACKAGES = [
{ id: 'pkg-001', trackingNo: 'PKG-A1B2C3D4', pickup: { location: 'Mumbai Warehouse', lat: 19.0760, lng: 72.8777 }, delivery: { location: 'Pune Hub', lat: 18.5204, lng: 73.8567 }, driver: 'Rajesh Kumar', status: 'IN_TRANSIT', date: new Date(), weight: 450 },
{ id: 'pkg-002', trackingNo: 'PKG-E5F6G7H8', pickup: { location: 'Bangalore Depot', lat: 12.9716, lng: 77.5946 }, delivery: { location: 'Chennai Port', lat: 13.0827, lng: 80.2707 }, driver: 'Priya Sharma', status: 'COMPLETED', date: new Date(Date.now() - 86400000), weight: 280 },
{ id: 'pkg-003', trackingNo: 'PKG-I9J0K1L2', pickup: { location: 'Delhi NCR', lat: 28.6139, lng: 77.2090 }, delivery: { location: 'Jaipur City', lat: 26.9124, lng: 75.7873 }, driver: 'Amit Patel', status: 'CARGO_LOADED', date: new Date(), weight: 620 },
];
async function fetchPackages() {
return prisma.delivery.findMany({
where: { status: { in: ['COMPLETED', 'IN_TRANSIT', 'EN_ROUTE_TO_DROP', 'CARGO_LOADED'] } },
include: { driver: { select: { name: true } } },
orderBy: { createdAt: 'desc' },
take: 10
});
}
function formatPackage(pkg) {
return {
id: pkg.id,
trackingNo: pkg.trackingNumber || `PKG-${pkg.id.substring(0, 8)}`,
pickup: { location: pkg.pickupLocation, lat: pkg.pickupLat, lng: pkg.pickupLng },
delivery: { location: pkg.dropLocation, lat: pkg.dropLat, lng: pkg.dropLng },
driver: pkg.driver?.name || 'Unassigned',
status: pkg.status,
date: pkg.createdAt,
weight: pkg.cargoWeight || 0
};
}
// GET /api/packages/history - Get last 10 package deliveries with location data
const getHistory = async (req, res) => {
try {
const packages = await fetchPackages();
res.json(packages.map(formatPackage));
} catch (error) {
console.warn('[Demo Mode] getHistory using mock data');
res.json(MOCK_PACKAGES);
}
};
const getHistoryWeb = async (req, res) => {
try {
const packages = await fetchPackages();
res.json(packages.map(formatPackage));
} catch (error) {
console.warn('[Demo Mode] getHistoryWeb using mock data');
res.json(MOCK_PACKAGES);
}
};
module.exports = { getHistory, getHistoryWeb };