# app/controllers/configuracoes_controller.rb class Admin::ConfiguracoesController < ApplicationController before_action :set_configuracao, only: [:edit, :update] def index authorize Configuracao @configuracoes = Configuracao.all.order(:chave) end def edit authorize @configuracao end def update authorize @configuracao valor_anterior = @configuracao.valor if @configuracao.update(configuracao_params) AuditoriaLog.registrar(user: current_user, acao: 'editar_preco', entidade: 'Configuracao', entidade_id: @configuracao.id, dados_novos: { detalhes: "#{@configuracao.chave}: R$ #{valor_anterior} → R$ #{@configuracao.valor}" }, request: request) redirect_to admin_configuracoes_path, notice: "Preço de #{@configuracao.tipo_label} atualizado." else render :edit, status: :unprocessable_entity end end # POST /configuracoes/toggle_tema def toggle_tema skip_authorization session[:tema] = session[:tema] == 'light' ? 'dark' : 'light' redirect_back(fallback_location: dashboard_path) end private def set_configuracao @configuracao = Configuracao.find(params[:id]) end def configuracao_params params.require(:configuracao).permit(:valor, :descricao) end end