<?php

declare(strict_types=1);

class Sistema_Model_ParametrosAgronomosResponsaveisCulturas extends Agro_Db_Table_Abstract
{
    public $_order = 'id_parametro_agronomo_responsavel';
	protected $_schema = 'sinistro';
	protected $_name = 'parametros_agronomos_responsaveis_culturas';
	protected $_primary = array('id_parametro_agronomo_responsavel', 'id_estado');
	protected $_rowClass = 'Sistema_Model_Row_ParametrosAgronomosResponsaveisCulturas';

    public function save(array $dados): Sistema_Model_Row_ParametrosAgronomosResponsaveisCulturas
    {
        $row = $this->createRow();
        
        $row->id_parametro_agronomo_responsavel = $dados['id_parametro_agronomo_responsavel'] 
            ?? $row->id_parametro_agronomo_responsavel;
        $row->id_estado = $dados['id_cultura'] ?? $row->id_cultura;

        $row->save();

        return $row;
    }

    public function getByIdParametroAgronomoResponsavel(int $idParametroAgronomoResponsavel): Zend_Db_Table_Rowset
    {
        $query = $this->select()
            ->setIntegrityCheck(false)
            ->where('id_parametro_agronomo_responsavel = ?', $idParametroAgronomoResponsavel);
        
        return $this->fetchAll($query);
    }

    public function insertCulturas(int $idParametroAgronomoResponsavel, array $idsCultura): void
    {
        foreach ($idsCultura as $id) {
            $this->insert([
                'id_cultura' => $id,
                'id_parametro_agronomo_responsavel' => $idParametroAgronomoResponsavel
            ]);
        }
    }

    public function deleteCulturas(int $idParametroAgronomoResponsavel, array $idsCultura): void
    {
        $strIdsCulturas = implode(',', $idsCultura);
        $this->getDefaultAdapter()->query("
            DELETE FROM sinistro.parametros_agronomos_responsaveis_culturas 
            WHERE id_parametro_agronomo_responsavel = {$idParametroAgronomoResponsavel} AND id_cultura IN ($strIdsCulturas)
        ");
    }
}