<?php

class Produto_Model_ValidacoesInicioCoberturaMunicipios extends Agro_Db_Table_Abstract
{
    protected $_schema = 'produto';
    protected $_name = 'validacoes_inicio_cobertura_municipios';
    protected $_primary = 'id';

    public function getMunicipiosValidacao(int $idValidacao)
    {
        $campos = ['se.ds_sigla as sigla_estado', 'sm.id as id_municipio'];

        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['pvicm' => "{$this->_schema}.{$this->_name}"], $campos);
        $select->join(['sm' => 'sistema.municipios'], 'sm.id = pvicm.id_municipio', false);
        $select->join(['se' => 'sistema.estados'], 'se.id = sm.id_estado', false);
        $select->where('pvicm.id_validacao_inicio_cobertura = ?', $idValidacao);
        $select->order('se.id, sm.id');

        return $this->fetchAll($select);
    }

    public function salvarMunicipios(array $dados)
    {
        $this->delete($dados['id_validacao_inicio_cobertura'], 'id_validacao_inicio_cobertura');

        foreach ($dados['municipios'] as $idMunicipio) {
            $row = $this->createRow();
            $row->id_validacao_inicio_cobertura = $dados['id_validacao_inicio_cobertura'];
            $row->id_municipio = $idMunicipio;

            if (!$row->save()) {
                return false;
            }
        }

        return true;
    }
}
