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/UserResource.php
<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

/**
 * App\Http\Resources
 *
 * @property int $id
 * @property int $id
 * @property string $first_name
 * @property string $last_name
 * @property string $country_code
 * @property string $passport_number
 * @property mixed $biographies
 * @property string $mobile_number
 * @property mixed $is_mobile_number_verified
 * @property string $email
 * @property mixed $is_email_verified
 * @property mixed $gender
 * @property mixed $dob
 * @property mixed $post_code
 * @property mixed $address
 * @property mixed $profile_image
 * @property mixed $signature
 * @property mixed $signatureurl
 * @property mixed $avgratingdoctor
 * @property mixed $isfavourite
 * @property mixed $user_completion
 * @property mixed $status
 * @property mixed $subscriptionstatus
 * @property mixed $is_avail_health_profile
 * @property mixed $is_avail_dependant_details
 * @property mixed $is_avail_insurance_details
 * @property mixed $unique_id
 * @property mixed $two_step_verification_type
 * @method object roles()
 */
class UserResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    private $code;

    private $message;

    private $token;

    private $dashboard;

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

    public function toArray($request)
    {
        $eptyUserDetails = (object) ['no_of_patients' => '', 'home_visit' => '', 'on_demand' => '', 'schedule_appointment' => '', 'audio_call' => '', 'chat' => '', 'video_call' => '', 'hospital_visit' => '', 'language_id' => [], 'home_visit_currency_code' => '', 'home_visit_price' => '', 'on_demand_currency_code' => '', 'on_demand_price' => '', 'schedule_appointment_currency_code' => '', 'schedule_appointment_price' => '', 'on_demand_available_status' => '', 'on_demand_time_out' => '', 'home_visit_weekdays' => '', 'home_visit_from_time' => '', 'home_visit_to_time' => '', 'home_visit_latitude' => '', 'home_visit_longitude' => '', 'medical_council_regno' => '', 'area_specialization_id' => [], 'clinic_id' => [], 'home_visit_radius' => ''];
        $countryObj = (object) ['id' => '', 'name' => '', 'iso2' => '', 'currency' => ''];
        $arr = [
            'code' => $this->code,
            'message' => (isset($this->message)) ? [$this->message] : [__('digimed_validation.success_response.data_fetch_success')],
            'data' => [
                'user_id' => $this->id,
                'data' => [
                    'id' => $this->id,
                    'country_id' => (isset($this->country_id)) ? $this->country_id : $countryObj,
                    'first_name' => $this->first_name,
                    'last_name' => $this->last_name,
                    'country_code' => $this->country_code,
                    'passport_number' => $this->passport_number,
                    'biographies' => $this->biographies,
                    'mobile_number' => $this->mobile_number,
                    'is_mobile_number_verified' => $this->is_mobile_number_verified,
                    'email' => $this->email,
                    // 'email_verification_code' => $this->email_verification_code,
                    'is_email_verified' => $this->is_email_verified,
                    'gender' => $this->gender,
                    'dob' => $this->dob,
                    'post_code' => $this->post_code,
                    'address' => $this->address,
                    'profile_image' => $this->profile_image,
                    'signature' => $this->signature,
                    'signature_url' => $this->signatureurl,
                    'avgratingdoctor' => $this->avgratingdoctor,
                    'isfavourite' => $this->isfavourite,
                    'user_completion' => $this->user_completion,
                    'status' => $this->status,
                    'unique_id' => $this->unique_id,
                    'two_step_verification_type' => $this->two_step_verification_type,
                    'role_names' => $this->roles()->select('id', 'name')->get()->toArray(),
                    'permission' => !empty($this->permission) ? json_decode($this->permission) : [],
                    'doctor_document' => (isset($this->doctorDocument)) ? $this->doctorDocument->document_url : [],
                    'consultation_detail' => (isset($this->consultationPrice)) ? $this->consultationPrice : [],
                    'user_detail' => (isset($this->userDetail)) ? $this->userDetail : $eptyUserDetails,
                    'security_settings' => (isset($this->securitySettings)) ? $this->securitySettings : (object) [],
                    'notification_settings' => (isset($this->notificationSettings)) ? $this->notificationSettings : (object) [],
                    'sum_sub' => (isset($this->sumSub)) ? $this->sumSub : [],

                    'education_data' => (isset($this->UserAdditionalInfo->education_data)) ? json_decode(stripslashes($this->UserAdditionalInfo->education_data), true) : [],

                    'experience_data' => (isset($this->UserAdditionalInfo->experience_data)) ? json_decode(stripslashes($this->UserAdditionalInfo->experience_data), true) : [],

                    'awards_data' => (isset($this->UserAdditionalInfo->awards_data)) ? json_decode(stripslashes($this->UserAdditionalInfo->awards_data), true) : [],

                    'memberships_data' => (isset($this->UserAdditionalInfo->memberships_data)) ? json_decode(stripslashes($this->UserAdditionalInfo->memberships_data), true) : [],

                    'registrations_data' => (isset($this->UserAdditionalInfo->registrations_data)) ? json_decode(stripslashes($this->UserAdditionalInfo->registrations_data), true) : [],
                    'labs' => (isset($this->labs)) ? json_decode(stripslashes($this->labs), true) : [],
                ],
                'token' => (isset($this->token)) ? $this->token : '',
                'dashboard' => (isset($this->dashboard)) ? $this->dashboard : '',
            ],
        ];

        return $arr;
    }
}