import { Router, type IRouter } from 'express';
import { authenticate } from '../middlewares/auth.middleware.js';
import { tenantMiddleware } from '../middlewares/tenant.middleware.js';
import * as usuariosController from '../controllers/usuarios.controller.js';

const router: IRouter = Router();

router.use(authenticate);

// Rutas por tenant
router.get('/', usuariosController.getUsuarios);
router.post('/invite', usuariosController.inviteUsuario);
router.patch('/:id', usuariosController.updateUsuario);
router.delete('/:id', usuariosController.deleteUsuario);

// Cliente accesos (requires tenantPool)
router.get('/:id/accesos', tenantMiddleware, usuariosController.getClienteAccesos);
router.post('/:id/accesos', tenantMiddleware, usuariosController.setClienteAccesos);

// Supervisor de auxiliar (requires tenantPool)
router.get('/:id/supervisor', tenantMiddleware, usuariosController.getSupervisor);
router.put('/:id/supervisor', tenantMiddleware, usuariosController.updateSupervisor);

// Rutas globales (solo admin global)
router.get('/global/all', usuariosController.getAllUsuarios);
router.patch('/global/:id', usuariosController.updateUsuarioGlobal);
router.delete('/global/:id', usuariosController.deleteUsuarioGlobal);

export { router as usuariosRoutes };
