<?php

declare(strict_types=1);

class Sinistro2_Model_ParametroTipoDespesaEstado extends Agro_Db_Table_Abstract
{
    protected $_schema = 'sinistro';
	protected $_name = 'parametro_tipo_despesa_estado';
	protected $_primary = ['id_parametro_tipo_despesa', 'id_estado'];

    public function save(int $idParametroTipoDespesa, array $idsEstados): void
    {
        $this->deleteByIdParametroTipoDespesa($idParametroTipoDespesa);
        
        foreach ($idsEstados as $id) {
            $row = $this->createRow();
            
            $row->id_parametro_tipo_despesa = $idParametroTipoDespesa;
            $row->id_estado = $id;
            
            if (empty($row->save())) {
                throw new Exception('Erro ao vincular estado ao tipo de despesa.');
            }
        }
    }

    public function deleteByIdParametroTipoDespesa(int $idParametroTipoDespesa): void
    {
        $this->getAdapter()->query("DELETE FROM sinistro.parametro_tipo_despesa_estado WHERE id_parametro_tipo_despesa = {$idParametroTipoDespesa}");
    }
}