import { Router } from 'express';
import { authenticate, requireAdmin, requireTeacherOrAdmin } from '../middlewares/auth';
import * as openaiController from '../controllers/openaiController';

const router = Router();

// Get current OpenAI configuration (accessible to all authenticated users)
router.get('/config', authenticate, openaiController.getConfig);

// Update just the API key or just the assistant ID (admin only, saved independently)
router.post('/config/api-key', authenticate, requireAdmin, openaiController.updateApiKey);
router.post('/config/assistant-id', authenticate, requireAdmin, openaiController.updateAssistantId);

// Test OpenAI connection (admin only)
router.post('/test', authenticate, requireAdmin, openaiController.testConnection);

// Generate conversation feedback (any authenticated user; access validated in controller)
router.post('/generate-feedback', authenticate, openaiController.generateFeedback);

// Get conversation feedback (admin/teacher/student - own conversations)
router.get('/conversation/:conversationId/feedback', authenticate, openaiController.getConversationFeedback);

export default router;
