feat: add age and status
This commit is contained in:
@@ -209,6 +209,7 @@ public function register(Request $request)
|
||||
'package_name' => 'string|required',
|
||||
'method' => 'string|in:code,link|nullable',
|
||||
'birthday' => 'date|nullable',
|
||||
'age' => 'integer|nullable|min:0|max:120',
|
||||
'gender' => ['integer', 'nullable', Rule::in(User::GENDERS)],
|
||||
'referrer_code' => ['string', 'nullable', 'exists:users,referral_code'],
|
||||
]);
|
||||
@@ -534,12 +535,18 @@ public function updateProfile(Request $request)
|
||||
'first_name' => 'string|nullable',
|
||||
'last_name' => 'string|nullable',
|
||||
'birthday' => 'date|nullable',
|
||||
'age' => 'integer|nullable|min:0|max:120',
|
||||
'gender' => ['integer', 'nullable', Rule::in(User::GENDERS)],
|
||||
'email' => 'email|nullable',
|
||||
'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([
|
||||
'package_name' => 'string',
|
||||
'fcm_token' => 'string',
|
||||
@@ -574,6 +581,17 @@ public function updateProfile(Request $request)
|
||||
$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);
|
||||
|
||||
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