import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectModel } from '@nestjs/sequelize';
import { Atendimento } from 'src/unid-saude/entity/atendimento.model';
import { Cid } from 'src/unid-saude/entity/cid.model';
import { Paciente } from 'src/unid-saude/entity/paciente.unid-saude.model';
import { CreateAtendimentoParams } from 'src/utils/types';

@Injectable()
export class AtendimentoService {
    constructor(
        @InjectModel(Atendimento)
        private readonly atendimentoModel: typeof Atendimento,
        @InjectModel(Paciente)
        private readonly pacienteModel: typeof Paciente,
        @InjectModel(Cid)
        private readonly cidModel: typeof Cid,
      ) {}
    
      async findAtendimentosWithPacienteAndCid() {
        return this.atendimentoModel.findAll({
          include: [
            Paciente, Cid
          ],
        });
      }


      async createAtendimento(AtendimentoDetails: CreateAtendimentoParams) {
        const paciente = await this.pacienteModel.findByPk(AtendimentoDetails.pacienteid);
        const cid = await this.cidModel.findByPk(AtendimentoDetails.cidid);
    
        if (!paciente || !cid) {
          throw new NotFoundException('Paciente ou CID não encontrado');
        }
    
        const newAtendimento = this.atendimentoModel.create({
          ...AtendimentoDetails
        });
        return newAtendimento;
      }
}
