<?php

class Sinistro2_Model_AvisoEmailSegurado extends Agro_Db_Table_Abstract
{
    protected $_schema = 'sinistro';
    protected $_name = 'aviso_email_segurado';
    protected $_primary = 'id';

    public function getInformacoesEmailSegurado(array $campos, array $where): ?Zend_Db_Table_Row_Abstract
    {
        $campos = !empty($campos) ? $campos : ['saes.*'];
        $select = $this->select()
            ->distinct(true)
            ->setIntegrityCheck(false)
            ->from(['saes' => "{$this->_schema}.{$this->_name}"], $campos)
            ->join(['sa' => 'sinistro.avisos'], 'sa.id = saes.id_aviso', false)
            ->join(['sp' => 'seguro.propostas'], 'sp.id = sa.id_proposta', false)
            ->join(['spp' => 'seguro.propostas_proponentes'], 'spp.id_proposta = sp.id', false)
            ->join(['su' => 'sistema.usuarios'], 'su.id = saes.id_usuario_criacao', false);

        foreach ($where as $condicao) {
            $select->where($condicao);
        }

        if (empty($where)) {
            $select->limit(1);
        }

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

    public function save(array $dados)
    {
        $row = $this->createRow();
        $row->id_aviso = $dados['id_aviso'];
        $row->ds_email_segurado = $dados['ds_email_segurado'];

        $save = $row->save();

        if (!$save) {
            throw new Zend_Exception('Erro ao salvar o e-mail do segurado vinculado ao aviso.');
        }

        return $save;
    }
}