<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

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

    public function rules(): array
    {
        $enlace = [];
        if ($this->input('mostrar_boton', 0))
            $enlace = [
                'titulo_boton' => 'required|min:3|max:180',
                'enlace_boton' => 'required|min:3|max:180|url',
            ];

        return array_merge([
            'enlace' => [
                'required',
                'min:3',
                'max:120',
                'url',
                'regex:/^(https?:\/\/www\.youtube\.com\/watch\?v=([a-zA-Z0-9_-]+))|(https?:\/\/youtu\.be\/([a-zA-Z0-9_-]+))$/'
            ],
            'enlace_mobile' => [
                'required',
                'min:3',
                'max:120',
                'url',
                'regex:/^(https?:\/\/www\.youtube\.com\/watch\?v=([a-zA-Z0-9_-]+))|(https?:\/\/youtu\.be\/([a-zA-Z0-9_-]+))$/'
            ],
        ], $enlace);
    }

    public function messages(): array
    {
        return [
            '*.url' => 'Escriba una url válida',
            '*.regex' => 'Escriba una url de youtube válida'
        ];
    }

    protected function prepareForValidation()
    {
        $input = $this->input();
        unset($input['video_url_formateado']);
        unset($input['mobile_video_url_formateado']);

        $this->replace($input ?? []);
    }
}
