# 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: 'preco_termo',            valor: '15.00',        descricao: 'Valor pago por entrega de termo (R$)' },
  { chave: 'preco_termo_especial',   valor: '0.00',         descricao: 'Valor pago por entrega de termo especial (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
