<?php

class Seguro_Model_PropostasCancelamento extends Agro_Db_Table_Abstract {
    protected $_schema = 'seguro';
    protected $_name = 'propostas_cancelamento';
    protected $_primary = array('id_proposta','id_motivo_cancelamento');
    public $_order = 'ds_tipo_cancelamento';

    public function save($data) {
        $Row = $this->find($data['id_proposta'],$data['id_motivo_cancelamento'])->current();
        
        if (!$Row) $Row = $this->createRow();
        
        $Row->id_proposta = $data['id_proposta'];
        $Row->id_motivo_cancelamento = $data['id_motivo_cancelamento'];
        $Row->ds_descricao = !empty($data['ds_descricao']) ? $data['ds_descricao'] : null; 
        
        return $Row->save();
    }

    /**
     * Retorna os motivos de cancelamento de uma proposta
     *
     * @param int $idProposta
     * @return array
     */
    public function getByProposta(int $idProposta): array
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(array('pc' => "{$this->_schema}.{$this->_name}"), '*');
        $select->join(array('tc' => 'atendimento.tipo_cancelamento'), 'tc.id = pc.id_motivo_cancelamento', ['ds_chave', 'ds_tipo_cancelamento']);
        $select->where("pc.id_proposta = ?", $idProposta);

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