Files
Reem-Notas/db/seeds.rb
2026-06-10 20:12:20 -03:00

79 lines
2.8 KiB
Ruby

# db/seeds.rb
# Rodar com: docker-compose exec app bundle exec rails db:seed
puts "🌱 Iniciando seeds..."
# ─── Configurações de preço (Fase 1 + confirmação) ───────────────────────────
configs = [
{ tipo: :entrega, valor: 10.50, descricao: 'Entrega padrão para UBS, EMAD, STS, SAD' },
{ tipo: :retirada, valor: 8.00, descricao: 'Retirada de material nos pontos de origem' },
{ tipo: :bonus, valor: 5.00, descricao: 'Bônus por desempenho / entregas especiais' },
{ tipo: :desconto, valor: 2.00, descricao: 'Desconto aplicado por ocorrência' }
]
configs.each do |c|
Configuracao.find_or_create_by!(tipo: c[:tipo]) do |cfg|
cfg.valor = c[:valor]
cfg.descricao = c[:descricao]
end
end
puts "#{Configuracao.count} configurações de preço"
# ─── Usuários ────────────────────────────────────────────────────────────────
usuarios = [
{
name: 'Admin Gade',
email: 'admin@gade.com',
password: 'Gade@2026!',
role: :admin,
ativo: true
},
{
name: 'Gerente Operações',
email: 'gerente@gade.com',
password: 'Gade@2026!',
role: :gerente,
ativo: true
},
{
name: 'Operador Entregas',
email: 'operador@gade.com',
password: 'Gade@2026!',
role: :operador,
ativo: true
},
# Motoristas com PIN
{ name: 'João Silva', role: :motorista, pin_acesso: '1234', ativo: true },
{ name: 'Maria Oliveira', role: :motorista, pin_acesso: '5678', ativo: true },
{ name: 'Carlos Santos', role: :motorista, pin_acesso: '9012', ativo: true }
]
usuarios.each do |u|
user = User.find_or_initialize_by(
u[:role] == :motorista ? { name: u[:name], role: :motorista } : { email: u[:email] }
)
user.assign_attributes(u.except(:email))
user.email = u[:email] || "#{u[:name].downcase.gsub(' ', '.')}@gade.local"
user.password = u[:password] || SecureRandom.hex(12) if user.new_record?
if user.save
puts "#{user.role.upcase}: #{user.name}"
else
puts " ⚠️ #{user.name}: #{user.errors.full_messages.join(', ')}"
end
end
puts ""
puts "✅ Seeds concluídos!"
puts ""
puts "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
puts " Admin: admin@gade.com / Gade@2026!"
puts " Gerente: gerente@gade.com / Gade@2026!"
puts " Operador: operador@gade.com / Gade@2026!"
puts " Motorista João: PIN 1234"
puts " Motorista Maria: PIN 5678"
puts " Motorista Carlos: PIN 9012"
puts " ⚠️ ALTERE AS SENHAS NO PRIMEIRO ACESSO!"
puts "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"