<?php

namespace App\Http\Requests\Backoffice;

use App\Support\Backoffice\Sanitizer\Traits\SanitizesInput;

class AccountListRequest extends ContentTypeListRequest
{
    use SanitizesInput;

    public function authorize()
    {
        return true;
    }

    public function validationData(): array
    {
        $values = parent::validationData();
        return array_merge($values, [
            'filter' => $this->input('filter')
        ]);
    }

    public function rules(): array
    {
        $rules = parent::rules();
        $rules = array_merge($rules, [
            'filter' => 'nullable|array',
            'filter.status' => 'nullable|array',
            'filter.status.*' => 'required|alpha_dash',
            'filter.plans' => 'nullable|array',
            'filter.plans.*' => 'required|integer',
            'filter.endDateFrom' => 'nullable|date',
            'filter.endDateUntil' => 'nullable|date',
        ]);

        return $rules;
    }

    public function filters(): array
    {
        return parent::filters();
    }
}
