<?php

class Sinistro2_Service_LaudosFinaisHistorico
{
    private Log_Model_LaudosFinaisHistorico $modelLaudosFinaisHistorico;

    public function __construct(Log_Model_LaudosFinaisHistorico $modelLaudosFinaisHistorico)
    {
        $this->modelLaudosFinaisHistorico = $modelLaudosFinaisHistorico;
    }

    public function dadosHistorico(array $campos, array $where): Zend_Db_Table_Rowset_Abstract
    {
        return $this->modelLaudosFinaisHistorico->getDados($where, $campos);
    }

    public function getDadosHistoricoByIdLaudo(int $idLaudoFinal): Zend_Db_Table_Rowset_Abstract
    {
        $campos = [
            "to_char(llfh.dt_criacao, 'DD/MM/YYYY HH24:MI:SS'::text) as data",
            "su.ds_nome_usuario as usuario",
            "llfh.ds_acao as acao",
        ];

        return $this->dadosHistorico($campos, ["llfh.id_laudo_final = {$idLaudoFinal}"]);
    }

    public function salvarHistorico(int $idLaudoFinal, string $acao)
    {
        if (!in_array($acao, Log_Model_LaudosFinaisHistorico::acoesPermitidas())) {
            throw new ValueError('Ação não permitida.');
        }

        return $this->modelLaudosFinaisHistorico->save([
            'id_laudo_final' => $idLaudoFinal,
            'ds_acao' => $acao,
        ]);
    }
}
