<?php

use App\Models\Country;
use Livewire\Component;
use Livewire\Attributes\Title;
use Mary\Traits\Toast;
use Illuminate\Support\Collection;
use App\Traits\ManageAddress;
use Illuminate\Support\Facades\Auth;

new #[Title('Créer une adresse')]
class extends Component {
    use Toast, ManageAddress;

    /**
     * Initialise le composant.
     */
    public function mount(): void
    {
        $this->countries = Country::all();
        if ($this->countries->isNotEmpty()) {
            $this->country_id = $this->countries->first()->id;
            $this->country = $this->countries->first(); // Charge le pays par défaut
        }
    }

    /**
     * Enregistre la nouvelle adresse.
     * @return void
     */
    public function save(): void
    {
        $data = $this->validate($this->rules());

        Auth::user()->addresses()->create($data);

        $this->success(__('Adresse créée avec succès.'), redirectTo: route('addresses'));
    }
}

?>

<div class="max-w-3xl mx-auto py-8 px-4 space-y-6">
    {{-- En-tête avec bouton de retour --}}
    <x-header title="{{ __('Créer une adresse') }}" subtitle="{{ __('Renseignez vos coordonnées de livraison ou de facturation') }}" separator>
        <x-slot:actions>
            <x-button
                label="{{ __('Retour aux adresses') }}"
                icon="o-arrow-left"
                link="{{ route('addresses') }}"
                class="btn-ghost btn-sm"
            />
        </x-slot:actions>
    </x-header>

    {{-- Carte du formulaire --}}
    <x-card class="shadow-xl bg-base-100" separator progress-indicator>
        <x-addresses.form
            :civilities="$civilities"
            :countries="$countries"
            :professionnal="$professionnal"
            :country="$country"
        />
    </x-card>
</div>
