# 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