65 lines
2.9 KiB
Ruby
65 lines
2.9 KiB
Ruby
# db/seeds.rb
|
|
# Dados iniciais do sistema Reem Transporte
|
|
# Execute com: bundle exec rails db:seed
|
|
|
|
puts "🌱 Criando dados iniciais..."
|
|
|
|
# ── Usuário Admin padrão ─────────────────────────────────────
|
|
admin = User.find_or_create_by!(email: 'admin@gade.com') do |u|
|
|
u.nome = 'Administrador Gade'
|
|
u.password = 'Gade@2026!'
|
|
u.role = :admin
|
|
u.ativo = true
|
|
end
|
|
puts " ✅ Admin criado: #{admin.email} / senha: Gade@2026!"
|
|
|
|
# ── Usuário Gerente de exemplo ───────────────────────────────
|
|
gerente = User.find_or_create_by!(email: 'gerente@gade.com') do |u|
|
|
u.nome = 'Gerente Gade'
|
|
u.password = 'Gade@2026!'
|
|
u.role = :gerente
|
|
u.ativo = true
|
|
end
|
|
puts " ✅ Gerente criado: #{gerente.email}"
|
|
|
|
# ── Configurações de preço padrão ────────────────────────────
|
|
configs = [
|
|
{ chave: 'preco_entrega', valor: '15.00', descricao: 'Valor pago por entrega bem-sucedida (R$)' },
|
|
{ chave: 'preco_retirada', valor: '20.00', descricao: 'Valor pago por retirada de equipamento (R$)' },
|
|
{ chave: 'preco_bonus', valor: '10.00', descricao: 'Valor de bônus por meta/critério (R$)' },
|
|
{ chave: 'preco_desconto', valor: '15.00', descricao: 'Valor descontado por problema (R$)' },
|
|
{ chave: 'preco_extraordinaria', valor: '25.00', descricao: 'Valor coringa para entregas fora do planejamento (R$)' },
|
|
{ chave: 'notificacao_whatsapp', valor: 'false', descricao: 'Notificações via WhatsApp (true/false)' },
|
|
{ chave: 'notificacao_email', valor: 'false', descricao: 'Notificações via e-mail (true/false)' },
|
|
{ chave: 'empresa_nome', valor: 'Reem Transporte', descricao: 'Nome da empresa exibido no sistema' },
|
|
]
|
|
|
|
configs.each do |cfg|
|
|
Configuracao.find_or_create_by!(chave: cfg[:chave]) do |c|
|
|
c.valor = cfg[:valor]
|
|
c.descricao = cfg[:descricao]
|
|
end
|
|
puts " ✅ Config: #{cfg[:chave]} = #{cfg[:valor]}"
|
|
end
|
|
|
|
puts ""
|
|
puts "✅ Seeds concluídos!"
|
|
puts " Admin: admin@gade.com / Gade@2026!"
|
|
puts " ⚠️ ALTERE A SENHA DO ADMIN NO PRIMEIRO ACESSO!"
|
|
|
|
# ── Motoristas de teste (Fase 2 — Victor) ────────────────────
|
|
[
|
|
{ nome: 'João Silva', pin: '1234' },
|
|
{ nome: 'Maria Santos', pin: '5678' },
|
|
{ nome: 'Carlos Souza', pin: '9012' },
|
|
].each do |m|
|
|
u = User.find_or_initialize_by(nome: m[:nome], role: :motorista)
|
|
u.pin_code = m[:pin]
|
|
u.ativo = true
|
|
# A coluna email tem índice único e NOT NULL (default ""). Motoristas não
|
|
# têm e-mail real, então geramos um placeholder único para não violar o índice.
|
|
u.email = "#{m[:nome].parameterize}@motorista.local" if u.email.blank?
|
|
u.save!(validate: false)
|
|
puts " ✅ Motorista: #{m[:nome]} / PIN: #{m[:pin]}"
|
|
end
|