const pool = require('../db/connection');

const getReportContracts = async (req, res) => {
  try {
    // Leer query params con valores por defecto
    const page = parseInt(req.query.page) || 1;   // Página actual
    const limit = parseInt(req.query.limit) || 10; // Cantidad por página
    const offset = (page - 1) * limit;           // Desde dónde empezar

    // Llamamos a la función con LIMIT y OFFSET
    const result = await pool.query(
      `SELECT * FROM reportcontracts() LIMIT $1 OFFSET $2`,
      [limit, offset]
    );

    // Obtener total para calcular páginas
    const totalResult = await pool.query('SELECT COUNT(*) FROM contracts');
    const total = parseInt(totalResult.rows[0].count);
    const totalPages = Math.ceil(total / limit);

    const contracts = result.rows.map(con => ({
      name_employee: con.id_contract,
      position_employee: con.name_employee,
      area_employee: con.position_employee,
      contract_end: con.end_contract,
      daily_pay: con.daily_pay,
      status_contracts: con.status_contracts
    }));

    res.json({
      page,
      limit,
      total,
      totalPages,
      data: contracts
    });

  } catch (error) {
    console.error(error);
    res.status(500).json({ message: 'Error al obtener los contratos' });
  }
};

module.exports = { getReportContracts };