const express = require('express');
const router = express.Router();
const db = require('../config/db');

router.get('/choferes', async function(req, res) {
    try {
        var buscar = req.query.buscar || '';
        var limit = req.query.limit !== undefined ? parseInt(req.query.limit) : 20;
        var idEmpresa = parseInt(req.query.id_empresa);

        if (!idEmpresa) return res.status(400).json({ ok: false, mensaje: 'Empresa requerida' });

        var where = 'WHERE ch.id_empresa = @id_empresa AND ch.estado = 1';
        var params = {
            id_empresa: { type: db.sql.Int, value: idEmpresa }
        };

        if (req.query.id_sucursal) {
            where += ' AND ch.id_sucursal = @id_sucursal';
            params.id_sucursal = { type: db.sql.Int, value: parseInt(req.query.id_sucursal) };
        }

        if (buscar) {
            where += ' AND (ch.nombre LIKE @buscar OR ch.num_documento LIKE @buscar OR ch.cod_chofer LIKE @buscar)';
            params.buscar = { type: db.sql.NVarChar(100), value: '%' + buscar + '%' };
        }

        var sql = `SELECT ch.id_chofer, ch.cod_chofer, ch.nombre, ch.tipo_documento, ch.num_documento,
                          ch.licencia, ch.telefono
                   FROM choferes ch
                   ${where}
                   ORDER BY ch.nombre
                   ${limit > 0 ? 'OFFSET 0 ROWS FETCH NEXT ' + limit + ' ROWS ONLY' : ''}`;

        var data = await db.query(sql, params);
        res.json({ ok: true, data: data, total: data.length });
    } catch (error) {
        console.error('[CHOFERES] Error:', error.message);
        res.status(500).json({ ok: false, mensaje: 'Error al listar choferes' });
    }
});

module.exports = router;
