QR_code_generator/app/Transformers/Users/UserTransformer.php

48 lines
1.5 KiB
PHP

<?php
namespace App\Transformers\Users;
use App\Models\User;
use App\Transformers\Assets\AssetTransformer;
use App\Transformers\Companies\CompanyMemberTransformer;
use League\Fractal\Resource\Collection;
use League\Fractal\Resource\Item;
use League\Fractal\Resource\Primitive;
use League\Fractal\TransformerAbstract;
class UserTransformer extends TransformerAbstract {
protected array $defaultIncludes = [];
protected array $availableIncludes = ['avatar', 'roles', 'membership', 'privileges'];
public function transform(User $model): array {
return [
'id' => $model->uuid,
'name' => $model->name,
'first_name' => $model->first_name,
'last_name' => $model->last_name,
'initials' => $model->initials,
'email' => $model->email,
'position' => $model->position,
'phone' => $model->phone,
'created_at' => $model->created_at->toIso8601String()
];
}
public function includeAvatar(User $model): ?Item {
return $model->avatar ? $this->item($model->avatar, new AssetTransformer()) : null;
}
public function includeRoles(User $model): Collection {
return $this->collection($model->roles, new RoleTransformer());
}
public function includeMembership(User $model): Collection {
return $this->collection($model->membership, new CompanyMemberTransformer());
}
public function includePrivileges(User $model): Primitive {
return $this->primitive($model->privileges);
}
}