<?php namespace App\Models;

use App\Entities\PreAgendamento\PreAgendamento;
use App\Utils\DateUtils;

class PreAgendamentoModel extends ModelEntity
{
    protected $table = 'preagendamento_especialidade';
    protected $primaryKey = 'id';
    protected $returnType = 'array';
    protected $allowedFields = [
        'id_agenda_especialidade',
        'id_especialidade',
        'cliente_nome',
        'cliente_telefone',
        'criado_por',
        'alterado_por',
        'status'
    ];
    protected $useSoftDeletes = false;
    protected $skipValidation = true;
    protected $useTimestamps = false;
//    protected $createdField  = 'criado_em';
//    protected $updatedField  = 'alterado_em';

    public function registerPreAgendamento (PreAgendamento $preagendamento) : void {
        $data = $preagendamento->toArray(true);
        $id_exame = $this->insert($data);
        $preagendamento->setId($id_exame);
    }

    public function updatePreAgendamentoByID (int $id_exame, PreAgendamento $preagendamento) : bool {
        $data = $preagendamento->toArray(true);
        $binds = ['id_exame' => $id_exame];
        $sets = $this->generateUpdateSets($data, $binds);
        $sql = "UPDATE EXAME $sets WHERE EXAME.id = :id_exame:";
        $query = $this->db->query($sql, $binds);
        return $query->connID->affected_rows === 1;
    }
}
