<?php

class Sinistro2_Service_LaudosPreliminaresHistorico
{
    private Log_Model_LaudosPreliminaresHistorico $modelLaudosPreliminaresHistorico;

    public function __construct(Log_Model_LaudosPreliminaresHistorico $modelLaudosPreliminaresHistorico)
    {
        $this->modelLaudosPreliminaresHistorico = $modelLaudosPreliminaresHistorico;
    }

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

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

        return $this->dadosHistorico($campos, ["llph.id_laudo_preliminar = {$idLaudoPreliminar}"]);
    }

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

        return $this->modelLaudosPreliminaresHistorico->save([
            'id_laudo_preliminar' => $idLaudoPreliminar,
            'ds_acao' => $acao,
        ]);
    }
}
