{"message":"Welcome to Combined Track & Trace API","version":"2.5.0","features":{"authentication":"Enhanced with feature-based access control","roleManagement":"Role-feature mapping system","featureAccess":"Tab-based permission system","tabVisibility":"Dynamic tab visibility based on user roles","productManagement":"Product page routes integrated","bulkUpload":"Bulk product upload via CSV/Excel","batchTracking":"Batch page routes integrated","mobileDashboard":"Mobile dashboard routes integrated","stockManagement":"Stock near expiry routes integrated","uniqueCodeGeneration":"Plant-based unique code generation system","scheduledStatusChanges":"Automated status change scheduling","aggregation":"Primary-Secondary product linking system","offlineSync":"Delta sync status API for offline operator app","templateProductionSync":"Template master and production plan sync from operator interface"},"endpoints":{"uniqueCodes":{"generate":"POST /api/unique-codes/generate","list":"GET /api/unique-codes","getById":"GET /api/unique-codes/:id","lots":"GET /api/unique-codes/lots","stats":"GET /api/unique-codes/stats"},"bulkUpload":{"downloadCsvTemplate":"GET /api/bulk-upload/template/csv?type=basic|advanced","downloadExcelTemplate":"GET /api/bulk-upload/template/excel?type=basic|advanced","validateFile":"POST /api/bulk-upload/validate (multipart/form-data)","importProducts":"POST /api/bulk-upload/import/:uploadId","downloadErrors":"GET /api/bulk-upload/errors/:uploadId","hierarchyOptions":"GET /api/bulk-upload/hierarchy-options","cancelUpload":"DELETE /api/bulk-upload/cancel/:uploadId"},"aggregation":{"aggregate":"POST /api/aggregation/aggregate","deaggregate":"POST /api/aggregation/deaggregate","validate":"POST /api/aggregation/validate","searchSecondary":"GET /api/aggregation/secondary/:uid","searchPrimary":"GET /api/aggregation/primary/:uid","userHistory":"GET /api/aggregation/history/:userId","sync":"POST /api/aggregation/sync"},"plantLineProducts":{"create":"POST   /api/plant-line-products","list":"GET    /api/plant-line-products?plantId=&lineId=&productId=&activeOnly=true","getById":"GET    /api/plant-line-products/:id","update":"PUT    /api/plant-line-products/:id","delete":"DELETE /api/plant-line-products/:id","history":"GET    /api/plant-line-products/:id/history","byPlantLine":"GET    /api/plant-line-products/by-plant-line?plantCode=&lineCode=&updatedAfter=&deviceId=","offlineFeed":"GET    /api/plant-line-products/offline/feed?plantId=&lineId=&updatedAfter=","syncFromOffline":"PATCH  /api/plant-line-products/sync-from-offline"},"offlineSync":{"syncStatus":"GET /offline/sync-status?plantId="},"templateProductionSync":{"syncTemplates":"POST /api/sync/templates","syncProductionPlans":"POST /api/sync/production-plans"},"scheduledChanges":{"manualTrigger":"POST /api/admin/process-scheduled-changes","locationTypes":"GET /api/location-types/scheduled-changes"},"relationshipViolations":{"getAll":"GET /api/relationship-violations?page=1&limit=100&start_date=2024-01-01&end_date=2024-12-31&location_code=DST001","stats":"GET /api/relationship-violations/stats?start_date=2024-01-01&end_date=2024-12-31","validate":"POST /api/relationship-violations/validate {from_code, to_code, transaction_date}","coverage":"GET /api/relationship-violations/mapping-coverage"}}}