File "ResponseDto.php"
Full Path: /var/www/html/back/app/Responses/ResponseDto.php
File size: 1.15 KB
MIME-type: text/x-php
Charset: utf-8
<?php
declare(strict_types=1);
namespace App\Responses;
use Spatie\LaravelData\Data;
class ResponseDto extends Data
{
public function __construct(
public string|null $message = null,
public array|null $errors = null,
public object|array|null $data = null,
public ?bool $status = null,
/** @var PaginationDto */
public ?array $pagination = null,
public ?bool $paginatable = false,
) {
if ($this->status === null) {
$this->status = true;
}
if ($this->paginatable && blank($this->pagination)) {
$this->pagination = Dto::dataExample(PaginationDto::class);
}
if (!$this->paginatable) {
unset($this->pagination);
}
unset($this->paginatable);
}
public static function example(): array
{
return [
'data' => [
'status' => true,
'message' => null,
'errors' => null,
'data' => [],
'pagination' => null,
],
'status' => true,
];
}
}