<?php namespace App\Models;

use App\Entities\Consulta\Consulta;

class ConsultaModel extends ModelEntity
{
    protected $table = 'consulta';
    protected $primaryKey = 'id';
    protected $returnType = 'array';
    protected $allowedFields = [
        'adicionado_por',
        'alterado_por',
        'id_agendamento',
        'id_formulario',
        'titulo',
        'descricao'
    ];
    protected $useSoftDeletes = false;
    protected $skipValidation = true;
    protected $useTimestamps = true;
    protected $createdField  = 'criado_em';
    protected $updatedField  = 'alterado_em';

    public function registerConsulta (Consulta $consulta) : void {
        $consulta_data = $consulta->toArray(true);
        $id_new_consulta = $this->insert($consulta_data);
        $consulta->setId($id_new_consulta);
    }

    public function updateConsultaByID (int $id_consulta, Consulta $endereco) : bool {
        $data = $endereco->toArray(true);
        if (count($data) > 0) {
            $sql = "
                UPDATE consulta
                SET 
                    consulta.descricao=?
                WHERE 
                      consulta.id=?
            ";

            $query = $this->db->query($sql, [
                $data["descricao"],
                $id_consulta,
            ]);
            $errors = $this->errors();
            return !$errors;
        } else {
            return true;
        }
    }
}
