<?php

namespace App\Http\Requests\Admin;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;

class CiudadAliasRequest extends FormRequest
{
    /**
     * La ruta ya exige sesión admin con privilegios de root user.
     */
    public function authorize(): bool
    {
        return true;
    }

    /**
     * Evita aliases vacíos, duplicados o apuntando a ciudades inexistentes.
     */
    public function rules(): array
    {
        $aliasId = $this->route('ciudad_alias') ?? $this->route('ciudades_alias');

        return [
            'nombre' => [
                'required',
                'string',
                'min:2',
                'max:150',
                Rule::unique('ciudades_aliases', 'nombre')->ignore($aliasId),
            ],
            'ciudad_id' => ['required', 'integer', 'exists:ciudades,id'],
        ];
    }
}
