<?php

declare(strict_types=1);

namespace App\Http\Requests\Auth;

use App\Http\Requests\Auth\Concerns\HasPasswordRules;
use Illuminate\Foundation\Http\FormRequest;

/**
 * Валидация POST /api/auth/login.
 *
 * Rate-limit (5 попыток / 15 минут) + 2FA-флоу — отдельный коммит,
 * на текущем MVP только базовая валидация.
 */
class LoginRequest extends FormRequest
{
    use HasPasswordRules;

    /** @return array<string, mixed> */
    public function rules(): array
    {
        return [
            'email' => ['required', 'string', 'email', 'max:255'],
            'password' => $this->passwordRules(),
            'remember' => ['sometimes', 'boolean'],
        ];
    }

    /** @return array<string, string> */
    public function messages(): array
    {
        return array_merge($this->passwordMessages(), [
            'email.required' => 'Укажите email.',
            'email.email' => 'Email указан некорректно.',
        ]);
    }
}
