41 lines
1.5 KiB
PHP
41 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Resources;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
class UserDetailResource extends JsonResource
|
|
{
|
|
public function toArray(Request $request): array
|
|
{
|
|
$relation = $this->profileRelation();
|
|
$profile = $relation ? $this->{$relation} : null;
|
|
|
|
return [
|
|
'id' => $this->uuid,
|
|
'db_id' => $this->id,
|
|
'email' => $this->email,
|
|
'phone' => $this->phone,
|
|
'first_name' => $this->first_name,
|
|
'middle_name' => $this->middle_name,
|
|
'last_name' => $this->last_name,
|
|
'full_name' => $this->full_name,
|
|
'role' => $this->role,
|
|
'status' => $this->status,
|
|
'preferred_language' => $this->preferred_language,
|
|
'avatar_path' => $this->avatar_path,
|
|
'email_verified_at' => $this->email_verified_at?->toIso8601String(),
|
|
'phone_verified_at' => $this->phone_verified_at?->toIso8601String(),
|
|
'last_login_at' => $this->last_login_at?->toIso8601String(),
|
|
'created_at' => $this->created_at?->toIso8601String(),
|
|
'profile' => $profile?->toArray(),
|
|
'has_household' => $this->headedHousehold()->exists() || $this->householdMemberships()->exists(),
|
|
'tenant' => $this->whenLoaded('tenant', fn () => [
|
|
'id' => $this->tenant->id,
|
|
'name' => $this->tenant->name,
|
|
]),
|
|
];
|
|
}
|
|
}
|