<?php

namespace App\Http\Requests\Backoffice;

use App\Support\Backoffice\Sanitizer\Traits\SanitizesInput;
use Illuminate\Foundation\Http\FormRequest;

class SubscriptionPlanRequest extends FormRequest
{
    use SanitizesInput;

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules(): array
    {
        return [
            'name' => 'required|max:45',
            'features' => 'required|array',
            'features.*' => 'required|exists:features,id',
            'options' => 'required|array',
            'options.*.id' => 'nullable|exists:subscription_plan_options,id',
            'options.*.name' => 'required|max:45',
            'options.*.price' => 'required|numeric|min:0',
            'options.*.periodicity' => 'required|in:yearly,monthly',
            'options.*.seats' => 'required|integer|min:1',
        ];
    }

    /**
     * Filters to be applied to the input.
     *
     * @return array
     */
    public function filters(): array
    {
        return [
            'name' => "trim|strip_tags|xss_clean",
        ];
    }
}
