Class BiConfiguracaoRepository

java.lang.Object
br.com.vantroba.bi.transporte.configuracao.BiConfiguracaoRepository

@Singleton public class BiConfiguracaoRepository extends Object
Persistência de configurações globais em bi_configuracao (V12).

Padrão raw JDBC + ConnectionOperations igual ao restante do projeto (ex.: ResetarPowersyncRepository). Não usa @JdbcRepository declarativo por consistência — APIs são estreitas e mapeadas pra casos de uso específicos.

Política sistema=TRUE: rows de sistema (ex.: ultimo_nuke) são geridas pelo backend e não podem ser alteradas via salvarEditavel(String, String); tentativas explícitas pela UI/HTTP recebem ForbiddenException (HTTP 403). O pipeline do reset usa marcarUltimoReset() (UPSERT específico) — bypass por design.

criar(BiConfiguracao) sempre força sistema=FALSE no payload: chaves de sistema nascem somente via migration ou via código backend que chama o repo direto.

  • Constructor Details

    • BiConfiguracaoRepository

      public BiConfiguracaoRepository(io.micronaut.data.connection.ConnectionOperations<Connection> connectionOperations)
      Cria o repositório injetando o provedor de conexão JDBC usado nas queries.
      Parameters:
      connectionOperations - operações de conexão para participar da transação ativa.
  • Method Details

    • marcarUltimoReset

      public void marcarUltimoReset()
      UPSERT específico do marcador de reset. Grava NOW()::TEXT no valor; clientes Dart comparam com o último valor visto para decidir disconnectAndClear.

      Chamado pelo ResetarPowersyncService no STEP_FINALIZAR — bypass da política sistema=TRUE por design (o backend gere a chave).

    • listarTodas

      public List<BiConfiguracao> listarTodas()
      Lista todas as configurações em ordem alfabética por id.
      Returns:
      as configurações cadastradas.
    • buscar

      public Optional<BiConfiguracao> buscar(String id)
      Busca uma configuração por chave.
      Parameters:
      id - a chave da configuração.
      Returns:
      a configuração, ou Optional.empty() se não existe.
    • salvarEditavel

      public void salvarEditavel(String id, String novoValor)
      Atualiza o valor de uma chave existente não-sistema.
      Parameters:
      id - a chave da configuração.
      novoValor - o novo valor (já validado pelo serviço chamador).
      Throws:
      br.com.xadm.comum.web.NotFoundException - se id não existe.
      br.com.xadm.comum.web.ForbiddenException - se a row tem sistema=TRUE.
    • criar

      public void criar(BiConfiguracao c)
      Cria uma chave nova. Força sistema=FALSE (chaves de sistema só nascem via migration ou código backend que chama o repo direto).
      Parameters:
      c - configuração a criar; sistema é ignorado.
      Throws:
      br.com.xadm.comum.web.ConflictException - se id já existe.