<?php

namespace Database\Seeders;

use App\Models\Location;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    use WithoutModelEvents;

    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        User::create([
            'role' => 'cliente',
            'nome' => 'Cliente Demo',
            'telefone' => '+258840000000',
            'email' => 'cliente@taguma.test',
            'endereco' => 'Av. Julius Nyerere, Maputo',
            'password' => 'password123',
            'email_verified_at' => now(),
        ]);

        User::create([
            'role' => 'entregador',
            'nome' => 'Entregador Demo',
            'telefone' => '+258850000000',
            'email' => 'entregador@taguma.test',
            'endereco' => 'Bairro Polana, Maputo',
            'bi' => '110100000000A',
            'carta_conducao' => 'CD-2024-00123',
            'tipo_veiculo' => 'Motociclo',
            'seguro' => 'Seguradora Moza — Apólice 998877',
            'password' => 'password123',
            'email_verified_at' => now(),
        ]);

        User::create([
            'role' => 'parceiro',
            'nome' => 'Ana Comerciante',
            'telefone' => '+258860000000',
            'email' => 'parceiro@taguma.test',
            'endereco' => 'Av. 24 de Julho, Maputo',
            'nome_loja' => 'Mercadinho Ana',
            'categoria' => 'Supermercado',
            'nuit' => '400123456',
            'password' => 'password123',
            'email_verified_at' => now(),
        ]);

        User::create([
            'role' => 'admin',
            'nome' => 'Admin TAGUMA',
            'telefone' => '+258870000000',
            'email' => 'admin@taguma.test',
            'endereco' => 'Sede TAGUMA, Maputo',
            'password' => 'password123',
            'email_verified_at' => now(),
        ]);

        $pontos = [
            ['nome' => 'Shoprite Polana', 'endereco' => 'Av. Julius Nyerere, Polana', 'lat' => -25.9579, 'lng' => 32.5984],
            ['nome' => 'Mercado Central', 'endereco' => 'Av. 25 de Setembro, Baixa', 'lat' => -25.9692, 'lng' => 32.5732],
            ['nome' => 'Hospital Central de Maputo', 'endereco' => 'Av. Eduardo Mondlane', 'lat' => -25.9540, 'lng' => 32.5870],
            ['nome' => 'Aeroporto Internacional de Maputo', 'endereco' => 'Av. Acordos de Lusaka', 'lat' => -25.9208, 'lng' => 32.5726],
            ['nome' => 'Baía Mall', 'endereco' => 'Av. Marginal, Costa do Sol', 'lat' => -25.9330, 'lng' => 32.6190],
            ['nome' => 'Universidade Eduardo Mondlane', 'endereco' => 'Av. Julius Nyerere, 3453', 'lat' => -25.9486, 'lng' => 32.6021],
            ['nome' => 'Shopping 24 de Julho', 'endereco' => 'Av. 24 de Julho', 'lat' => -25.9645, 'lng' => 32.5810],
            ['nome' => 'Matola Shopping', 'endereco' => 'Av. da Namaacha, Matola', 'lat' => -25.9622, 'lng' => 32.4589],
        ];

        foreach ($pontos as $p) {
            Location::create([
                'nome' => $p['nome'],
                'endereco' => $p['endereco'],
                'cidade' => 'Maputo',
                'latitude' => $p['lat'],
                'longitude' => $p['lng'],
                'ativo' => true,
            ]);
        }
    }
}
