diff --git a/app/Http/Controllers/Api/EmployerAuthController.php b/app/Http/Controllers/Api/EmployerAuthController.php index b2716d0..8955fff 100644 --- a/app/Http/Controllers/Api/EmployerAuthController.php +++ b/app/Http/Controllers/Api/EmployerAuthController.php @@ -244,6 +244,7 @@ public function register(Request $request) } $emiratesIdDob = $emiratesIdInput['date_of_birth'] ?? $emiratesIdInput['date of birth'] ?? $emiratesIdInput['dob'] ?? null; $emiratesIdNationality = $emiratesIdInput['nationality'] ?? null; + $emiratesIdGender = $emiratesIdInput['gender'] ?? $emiratesIdInput['sex'] ?? null; $emiratesIdIssueDate = $emiratesIdInput['issue_date'] ?? $emiratesIdInput['issue date'] ?? null; $emiratesIdEmployer = $emiratesIdInput['employer'] ?? null; $emiratesIdIssuePlace = $emiratesIdInput['issue_place'] ?? $emiratesIdInput['issue place'] ?? null; @@ -279,6 +280,8 @@ public function register(Request $request) 'emirates_id_employer' => $emiratesIdEmployer, 'emirates_id_issue_place' => $emiratesIdIssuePlace, 'emirates_id_occupation' => $emiratesIdOccupation, + 'emirates_id_nationality' => $emiratesIdNationality, + 'emirates_id_gender' => $emiratesIdGender, 'address' => $request->address, ]); diff --git a/app/Http/Controllers/Api/EmployerProfileController.php b/app/Http/Controllers/Api/EmployerProfileController.php index 49eb002..1aa0978 100644 --- a/app/Http/Controllers/Api/EmployerProfileController.php +++ b/app/Http/Controllers/Api/EmployerProfileController.php @@ -38,34 +38,21 @@ public function getProfile(Request $request) 'name' => $employer->name, 'email' => $employer->email, 'phone' => $profile->phone, - 'address' => $profile->address, + 'country' => $profile->country, + 'language' => $profile->language ?? 'English', 'notifications' => (bool)($profile->notifications ?? true), 'verification_status' => $profile->verification_status ?? 'approved', - 'emirates_id_number' => $profile->emirates_id_number, - 'emirates_id_expiry' => $profile->emirates_id_expiry, - 'id_number' => $profile->emirates_id_number, - 'card_number' => $profile->emirates_id_card_number, - 'full_name' => $profile->emirates_id_name, - 'date_of_birth' => $profile->emirates_id_dob, - 'nationality' => $profile->nationality, - 'gender' => $profile->emirates_id_gender, - 'issue_date' => $profile->emirates_id_issue_date, - 'expiry_date' => $profile->emirates_id_expiry, - 'occupation' => $profile->emirates_id_occupation, - 'employer' => $profile->emirates_id_employer, - 'issuing_place' => $profile->emirates_id_issue_place, 'emirates_id' => [ 'emirates_id_number' => $profile->emirates_id_number, - 'name' => $profile->emirates_id_name, - 'date_of_birth' => $profile->emirates_id_dob, - 'nationality' => $profile->nationality, - 'issue_date' => $profile->emirates_id_issue_date, - 'expiry_date' => $profile->emirates_id_expiry, - 'employer' => $profile->emirates_id_employer, - 'issue_place' => $profile->emirates_id_issue_place, - 'occupation' => $profile->emirates_id_occupation, - 'card_number' => $profile->emirates_id_card_number, - 'gender' => $profile->emirates_id_gender, + 'name' => $profile->emirates_id_name, + 'date_of_birth' => $profile->emirates_id_dob, + 'issue_date' => $profile->emirates_id_issue_date, + 'expiry_date' => $profile->emirates_id_expiry, + 'employer' => $profile->emirates_id_employer, + 'issue_place' => $profile->emirates_id_issue_place, + 'occupation' => $profile->emirates_id_occupation, + 'nationality' => $profile->emirates_id_nationality, + 'gender' => $profile->emirates_id_gender, ], ]; @@ -277,34 +264,21 @@ public function updateProfile(Request $request) 'name' => $employer->name, 'email' => $employer->email, 'phone' => $profile->phone, - 'address' => $profile->address, + 'country' => $profile->country, + 'language' => $profile->language, 'notifications' => (bool)$profile->notifications, 'verification_status' => $profile->verification_status ?? 'approved', - 'emirates_id_number' => $profile->emirates_id_number, - 'emirates_id_expiry' => $profile->emirates_id_expiry, - 'id_number' => $profile->emirates_id_number, - 'card_number' => $profile->emirates_id_card_number, - 'full_name' => $profile->emirates_id_name, - 'date_of_birth' => $profile->emirates_id_dob, - 'nationality' => $profile->nationality, - 'gender' => $profile->emirates_id_gender, - 'issue_date' => $profile->emirates_id_issue_date, - 'expiry_date' => $profile->emirates_id_expiry, - 'occupation' => $profile->emirates_id_occupation, - 'employer' => $profile->emirates_id_employer, - 'issuing_place' => $profile->emirates_id_issue_place, 'emirates_id' => [ 'emirates_id_number' => $profile->emirates_id_number, - 'name' => $profile->emirates_id_name, - 'date_of_birth' => $profile->emirates_id_dob, - 'nationality' => $profile->nationality, - 'issue_date' => $profile->emirates_id_issue_date, - 'expiry_date' => $profile->emirates_id_expiry, - 'employer' => $profile->emirates_id_employer, - 'issue_place' => $profile->emirates_id_issue_place, - 'occupation' => $profile->emirates_id_occupation, - 'card_number' => $profile->emirates_id_card_number, - 'gender' => $profile->emirates_id_gender, + 'name' => $profile->emirates_id_name, + 'date_of_birth' => $profile->emirates_id_dob, + 'issue_date' => $profile->emirates_id_issue_date, + 'expiry_date' => $profile->emirates_id_expiry, + 'employer' => $profile->emirates_id_employer, + 'issue_place' => $profile->emirates_id_issue_place, + 'occupation' => $profile->emirates_id_occupation, + 'nationality' => $profile->emirates_id_nationality, + 'gender' => $profile->emirates_id_gender, ], ]; diff --git a/app/Http/Controllers/Api/SponsorAuthController.php b/app/Http/Controllers/Api/SponsorAuthController.php index ab7ec5f..fb9c641 100644 --- a/app/Http/Controllers/Api/SponsorAuthController.php +++ b/app/Http/Controllers/Api/SponsorAuthController.php @@ -66,48 +66,13 @@ public function register(Request $request) $licenseExpiry = $request->license_expiry; $licenseInput = $request->input('license'); - $licenseData = null; + $licenseNumber = null; if (is_array($licenseInput)) { - $licenseExpiry = $licenseExpiry ?? ($licenseInput['expiry_date'] ?? $licenseInput['license_expiry'] ?? null); - $licenseData = [ - 'document_type' => $licenseInput['document_type'] ?? null, - 'country' => $licenseInput['country'] ?? null, - 'authority' => $licenseInput['authority'] ?? null, - 'license_no' => $licenseInput['license_no'] ?? $licenseInput['license_number'] ?? null, - 'company_name' => $licenseInput['company_name'] ?? $licenseInput['organization_name'] ?? null, - 'business_name' => $licenseInput['business_name'] ?? null, - 'license_category' => $licenseInput['license_category'] ?? null, - 'legal_type' => $licenseInput['legal_type'] ?? null, - 'issue_date' => $licenseInput['issue_date'] ?? null, - 'expiry_date' => $licenseInput['expiry_date'] ?? ($licenseInput['license_expiry'] ?? null), - 'main_license_no' => $licenseInput['main_license_no'] ?? null, - 'register_no' => $licenseInput['register_no'] ?? null, - 'dcci_no' => $licenseInput['dcci_no'] ?? null, - 'members' => $licenseInput['members'] ?? null, - ]; - } else { - $licenseData = [ - 'document_type' => $request->document_type, - 'country' => $request->country, - 'authority' => $request->authority, - 'license_no' => $request->license_no, - 'company_name' => $request->company_name, - 'business_name' => $request->business_name, - 'license_category' => $request->license_category, - 'legal_type' => $request->legal_type, - 'issue_date' => $request->issue_date, - 'expiry_date' => $request->expiry_date, - 'main_license_no' => $request->main_license_no, - 'register_no' => $request->register_no, - 'dcci_no' => $request->dcci_no, - 'members' => $request->members, - ]; - } - - if (is_array($licenseData)) { - $licenseData = array_filter($licenseData, function ($val) { - return !is_null($val); - }); + $rawExpiry = $licenseInput['expiry_date'] ?? $licenseInput['license_expiry'] ?? null; + if ($rawExpiry) { + $licenseExpiry = $licenseExpiry ?? \App\Services\OcrDocumentService::normaliseDate($rawExpiry); + } + $licenseNumber = $licenseInput['license_number'] ?? $licenseInput['license_no'] ?? $licenseInput['document_number'] ?? null; } $emiratesIdInput = $request->input('emirates_id'); @@ -130,6 +95,7 @@ public function register(Request $request) } $emiratesIdDob = $emiratesIdInput['date_of_birth'] ?? $emiratesIdInput['date of birth'] ?? $emiratesIdInput['dob'] ?? null; $emiratesIdNationality = $emiratesIdInput['nationality'] ?? null; + $emiratesIdGender = $emiratesIdInput['gender'] ?? $emiratesIdInput['sex'] ?? null; $emiratesIdIssueDate = $emiratesIdInput['issue_date'] ?? $emiratesIdInput['issue date'] ?? null; $emiratesIdEmployer = $emiratesIdInput['employer'] ?? null; $emiratesIdIssuePlace = $emiratesIdInput['issue_place'] ?? $emiratesIdInput['issue place'] ?? null; @@ -142,7 +108,7 @@ public function register(Request $request) $apiToken = Str::random(80); $sponsor = DB::transaction(function () use ( - $request, $email, $licensePath, $emiratesIdPath, $emiratesId, $apiToken, $licenseExpiry, + $request, $email, $licensePath, $emiratesIdPath, $emiratesId, $apiToken, $licenseExpiry, $licenseNumber, $licenseInput, $emiratesIdExpiry, $emiratesIdName, $emiratesIdDob, $emiratesIdIssueDate, $emiratesIdEmployer, $emiratesIdIssuePlace, $emiratesIdOccupation, $licenseData ) { @@ -160,6 +126,8 @@ public function register(Request $request) 'emirates_id_file' => $emiratesIdPath, 'emirates_id' => $emiratesId, 'license_expiry' => $licenseExpiry, + 'license_number' => $licenseNumber, + 'license_data' => $licenseInput, 'status' => 'active', 'is_verified' => false, 'subscription_status' => 'none', @@ -172,7 +140,8 @@ public function register(Request $request) 'emirates_id_employer' => $emiratesIdEmployer, 'emirates_id_issue_place' => $emiratesIdIssuePlace, 'emirates_id_occupation' => $emiratesIdOccupation, - 'license_data' => $licenseData, + 'emirates_id_nationality' => $emiratesIdNationality, + 'emirates_id_gender' => $emiratesIdGender, ]); }); @@ -188,7 +157,38 @@ public function register(Request $request) 'success' => true, 'message' => 'Sponsor account registered successfully. Your license is pending admin review.', 'data' => [ - 'sponsor' => $sponsor->makeHidden(['password', 'api_token']), + 'sponsor' => [ + 'id' => $sponsor->id, + 'full_name' => $sponsor->full_name, + 'organization_name' => $sponsor->organization_name, + 'mobile' => $sponsor->mobile, + 'email' => $sponsor->email, + 'nationality' => $sponsor->nationality, + 'city' => $sponsor->city, + 'address' => $sponsor->address, + 'country_code' => $sponsor->country_code, + 'is_verified' => $sponsor->is_verified, + 'status' => $sponsor->status, + 'license_file' => $sponsor->license_file ? asset($sponsor->license_file) : null, + 'emirates_id_file' => $sponsor->emirates_id_file ? asset($sponsor->emirates_id_file) : null, + 'license_expiry' => $sponsor->license_expiry ? $sponsor->license_expiry->toDateString() : null, + 'license_number' => $sponsor->license_number, + 'license' => $sponsor->license_data, + 'validity' => $sponsor->license_expiry ? ($sponsor->license_expiry->isFuture() ? 'Valid' : 'Expired') : 'Pending Review', + 'joined_at' => $sponsor->created_at->toIso8601String(), + 'emirates_id' => [ + 'emirates_id_number' => $sponsor->emirates_id, + 'name' => $sponsor->emirates_id_name, + 'date_of_birth' => $sponsor->emirates_id_dob, + 'issue_date' => $sponsor->emirates_id_issue_date, + 'expiry_date' => $sponsor->emirates_id_expiry, + 'employer' => $sponsor->emirates_id_employer, + 'issue_place' => $sponsor->emirates_id_issue_place, + 'occupation' => $sponsor->emirates_id_occupation, + 'nationality' => $sponsor->emirates_id_nationality, + 'gender' => $sponsor->emirates_id_gender, + ], + ], 'token' => $apiToken, ] ], 201); @@ -264,7 +264,36 @@ public function login(Request $request) 'success' => true, 'message' => 'Login successful.', 'data' => [ - 'sponsor' => $sponsor->makeHidden(['password', 'api_token']), + 'sponsor' => [ + 'id' => $sponsor->id, + 'full_name' => $sponsor->full_name, + 'organization_name' => $sponsor->organization_name, + 'mobile' => $sponsor->mobile, + 'email' => $sponsor->email, + 'nationality' => $sponsor->nationality, + 'city' => $sponsor->city, + 'address' => $sponsor->address, + 'country_code' => $sponsor->country_code, + 'is_verified' => $sponsor->is_verified, + 'status' => $sponsor->status, + 'license_file' => $sponsor->license_file ? asset($sponsor->license_file) : null, + 'emirates_id_file' => $sponsor->emirates_id_file ? asset($sponsor->emirates_id_file) : null, + 'license_expiry' => $sponsor->license_expiry ? $sponsor->license_expiry->toDateString() : null, + 'license_number' => $sponsor->license_number, + 'license' => $sponsor->license_data, + 'validity' => $sponsor->license_expiry ? ($sponsor->license_expiry->isFuture() ? 'Valid' : 'Expired') : 'Pending Review', + 'joined_at' => $sponsor->created_at->toIso8601String(), + 'emirates_id' => [ + 'emirates_id_number' => $sponsor->emirates_id, + 'name' => $sponsor->emirates_id_name, + 'date_of_birth' => $sponsor->emirates_id_dob, + 'issue_date' => $sponsor->emirates_id_issue_date, + 'expiry_date' => $sponsor->emirates_id_expiry, + 'employer' => $sponsor->emirates_id_employer, + 'issue_place' => $sponsor->emirates_id_issue_place, + 'occupation' => $sponsor->emirates_id_occupation, + ], + ], 'token' => $apiToken, ] ], 200); @@ -308,10 +337,13 @@ public function uploadLicense(Request $request) $licenseFile = $request->file('license_file'); $ocrLicense = \App\Services\OcrDocumentService::extractSponsorLicenseData($licenseFile); $extractedExpiry = $ocrLicense['expiry_date']; + $extractedNumber = $ocrLicense['license_number']; $sponsor->update([ 'license_file' => null, 'license_expiry' => $extractedExpiry, + 'license_number' => $extractedNumber, + 'license_data' => $ocrLicense, ]); return response()->json([ diff --git a/app/Http/Controllers/Api/SponsorController.php b/app/Http/Controllers/Api/SponsorController.php index e5548a7..43606a7 100644 --- a/app/Http/Controllers/Api/SponsorController.php +++ b/app/Http/Controllers/Api/SponsorController.php @@ -66,8 +66,22 @@ public function getDashboard(Request $request) 'license_file' => $sponsor->license_file ? asset($sponsor->license_file) : null, 'emirates_id_file' => $sponsor->emirates_id_file ? asset($sponsor->emirates_id_file) : null, 'license_expiry' => $sponsor->license_expiry ? $sponsor->license_expiry->toDateString() : null, + 'license_number' => $sponsor->license_number, + 'license' => $sponsor->license_data, 'validity' => $sponsor->license_expiry ? ($sponsor->license_expiry->isFuture() ? 'Valid' : 'Expired') : 'Pending Review', 'joined_at' => $sponsor->created_at->toIso8601String(), + 'emirates_id' => [ + 'emirates_id_number' => $sponsor->emirates_id, + 'name' => $sponsor->emirates_id_name, + 'date_of_birth' => $sponsor->emirates_id_dob, + 'issue_date' => $sponsor->emirates_id_issue_date, + 'expiry_date' => $sponsor->emirates_id_expiry, + 'employer' => $sponsor->emirates_id_employer, + 'issue_place' => $sponsor->emirates_id_issue_place, + 'occupation' => $sponsor->emirates_id_occupation, + 'nationality' => $sponsor->emirates_id_nationality, + 'gender' => $sponsor->emirates_id_gender, + ], ], 'recent_charity_events' => $recentEvents, 'total_events' => Announcement::where(function ($q) use ($sponsorId) { @@ -305,7 +319,38 @@ public function getProfile(Request $request) return response()->json([ 'success' => true, 'data' => [ - 'sponsor' => $this->buildSponsorResponse($sponsor) + 'sponsor' => [ + 'id' => $sponsor->id, + 'full_name' => $sponsor->full_name, + 'organization_name' => $sponsor->organization_name, + 'mobile' => $sponsor->mobile, + 'email' => $sponsor->email, + 'nationality' => $sponsor->nationality, + 'city' => $sponsor->city, + 'address' => $sponsor->address, + 'country_code' => $sponsor->country_code, + 'is_verified' => $sponsor->is_verified, + 'status' => $sponsor->status, + 'license_file' => $sponsor->license_file ? asset($sponsor->license_file) : null, + 'emirates_id_file' => $sponsor->emirates_id_file ? asset($sponsor->emirates_id_file) : null, + 'license_expiry' => $sponsor->license_expiry ? $sponsor->license_expiry->toDateString() : null, + 'license_number' => $sponsor->license_number, + 'license' => $sponsor->license_data, + 'validity' => $sponsor->license_expiry ? ($sponsor->license_expiry->isFuture() ? 'Valid' : 'Expired') : 'Pending Review', + 'joined_at' => $sponsor->created_at->toIso8601String(), + 'emirates_id' => [ + 'emirates_id_number' => $sponsor->emirates_id, + 'name' => $sponsor->emirates_id_name, + 'date_of_birth' => $sponsor->emirates_id_dob, + 'issue_date' => $sponsor->emirates_id_issue_date, + 'expiry_date' => $sponsor->emirates_id_expiry, + 'employer' => $sponsor->emirates_id_employer, + 'issue_place' => $sponsor->emirates_id_issue_place, + 'occupation' => $sponsor->emirates_id_occupation, + 'nationality' => $sponsor->emirates_id_nationality, + 'gender' => $sponsor->emirates_id_gender, + ], + ] ] ], 200); } diff --git a/app/Models/EmployerProfile.php b/app/Models/EmployerProfile.php index bf3df69..ee58164 100644 --- a/app/Models/EmployerProfile.php +++ b/app/Models/EmployerProfile.php @@ -29,6 +29,7 @@ class EmployerProfile extends Model 'emirates_id_employer', 'emirates_id_issue_place', 'emirates_id_occupation', + 'emirates_id_nationality', 'emirates_id_card_number', 'emirates_id_gender', 'address', diff --git a/app/Models/Sponsor.php b/app/Models/Sponsor.php index 408a8bb..f5c4913 100644 --- a/app/Models/Sponsor.php +++ b/app/Models/Sponsor.php @@ -43,9 +43,12 @@ class Sponsor extends Authenticatable 'emirates_id_employer', 'emirates_id_issue_place', 'emirates_id_occupation', + 'emirates_id_nationality', + 'emirates_id_gender', + 'license_number', + 'license_data', 'emirates_id_card_number', 'emirates_id_gender', - 'license_data', ]; protected $hidden = [ diff --git a/app/Services/OcrDocumentService.php b/app/Services/OcrDocumentService.php index 081f038..f22727b 100644 --- a/app/Services/OcrDocumentService.php +++ b/app/Services/OcrDocumentService.php @@ -162,7 +162,7 @@ public static function extractPassportData(UploadedFile $file): array * "2023-04-11" → "2023-04-11" (pass-through) * "11 APR 2023" → "2023-04-11" */ - private static function normaliseDate(string $raw): string + public static function normaliseDate(string $raw): string { $raw = trim($raw); if (empty($raw)) { diff --git a/database/migrations/2026_06_24_203706_add_license_number_to_sponsors_table.php b/database/migrations/2026_06_24_203706_add_license_number_to_sponsors_table.php new file mode 100644 index 0000000..8586508 --- /dev/null +++ b/database/migrations/2026_06_24_203706_add_license_number_to_sponsors_table.php @@ -0,0 +1,28 @@ +string('license_number')->nullable()->after('license_expiry'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('sponsors', function (Blueprint $table) { + $table->dropColumn('license_number'); + }); + } +}; diff --git a/database/migrations/2026_06_24_203838_add_license_data_to_sponsors_table.php b/database/migrations/2026_06_24_203838_add_license_data_to_sponsors_table.php new file mode 100644 index 0000000..e5d9325 --- /dev/null +++ b/database/migrations/2026_06_24_203838_add_license_data_to_sponsors_table.php @@ -0,0 +1,28 @@ +json('license_data')->nullable()->after('license_number'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('sponsors', function (Blueprint $table) { + $table->dropColumn('license_data'); + }); + } +}; diff --git a/database/migrations/2026_06_24_211116_add_emirates_id_nationality_to_tables.php b/database/migrations/2026_06_24_211116_add_emirates_id_nationality_to_tables.php new file mode 100644 index 0000000..d8828d3 --- /dev/null +++ b/database/migrations/2026_06_24_211116_add_emirates_id_nationality_to_tables.php @@ -0,0 +1,34 @@ +string('emirates_id_nationality')->nullable()->after('emirates_id_name'); + }); + Schema::table('employer_profiles', function (Blueprint $table) { + $table->string('emirates_id_nationality')->nullable()->after('emirates_id_name'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('sponsors', function (Blueprint $table) { + $table->dropColumn('emirates_id_nationality'); + }); + Schema::table('employer_profiles', function (Blueprint $table) { + $table->dropColumn('emirates_id_nationality'); + }); + } +}; diff --git a/database/migrations/2026_06_24_211842_add_emirates_id_gender_to_tables.php b/database/migrations/2026_06_24_211842_add_emirates_id_gender_to_tables.php new file mode 100644 index 0000000..f3c17f6 --- /dev/null +++ b/database/migrations/2026_06_24_211842_add_emirates_id_gender_to_tables.php @@ -0,0 +1,34 @@ +string('emirates_id_gender')->nullable()->after('emirates_id_nationality'); + }); + Schema::table('employer_profiles', function (Blueprint $table) { + $table->string('emirates_id_gender')->nullable()->after('emirates_id_nationality'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('sponsors', function (Blueprint $table) { + $table->dropColumn('emirates_id_gender'); + }); + Schema::table('employer_profiles', function (Blueprint $table) { + $table->dropColumn('emirates_id_gender'); + }); + } +}; diff --git a/public/swagger.json b/public/swagger.json index a198557..08dbc44 100644 --- a/public/swagger.json +++ b/public/swagger.json @@ -74,78 +74,6 @@ "expiry_date": { "type": "string", "example": "2028-06-12" - }, - "document_type": { - "type": "string", - "example": "dubai_commercial_license" - }, - "country": { - "type": "string", - "example": "United Arab Emirates" - }, - "authority": { - "type": "string", - "example": "Dubai Economy and Tourism" - }, - "license_no": { - "type": "string", - "example": "828302" - }, - "company_name": { - "type": "string", - "example": "MSJ INTERNATIONAL TECHNICAL SERVICES L.L.C" - }, - "business_name": { - "type": "string", - "example": "MSJ INTERNATIONAL TECHNICAL SERVICES L.L.C" - }, - "license_category": { - "type": "string", - "example": "Dep. of Economic Development" - }, - "legal_type": { - "type": "string", - "example": "Limited Liability Company Single Owner(LLC- - SO)" - }, - "issue_date": { - "type": "string", - "example": "06/03/2019" - }, - "main_license_no": { - "type": "string", - "example": "828302" - }, - "register_no": { - "type": "string", - "example": "1656486" - }, - "dcci_no": { - "type": "string", - "example": "317412" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "person_no": { - "type": "string", - "example": "752967" - }, - "name": { - "type": "string", - "example": "Lo lo wallus issued in" - }, - "nationality": { - "type": "string", - "example": "India" - }, - "role": { - "type": "string", - "example": "Shares Owner Who" - } - } - } } } }, @@ -165,6 +93,10 @@ "type": "string", "example": "NPL" }, + "gender": { + "type": "string", + "example": "Male" + }, "date_of_birth": { "type": "string", "example": "1988-03-22" @@ -6698,144 +6630,6 @@ "type": "string", "example": "fcm_token_example" }, - "license": { - "type": "object", - "properties": { - "license_number": { - "type": "string", - "example": "828302" - }, - "organization_name": { - "type": "string", - "example": "MSJ INTERNATIONAL TECHNICAL SERVICES L.L.C" - }, - "expiry_date": { - "type": "string", - "example": "2026-05-03" - }, - "document_type": { - "type": "string", - "example": "dubai_commercial_license" - }, - "country": { - "type": "string", - "example": "United Arab Emirates" - }, - "authority": { - "type": "string", - "example": "Dubai Economy and Tourism" - }, - "license_no": { - "type": "string", - "example": "828302" - }, - "company_name": { - "type": "string", - "example": "MSJ INTERNATIONAL TECHNICAL SERVICES L.L.C" - }, - "business_name": { - "type": "string", - "example": "MSJ INTERNATIONAL TECHNICAL SERVICES L.L.C" - }, - "license_category": { - "type": "string", - "example": "Dep. of Economic Development" - }, - "legal_type": { - "type": "string", - "example": "Limited Liability Company Single Owner(LLC- - SO)" - }, - "issue_date": { - "type": "string", - "example": "06/03/2019" - }, - "main_license_no": { - "type": "string", - "example": "828302" - }, - "register_no": { - "type": "string", - "example": "1656486" - }, - "dcci_no": { - "type": "string", - "example": "317412" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "person_no": { - "type": "string", - "example": "752967" - }, - "name": { - "type": "string", - "example": "Lo lo wallus issued in" - }, - "nationality": { - "type": "string", - "example": "India" - }, - "role": { - "type": "string", - "example": "Shares Owner Who" - } - } - } - } - } - }, - "emirates_id": { - "type": "object", - "properties": { - "emirates_id_number": { - "type": "string", - "example": "784-1988-5310327-2" - }, - "name": { - "type": "string", - "example": "KRISHNA PRASAD" - }, - "nationality": { - "type": "string", - "example": "NPL" - }, - "date_of_birth": { - "type": "string", - "example": "1988-03-22" - }, - "expiry_date": { - "type": "string", - "example": "2028-04-11" - }, - "issue_date": { - "type": "string", - "example": "2023-04-11" - }, - "employer": { - "type": "string", - "example": "Federal Authority" - }, - "issue_place": { - "type": "string", - "example": "Abu Dhabi" - }, - "occupation": { - "type": "string", - "example": "Manager" - }, - "card_number": { - "type": "string", - "example": "987654321" - }, - "gender": { - "type": "string", - "example": "Male" - } - } - }, "created_at": { "type": "string", "format": "date-time"