| 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 |
| }; |
| } |
|
|
| |
| 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 }; |
|
|