diff --git a/app/Http/Controllers/api/AuthController.php b/app/Http/Controllers/api/AuthController.php index a803815..e8b4d68 100644 --- a/app/Http/Controllers/api/AuthController.php +++ b/app/Http/Controllers/api/AuthController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use App\Http\Requests\AuthRequest; use App\Models\User; use App\Models\UserCode; +use App\Models\SubscribePlan; // <-- Make sure to add this import use App\Traits\BaseApiResponse; use Carbon\Carbon; use Illuminate\Http\Request; @@ -91,6 +92,29 @@ class AuthController extends Controller if ($latestCode->code === $request->code) { $token = $user->createToken('mobile')->plainTextToken; + // --- NEW: AUTOMATIC FREE SUBSCRIPTION LOGIC --- + + // 1. Check if they have ever used a free plan before + $hasUsedFreePlan = $user->userSubscribers() + ->whereHas('subscribe', function ($query) { + $query->where('is_free', true); + })->exists(); + + // 2. If not, find the active free plan and assign it + if (!$hasUsedFreePlan) { + $freePlan = SubscribePlan::where('is_free', true)->where('is_active', true)->first(); + + if ($freePlan) { + $user->userSubscribers()->create([ + 'subscribe_plan_id' => $freePlan->id, + 'expired_at' => now()->addDays($freePlan->expired_day + 1), // Using your existing +1 logic + 'is_free' => true, + ]); + } + } + + // ---------------------------------------------- + return $this->success(['token' => $token], 'ورود موفقیت امیز بود'); } else { return $this->failed([], 'کد ورود اشتباه است', 404);