const express = require('express'); const router = express.Router(); const { getModelStatus, getModelVersions, createModelVersion, updateModelVersion, activateModel, getTrainingData } = require('../controllers/modelController'); const { generatePlan, validatePlan, getPlan, updatePlan, getModelStatus: getModel1Status } = require('../controllers/model1Controller'); const { executePlan, executeTool, getExecutionStatus, getToolExecutions, getModelStatus: getQueryModelStatus, orchestratePlan } = require('../controllers/queryModelController'); const { authenticate, authorize } = require('../middleware/auth'); const { validate, schemas } = require('../middleware/validation'); // All model routes require authentication router.use(authenticate); // Public model status router.get('/status', getModelStatus); // MODEL1 routes router.post('/model1/generate-plan', validate(schemas.generatePlan), generatePlan); router.post('/model1/validate-plan/:planId', validatePlan); router.get('/model1/plan/:planId', getPlan); router.put('/model1/plan/:planId', updatePlan); router.get('/model1/status', getModel1Status); // QUERYMODEL routes router.post('/querymodel/execute-plan', executePlan); router.post('/querymodel/execute-tool', executeTool); router.post('/querymodel/orchestrate', orchestratePlan); router.get('/querymodel/execution-status/:planId', getExecutionStatus); router.get('/querymodel/tool-executions', getToolExecutions); router.get('/querymodel/status', getQueryModelStatus); // Model management (admin only) router.get('/versions', authorize('admin'), getModelVersions); router.post('/versions', authorize('admin'), validate(schemas.createModelVersion), createModelVersion); router.put('/versions/:modelId', authorize('admin'), updateModelVersion); router.put('/versions/:modelId/activate', authorize('admin'), activateModel); router.get('/training-data', authorize('admin'), getTrainingData); module.exports = router;