<?php

class Log_Model_LogAlteracoesCadastroFuncionarios extends Agro_Db_Table_Abstract
{
    protected $_name = 'log_alteracoes_cadastro_funcionarios';
    protected $_schema = 'log';
    protected $_primary = 'id';

    public function getDados(int $idFuncionario)
    {
        $select = $this->select()->setIntegrityCheck(false);
        $select->from(['llacf' => "{$this->_schema}.{$this->_name}"], ['id_usuario_criacao', "to_char(llacf.dt_criacao, 'DD/MM/YYYY HH24:MI:SS') as data_criacao", 'ds_alteracoes']);
        $select->join(['su' => 'sistema.usuarios'], 'llacf.id_usuario_criacao = su.id', ['ds_nome_usuario']);
        $select->where("llacf.id_funcionario = {$idFuncionario}");
        $select->order('llacf.dt_criacao desc');

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

    public function save(array $dados)
    {
        $row = $this->createRow();

        $camposExcluirLog = ['action', 'module', 'salvar', 'ds_senha', 'ds_senha2', 'controller'];

        foreach ($camposExcluirLog as $campo) {
            unset($dados[$campo]);
        }

        $row->id_funcionario = $dados['id_funcionario'];
        $row->ds_alteracoes = !empty($dados['ds_alteracoes']) ? json_encode($dados['ds_alteracoes']) : null;

        return $row->save();
    }
}
