<?php namespace App\Models;

use App\Entities\Galeria\Galeria;
use App\Utils\DateUtils;

class GaleriaModel extends ModelEntity
{
    protected $table = 'galeria';
    protected $primaryKey = 'id';
    protected $returnType = 'array';
    protected $allowedFields = [
        'id_paciente',
        'id_medico',
        'id_clinica',
        'imagem',
        'descricao',
        'criado_por',
        'alterado_por',
        'criado_em',
        'alterado_em',
    ];
    protected $useSoftDeletes = false;
    protected $skipValidation = true;
    protected $useTimestamps = true;
    protected $createdField  = 'criado_em';
    protected $updatedField  = 'alterado_em';

    public function registerGaleria (Galeria $galeria) : void {

        $data = $galeria->toArray(true);
        $id_procedimento = $this->insert($data);
        $galeria->setId($id_procedimento);
    }

    public function updateGaleriaByID (int $id_procedimento, Galeria $galeria) : bool {
        $data = $galeria->toArray(true);
        $data['alterado_em'] = DateUtils::now();
        $binds = ['id_procedimento' => $id_procedimento];
        $sets = $this->generateUpdateSets($data, $binds);
        $sql = "update procedimento $sets where procedimento.id = :id_procedimento:";
        log_message('error', $sql);
        log_message('error', json_encode($data));
        log_message('error', json_encode($binds));
        $query = $this->db->query($sql, $binds);
        return $query->connID->affected_rows === 1;
    }
}
