1
0

big update base struktur tahap 1

This commit is contained in:
Wian Drs
2026-07-27 16:24:09 +07:00
parent 2b3592c4c2
commit 1dd02baa72
169 changed files with 24405 additions and 977 deletions
+94
View File
@@ -0,0 +1,94 @@
<?php
namespace App\Http\Resources\User;
use App\Http\Resources\File\StoredFileResource;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'username' => $this->username,
'email' => $this->email,
'whatsapp_number' => $this->whatsapp_number,
'profile_photo' => $this->whenLoaded(
'profilePhoto',
fn () => $this->profilePhoto ? new StoredFileResource($this->profilePhoto) : null
),
'is_master' => (bool) $this->is_master,
'access_level' => $this->access_level->value,
'status' => $this->status,
'verification_channel' => $this->verification_channel,
'verification_target' => $this->verification_target,
'verified_at' => $this->verified_at,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
'user_profile' => $this->whenLoaded('userProfile', function () {
return $this->userProfile ? [
'id' => $this->userProfile->id,
'user_id' => $this->userProfile->user_id,
'nik' => $this->userProfile->nik,
'address' => $this->userProfile->address,
'provinsi_id' => $this->userProfile->provinsi_id,
'kabupaten_id' => $this->userProfile->kabupaten_id,
'kecamatan_id' => $this->userProfile->kecamatan_id,
'desa_id' => $this->userProfile->desa_id,
'created_at' => $this->userProfile->created_at,
'updated_at' => $this->userProfile->updated_at,
] : null;
}),
'user_tenants' => $this->whenLoaded('userTenants', function () {
return $this->userTenants->map(function ($item) {
return [
'id' => $item->id,
'user_id' => $item->user_id,
'tenant_id' => $item->tenant_id,
'is_default' => (bool) $item->is_default,
'created_at' => $item->created_at,
'updated_at' => $item->updated_at,
'tenant' => $item->relationLoaded('tenant') && $item->tenant ? [
'id' => $item->tenant->id,
'tenant_code' => $item->tenant->tenant_code ?? null,
'tenant_name' => $item->tenant->tenant_name ?? null,
] : null,
];
})->values();
}),
'user_menu_groups' => $this->whenLoaded('userMenuGroups', function () {
return $this->userMenuGroups->map(function ($item) {
return [
'id' => $item->id,
'user_id' => $item->user_id,
'menu_group_id' => $item->menu_group_id,
'tenant_id' => $item->tenant_id,
'created_at' => $item->created_at,
'updated_at' => $item->updated_at,
'menu_group' => $item->relationLoaded('menuGroup') && $item->menuGroup ? [
'id' => $item->menuGroup->id,
'name' => $item->menuGroup->name ?? null,
'menu_group_name' => $item->menuGroup->menu_group_name ?? null,
] : null,
'tenant' => $item->relationLoaded('tenant') && $item->tenant ? [
'id' => $item->tenant->id,
'tenant_code' => $item->tenant->tenant_code ?? null,
'tenant_name' => $item->tenant->tenant_name ?? null,
] : null,
];
})->values();
}),
];
}
}