koel/app/Http/Requests/API/PlaylistStoreRequest.php

31 lines
870 B
PHP
Raw Normal View History

2015-12-13 04:42:28 +00:00
<?php
namespace App\Http\Requests\API;
use App\Models\PlaylistFolder;
use App\Rules\AllPlayablesAreAccessibleBy;
use App\Rules\ValidSmartPlaylistRulePayload;
use Illuminate\Validation\Rule;
/**
2020-12-22 20:11:22 +00:00
* @property array<string> $songs
* @property-read string $name
* @property-read int|null $folder_id
* @property-read array $rules
* @property-read ?bool $own_songs_only
*/
2015-12-13 04:42:28 +00:00
class PlaylistStoreRequest extends Request
{
2020-12-22 20:11:22 +00:00
/** @return array<mixed> */
2018-08-30 03:11:47 +00:00
public function rules(): array
2015-12-13 04:42:28 +00:00
{
return [
'name' => 'required',
'songs' => ['array', new AllPlayablesAreAccessibleBy($this->user())],
'rules' => ['array', 'nullable', new ValidSmartPlaylistRulePayload()],
'folder_id' => ['nullable', 'sometimes', Rule::exists(PlaylistFolder::class, 'id')],
'own_songs_only' => 'sometimes',
2015-12-13 04:42:28 +00:00
];
}
}