namespace App\Http\Requests;
use Uraankhayayaal\OpenapiGeneratorLumen\Http\Requests\BaseRequestQueryData;
final class ConfirmQuery extends BaseRequestQueryData
{
public string $hash;
public function rules(): array
{
return [
'hash' => '
use App\Http\Requests\ConfirmQuery;
...
public function confirm(ConfirmQuery $query): UserResource
{
...
$hash = $query->hash;
...
}
namespace App\Http\Requests;
use OpenApi\Attributes as OA;
use Uraankhayayaal\OpenapiGeneratorLumen\Http\Requests\BaseRequestFormData;
final class RegisterForm extends BaseRequestFormData
{
public string $username;
public string $email;
public string $phone;
public string $password;
public bool $isAgreeMarketing;
public bool $isAgreePolicy;
#[OA\Property(property: 'file', type: 'string', format: 'binary', nullable: false)] // Use attributes or annotations for override
public $file,
public function rules(): array
{
return [
'username' => '
use App\Http\Requests\RegisterForm;
...
public function register(RegisterForm $registerForm): JsonResource
{
...
$username = $registerForm->username;
...
}
namespace App\Http\Responses;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
/** @param string[] $roles */
public function __construct(
public int $id,
public int $status,
public string $email,
public string $phone,
public array $roles,
public int $createdAt,
public int $updatedAt,
) {}
/**
* Transform the resource into an array.
*
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'status' => $this->status,
'email' => $this->email,
'phone' => $this->phone,
'roles' => $this->roles,
'createdAt' => $this->createdAt,
'updatedAt' => $this->updatedAt,
];
}
}
use App\Http\Responses\UserResource;
...
public function register(): UserResource
{
...
}