2024-05-10 06:43:18 +02:00
|
|
|
<?php
|
|
|
|
|
2024-05-13 05:10:16 +02:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
2024-05-10 06:43:18 +02:00
|
|
|
namespace FireflyIII\JsonApi\V3\Users;
|
|
|
|
|
|
|
|
use FireflyIII\User;
|
|
|
|
use LaravelJsonApi\Eloquent\Contracts\Paginator;
|
|
|
|
use LaravelJsonApi\Eloquent\Fields\DateTime;
|
|
|
|
use LaravelJsonApi\Eloquent\Fields\ID;
|
|
|
|
use LaravelJsonApi\Eloquent\Fields\Relations\HasMany;
|
2024-05-10 12:51:02 +02:00
|
|
|
use LaravelJsonApi\Eloquent\Fields\Str;
|
2024-05-10 06:43:18 +02:00
|
|
|
use LaravelJsonApi\Eloquent\Filters\WhereIdIn;
|
|
|
|
use LaravelJsonApi\Eloquent\Pagination\PagePagination;
|
|
|
|
use LaravelJsonApi\Eloquent\Schema;
|
|
|
|
|
|
|
|
class UserSchema extends Schema
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* The model the schema corresponds to.
|
|
|
|
*/
|
|
|
|
public static string $model = User::class;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the resource fields.
|
|
|
|
*/
|
|
|
|
public function fields(): array
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
ID::make(),
|
2024-05-10 09:17:09 +02:00
|
|
|
DateTime::make('created_at')->sortable()->readOnly(),
|
2024-05-10 12:51:02 +02:00
|
|
|
DateTime::make('updated_at')->sortable()->readOnly(),
|
|
|
|
Str::make('email'),
|
2024-05-10 06:43:18 +02:00
|
|
|
HasMany::make('accounts'),
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the resource filters.
|
|
|
|
*/
|
|
|
|
public function filters(): array
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
WhereIdIn::make($this),
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the resource paginator.
|
|
|
|
*/
|
|
|
|
public function pagination(): ?Paginator
|
|
|
|
{
|
|
|
|
return PagePagination::make();
|
|
|
|
}
|
|
|
|
}
|