const BaseController = require('./base.controller');
const { Cartilla, ItemCartilla } = require('../models');

class CartillaController extends BaseController {
  constructor() {
    super(Cartilla, 'Cartilla', ['Therapy', 'Patient', 'Diagnosis', 'Responsable', 'Status']);
  }

  // Sobrescribir getById para incluir items
  getById = async (req, res, next) => {
    try {
      const { id } = req.params;
      const data = await this.model.findByPk(id);
      if (!data) {
        return res.status(404).json({
          success: false,
          message: `${this.modelName} no encontrado`
        });
      }
      res.json({
        success: true,
        message: `${this.modelName} obtenido exitosamente`,
        data
      });
    } catch (error) {
      next(error);
    }
  };

  // Sobrescribir getById para incluir items
  getByPacienteId = async (req, res, next) => {
    try {
      const { pacienteId } = req.params;
      console.log(pacienteId);
      const data = await this.model.findOne({
        where: { PacienteId: pacienteId },
      });
      console.log('consulta: ',data);
      
      if (!data) {
        return res.json({
          success: false,
          data: null,
          message: `No hay ${this.modelName} asociadas al paciente por el momento`
        });
      }

      res.json({
        success: true,
        message: `${this.modelName} obtenido exitosamente`,
        data
      });
    } catch (error) {
      next(error);
    }
  };
}

module.exports = new CartillaController();