39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php declare(strict_types=1);
 | 
						|
 | 
						|
namespace App\Http\Requests\Private\Profile;
 | 
						|
 | 
						|
use App\Contracts\FormRequestDto;
 | 
						|
use App\Dto\Request\Private\Profile\UpdateSettings;
 | 
						|
use App\Enums\Lang;
 | 
						|
use App\Helpers\Helpers;
 | 
						|
use Illuminate\Foundation\Http\FormRequest;
 | 
						|
use Illuminate\Validation\Rule;
 | 
						|
use Illuminate\Validation\Rules\Enum;
 | 
						|
 | 
						|
final class UpdateSettingsRequest extends FormRequest implements FormRequestDto
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Get the validation rules that apply to the request.
 | 
						|
     */
 | 
						|
    public function rules(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            'lang' => ['nullable', new Enum(Lang::class)],
 | 
						|
            'timezone' => ['nullable', Rule::in(Helpers::getTimeZoneList()->keys()->toArray())]
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    public function getDto(): UpdateSettings
 | 
						|
    {
 | 
						|
        $lang = $this->input('lang', null);
 | 
						|
        if (!is_null($lang)) {
 | 
						|
            $lang = Lang::from((int) $lang);
 | 
						|
        }
 | 
						|
 | 
						|
        return new UpdateSettings(
 | 
						|
            lang: $lang,
 | 
						|
            timezone: $this->input('timezone', null),
 | 
						|
        );
 | 
						|
    }
 | 
						|
}
 |