source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby "3.2.2"

# Core Rails
gem "rails", "~> 7.1.0"
gem "pg", "~> 1.1"
gem "puma", "~> 6.0"

# Frontend
gem "propshaft"          # asset pipeline leve
gem "importmap-rails"
gem "turbo-rails"
gem "stimulus-rails"
gem "tailwindcss-rails"
gem "jbuilder"

# Auth
gem "devise"
gem "pundit"

# Config / ENV
gem "dotenv-rails"

# PDF
gem "prawn"
gem "prawn-table"

# Planilhas (XLSX) — geração da carga de importação do SimpliRoute
gem "caxlsx"
# Leitura do .xlsx do PLANO do SimpliRoute (reserva do romaneio, quando a API não
# responde ou o plano do dia ainda não foi publicado). A roo pina rubyzip < 3.0;
# o único outro consumidor é o selenium-webdriver (grupo de teste, aceita >= 1.2.2,
# < 4.0), então o bundler rebaixa o rubyzip sem quebrar nada.
gem "roo", "~> 2.10"
gem "rqrcode"          # QR code no holerite (login rápido motorista)
gem "chunky_png"       # renderiza QR como PNG para embed no Prawn

# Jobs / Cron
gem "whenever", require: false

# Notificações (Fase 8)
gem "twilio-ruby"      # WhatsApp — só envia se TWILIO_ACCOUNT_SID estiver no .env

# Utilitários
gem "pagy", "~> 9.0"   # paginação (fixado: API :limit e sem extra overflow)
gem "image_processing", ">= 1.2"

group :development, :test do
  gem "debug", platforms: %i[mri mingw x64_mingw]
  gem "rspec-rails"
  gem "factory_bot_rails"
  gem "faker"
  # Lê o PDF gerado (páginas e texto) nos specs. Sem ele, o único jeito de testar
  # um PDF do Prawn seria olhar o arquivo: as fontes TTF são subsetadas, então o
  # texto não é "grepável" no binário.
  gem "pdf-inspector", require: false
end

group :development do
  gem "web-console"
  # require: false → não monta o middleware automaticamente (evita vazar o
  # cookie __profilin e a rota /mini-profiler-resources em produção). Para usar
  # numa investigação de performance, rode com RACK_MINI_PROFILER=1 ou
  # adicione `require "rack-mini-profiler"` temporariamente.
  gem "rack-mini-profiler", require: false
  gem "annotate"
end

group :test do
  gem "capybara"
  gem "selenium-webdriver"
end
