HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: /mnt/data/ghayatcom/ghayatcom-api/app/Http/Resources/UserCollection.php
<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

class UserCollection extends ResourceCollection
{
    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    private $code;

    private $type;

    private $message;

    public function __construct($resource, $code = 200, $type = 'List', $message = null)
    {
        parent::__construct($resource);
        $this->code = $code;
        $this->type = $type;
        $this->message = $message;
    }

    public function toArray($request)
    {
        return [
            'code' => $this->code,
            'message' => (isset($this->message)) ? [$this->message] : [__('digimed_validation.success_response.data_fetch_success')],
            'data' => [
                $this->type => $this->collection->map(function ($item) {
                    /**
                     * @var object $item
                     */
                    $subscriptionLibrary = new \App\Library\SubscriptionLibrary;
                    // $result = $subscriptionLibrary->status($item->id);
                    $result = $subscriptionLibrary->newStatus($item->id);
                    return [
                        'id' => $item->id,
                        'country_id' => $item->country_id,
                        'first_name' => $item->first_name,
                        'last_name' => $item->last_name,
                        'country_code' => $item->country_code,
                        'passport_number' => $item->passport_number,
                        'biographies' => $item->biographies,
                        'mobile_number' => $item->mobile_number,
                        'is_mobile_number_verified' => $item->is_mobile_number_verified,
                        'email' => $item->email,
                        // 'email_verification_code' => $item->email_verification_code,
                        'is_email_verified' => $item->is_email_verified,
                        'gender' => $item->gender,
                        'dob' => $item->dob,
                        'post_code' => $item->post_code,
                        'address' => $item->address,
                        'profile_image' => $item->profile_image,
                        'signature' => $item->signature,
                        'signature_url' => $item->signatureurl,
                        'avgratingdoctor' => $item->avgratingdoctor,
                        'isfavourite' => $item->isfavourite,
                        'user_completion' => $item->user_completion,
                        'landing_feature' => $item->landing_feature,
                        'two_step_verification_type' => $item->two_step_verification_type,
                        'status' => $item->status,
                        'unique_id' => $item->unique_id,
                        'created_at' => $item->created_at,
                        'appointment_count' => (isset($item->my_doctor_appointment_list_count)) ? $item->my_doctor_appointment_list_count : 0,
                        'total_income' => (isset($item->my_doctor_appointment_payment_list_sum_consultation_fee)) ? $item->my_doctor_appointment_payment_list_sum_consultation_fee : '0.00',
                        'patient_total_income' => (isset($item->my_patient_appointment_payment_list_sum_total_amount)) ? $item->my_patient_appointment_payment_list_sum_total_amount : '0.00',
                        'patient_appointment_count' => (isset($item->my_patient_appointment_list_count)) ? $item->my_patient_appointment_list_count : 0,
                        'patient_order_count' => (isset($item->my_patient_order_list_count)) ? $item->my_patient_order_list_count : 0,
                        'dependant_appointment_count' => (isset($item->my_dependant_appointment_list_count)) ? $item->my_dependant_appointment_list_count : 0,
                        'linked_accounts_count' => (isset($item->dependant_account_holder_count)) ? $item->dependant_account_holder_count : 0,
                        'dependant_booked_appointment_count' => (isset($item->dependants_booked_appointment_list_count)) ? $item->dependants_booked_appointment_list_count : 0,
                        'dependant_canceled_appointment_count' => (isset($item->dependants_canceled_appointment_list_count)) ? $item->dependants_canceled_appointment_list_count : 0,
                        'doctor_document' => $item->doctorDocument,
                        'user_detail' => $item->userDetail,
                        // 'sum_sub' => (isset($item->sumSub)) ? $item->sumSub : [],
                        'rating' => (isset($item->doctorRatings)) ? $item->doctorRatings : [],
                        'pharmacy' => (isset($item->pharmacy)) ? $item->pharmacy : [],
                        'dependant_detail' => (isset($item->dependantAccountHolder)) ? $item->dependantAccountHolder : [],
                        'general_condition_detail' => (isset($item->generalConditionPatientDetail)) ? $item->generalConditionPatientDetail : [],
                        'subscription' => (isset($result)) ? $result : [],
                    ];
                }), ],
        ];
    }

    public function withResponse($request, $response)
    {
        /** @var array $jsonResponse */
        $jsonResponse = json_decode($response->getContent(), true);
        unset($jsonResponse['links']);
        $response->setContent(json_encode($jsonResponse));
    }
}