mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
41 lines
1.2 KiB
PHP
41 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Dto;
|
|
|
|
use App\Casts\EnumCast;
|
|
use App\Contracts\DataRequest;
|
|
use App\Enums\MangaOrderByEnum;
|
|
use App\Enums\MangaStatusEnum;
|
|
use App\Enums\MangaTypeEnum;
|
|
use App\Http\Resources\V4\MangaCollection;
|
|
use App\Rules\Attributes\EnumValidation;
|
|
use Spatie\Enum\Laravel\Rules\EnumRule;
|
|
use Spatie\LaravelData\Attributes\MapInputName;
|
|
use Spatie\LaravelData\Attributes\MapOutputName;
|
|
use Spatie\LaravelData\Attributes\Validation\StringType;
|
|
use Spatie\LaravelData\Attributes\WithCast;
|
|
use Spatie\LaravelData\Optional;
|
|
|
|
/**
|
|
* @implements DataRequest<MangaCollection>
|
|
*/
|
|
final class MangaSearchCommand extends MediaSearchCommand implements DataRequest
|
|
{
|
|
#[WithCast(EnumCast::class, MangaStatusEnum::class), EnumValidation(MangaStatusEnum::class)]
|
|
public MangaStatusEnum|Optional $status;
|
|
|
|
#[WithCast(EnumCast::class, MangaTypeEnum::class), EnumValidation(MangaTypeEnum::class)]
|
|
public MangaTypeEnum|Optional $type;
|
|
|
|
#[StringType]
|
|
public string|Optional $magazines;
|
|
|
|
#[
|
|
MapInputName("order_by"),
|
|
MapOutputName("order_by"),
|
|
EnumValidation(MangaOrderByEnum::class),
|
|
WithCast(EnumCast::class, MangaOrderByEnum::class)
|
|
]
|
|
public MangaOrderByEnum|Optional $orderBy;
|
|
}
|