<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

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

    public function rules(): array
    {
        return [
            'codigo_set'             => ['required', 'string', 'max:100'],
            'referencia'             => ['required', 'string', 'max:100'],
            'descripcion_referencia' => ['nullable', 'string', 'max:255'],
            'cantidad'               => ['nullable', 'numeric'],
            'material'               => ['required', 'string', 'max:150'],
            'sucursal'               => ['required', 'string', 'max:150'],
            'notas'                  => ['nullable', 'string', 'max:2000'],
            'evidencia'              => ['nullable', 'file', 'mimes:jpg,jpeg,png,webp', 'max:20480'],
        ];
    }

    public function messages(): array
    {
        return [
            'codigo_set.required' => 'El código del set es obligatorio.',
            'material.required'   => 'Debe seleccionar un material.',
            'sucursal.required'   => 'Debe seleccionar una sucursal.',
            'evidencia.mimes'     => 'La evidencia debe ser imagen (jpg, png, webp) o video (mp4, mov, avi).',
            'evidencia.max'       => 'La evidencia no debe superar los 20 MB.',
        ];
    }
}
