<?php

declare(strict_types=1);

namespace App\Http\Requests\Pwa;

use Illuminate\Foundation\Http\FormRequest;

class SyncPaymentsRequest extends FormRequest
{
    public function authorize(): bool
    {
        return true;
    }

    /**
     * Solo la FORMA del lote. Cada ítem se valida en PaymentSyncService, que
     * responde por ítem: antes un solo ítem malo devolvía 422 al lote completo,
     * sin decir cuál era, y el teléfono lo reenviaba igual para siempre. Ni
     * siquiera se exige que cada ítem sea un objeto: uno que no lo es vuelve
     * como `error` con su posición (`index`).
     */
    public function rules(): array
    {
        return [
            'payments' => ['required', 'array', 'min:1', 'max:50'],
        ];
    }

    public function messages(): array
    {
        return [
            'payments.required' => 'Se requiere al menos un pago para sincronizar.',
            'payments.max' => 'Máximo 50 pagos por sincronización.',
        ];
    }
}
