# -*- coding: utf-8 -*-

from odoo import models


class SkeenCita(models.Model):
    _inherit = 'skeen.cita'

    def _get_visita_en_curso(self):
        self.ensure_one()
        return self.env['skeen.visita'].search([
            ('cita_id', '=', self.id),
            ('state', '=', 'en_curso'),
        ], limit=1)

    def action_arrive(self):
        res = super(SkeenCita, self).action_arrive()
        for cita in self:
            # Crear la visita clínica al llegar el paciente (una por cita)
            if not cita._get_visita_en_curso():
                self.env['skeen.visita'].create({
                    'cita_id': cita.id,
                    'partner_id': cita.partner_id.id,
                    'doctor_id': cita.doctor_id.id if cita.doctor_id else False,
                    'servicio_id': cita.servicio_id.id if cita.servicio_id else False,
                    'motivo': cita.servicio_id.name if cita.servicio_id else '',
                })
        return res

    def action_done(self):
        res = super(SkeenCita, self).action_done()
        for cita in self:
            visita = cita._get_visita_en_curso()
            if visita:
                visita.action_complete()
        return res

    def action_cancel(self):
        res = super(SkeenCita, self).action_cancel()
        for cita in self:
            visita = cita._get_visita_en_curso()
            if visita:
                visita.action_cancel()
        return res

    def action_no_show(self):
        res = super(SkeenCita, self).action_no_show()
        for cita in self:
            visita = cita._get_visita_en_curso()
            if visita:
                visita.action_cancel()
        return res
