<?php

class Log_Model_LaudosFinaisHistorico extends Agro_Db_Table_Abstract
{
    public const ACAO_DEVOLVER = 'Devolver';
    public const ACAO_ENVIAR = 'Enviar';
    public const ACAO_SALVAR = 'Salvar';

    protected $_name = 'laudos_finais_historico';
    protected $_schema = 'log';
    protected $_primary = 'id';

    public static function acoesPermitidas(): array
    {
        return [self::ACAO_DEVOLVER, self::ACAO_ENVIAR, self::ACAO_SALVAR];
    }

    public function getDados(array $where = [], array $campos = ['*']): Zend_Db_Table_Rowset_Abstract
    {
        $select = $this->select()->setIntegrityCheck(false)
            ->from(['llfh' => "{$this->_schema}.{$this->_name}"], $campos)
            ->join(['su' => 'sistema.usuarios'], 'su.id = llfh.id_usuario_criacao', false);

        if (!empty($where)) {
            foreach ($where as $value) {
                $select->where($value);
            }
        }

        $select->order('llfh.id DESC');

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

    public function save(array $values)
    {
        $row = $this->createRow();
        $row->id_laudo_final = $values['id_laudo_final'];
        $row->ds_acao = $values['ds_acao'];

        return $row->save();
    }
}
