feat: add age and status
This commit is contained in:
@@ -209,6 +209,7 @@ public function register(Request $request)
|
|||||||
'package_name' => 'string|required',
|
'package_name' => 'string|required',
|
||||||
'method' => 'string|in:code,link|nullable',
|
'method' => 'string|in:code,link|nullable',
|
||||||
'birthday' => 'date|nullable',
|
'birthday' => 'date|nullable',
|
||||||
|
'age' => 'integer|nullable|min:0|max:120',
|
||||||
'gender' => ['integer', 'nullable', Rule::in(User::GENDERS)],
|
'gender' => ['integer', 'nullable', Rule::in(User::GENDERS)],
|
||||||
'referrer_code' => ['string', 'nullable', 'exists:users,referral_code'],
|
'referrer_code' => ['string', 'nullable', 'exists:users,referral_code'],
|
||||||
]);
|
]);
|
||||||
@@ -534,12 +535,18 @@ public function updateProfile(Request $request)
|
|||||||
'first_name' => 'string|nullable',
|
'first_name' => 'string|nullable',
|
||||||
'last_name' => 'string|nullable',
|
'last_name' => 'string|nullable',
|
||||||
'birthday' => 'date|nullable',
|
'birthday' => 'date|nullable',
|
||||||
|
'age' => 'integer|nullable|min:0|max:120',
|
||||||
'gender' => ['integer', 'nullable', Rule::in(User::GENDERS)],
|
'gender' => ['integer', 'nullable', Rule::in(User::GENDERS)],
|
||||||
'email' => 'email|nullable',
|
'email' => 'email|nullable',
|
||||||
'mobile' => [new MobileNumber, 'string'],
|
'mobile' => [new MobileNumber, 'string'],
|
||||||
'avatar' => 'image'
|
'avatar' => 'image',
|
||||||
|
'referrer_code' => ['string', 'nullable', 'exists:users,referral_code'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// referrer_code (کد معرف) is not a column — resolve it to referred_by below
|
||||||
|
$referrerCode = $data['referrer_code'] ?? null;
|
||||||
|
unset($data['referrer_code']);
|
||||||
|
|
||||||
$packageNameData = $request->validate([
|
$packageNameData = $request->validate([
|
||||||
'package_name' => 'string',
|
'package_name' => 'string',
|
||||||
'fcm_token' => 'string',
|
'fcm_token' => 'string',
|
||||||
@@ -574,6 +581,17 @@ public function updateProfile(Request $request)
|
|||||||
$data['avatar'] = "storage/avatars/$user->uuid.png";
|
$data['avatar'] = "storage/avatars/$user->uuid.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the referrer (کد معرف) once: only if not already referred, and never self-referral
|
||||||
|
if ($referrerCode && !$user->referred_by) {
|
||||||
|
$referrer = User::where('referral_code', $referrerCode)->first();
|
||||||
|
if ($referrer && $referrer->id === $user->id) {
|
||||||
|
return response()->json(['message' => 'you cannot use your own referral code'], 400);
|
||||||
|
}
|
||||||
|
if ($referrer) {
|
||||||
|
$data['referred_by'] = $referrer->id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$user->update($data);
|
$user->update($data);
|
||||||
|
|
||||||
if ($packageName ?? null) {
|
if ($packageName ?? null) {
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('users', 'age')) {
|
||||||
|
$table->unsignedTinyInteger('age')->nullable()->after('birthday');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('users', 'age')) {
|
||||||
|
$table->dropColumn('age');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user