2015-12-13 04:42:28 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Requests\API;
|
|
|
|
|
2022-11-27 15:29:29 +00:00
|
|
|
use App\Models\PlaylistFolder;
|
2024-06-04 09:44:33 +00:00
|
|
|
use App\Rules\AllPlayablesAreAccessibleBy;
|
2021-10-10 18:05:51 +00:00
|
|
|
use App\Rules\ValidSmartPlaylistRulePayload;
|
|
|
|
use Illuminate\Validation\Rule;
|
|
|
|
|
2017-12-09 18:34:27 +00:00
|
|
|
/**
|
2020-12-22 20:11:22 +00:00
|
|
|
* @property array<string> $songs
|
2022-11-27 15:29:29 +00:00
|
|
|
* @property-read string $name
|
|
|
|
* @property-read int|null $folder_id
|
|
|
|
* @property-read array $rules
|
2024-01-12 14:41:02 +00:00
|
|
|
* @property-read ?bool $own_songs_only
|
2017-12-09 18:34:27 +00:00
|
|
|
*/
|
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',
|
2024-06-04 09:44:33 +00:00
|
|
|
'songs' => ['array', new AllPlayablesAreAccessibleBy($this->user())],
|
2021-10-10 18:05:51 +00:00
|
|
|
'rules' => ['array', 'nullable', new ValidSmartPlaylistRulePayload()],
|
2022-11-27 15:29:29 +00:00
|
|
|
'folder_id' => ['nullable', 'sometimes', Rule::exists(PlaylistFolder::class, 'id')],
|
2024-01-12 14:41:02 +00:00
|
|
|
'own_songs_only' => 'sometimes',
|
2015-12-13 04:42:28 +00:00
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|