<?php


namespace App\Models;

use App\Entities\Arquivo\Arquivo;
use App\Utils\DateUtils;

class ArquivoExameModel extends ModelEntity {
	protected $table = 'arquivo_exame';
	protected $primaryKey = 'id';
	protected $returnType = 'array';
	protected $allowedFields = [ 
			'id_paciente',
			'id_medico',
			'id_clinica',
			'id_pet',
			'arquivo',
			'descricao',
			'tutor_view',
			'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 registerArquivo(Arquivo $arquivo): void {
		$data = $arquivo->toArray ( true );
		$id_procedimento = $this->insert ( $data );
		$arquivo->setId ( $id_procedimento );
	}
	public function updateArquivoByID(int $id_procedimento, Arquivo $arquivo): bool {
		$data = $arquivo->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;
	}
}
