<?php

namespace App\Models;

use App\Entities\ProcedimentoValor\ProcedimentoValor;
use App\Utils\DateUtils;

class ProcedimentoValorModel extends ModelEntity {
	protected $table = 'procedimento_valor';
	protected $primaryKey = 'id';
	protected $returnType = 'array';
	protected $allowedFields = [ 
		'id_convenio_procedimento',
		'valor',
		'valor_interno',
		'valor_repasse_medico',
		'data_inicio',
		'data_fim',
		'status'
	];
	protected $useSoftDeletes = false;
	protected $skipValidation = true;
	protected $useTimestamps = false;
	protected $createdField = 'criado_em';
	protected $updatedField = 'alterado_em';

	public function registerProcedimentoValor(ProcedimentoValor $procedimento): void {

		$data = $procedimento->toArray( true );
		$id_procedimento_valor = $this->insert( $data );
		$procedimento->setId( $id_procedimento_valor );

	}

	public function updateProcedimentoValorByID(int $id_procedimento_valor, ProcedimentoValor $procedimento): bool {

		$data = $procedimento->toArray( true );
		$binds = [ 
			'id_procedimento_valor' => $id_procedimento_valor
		];
		$sets = $this->generateUpdateSets( $data, $binds );
		$sql = "update procedimento_valor $sets where procedimento_valor.id = :id_procedimento_valor:";
		$query = $this->db->query( $sql, $binds );
		return $query->connID->affected_rows === 1;

	}

}
