多🌹444收拾收拾计算机视觉手机手机手机手机4大尺寸惆怅长岑长 ??????????????????????????С??????????????P??????????????????????????????????????????????????????^?????????? ????j?????????? ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!home/nectalco/public_html/create.nectal.co.uk/app/Models/User.php000064400000025032152666213130020755 0ustar00 'datetime', 'defi_setting' => 'json', 'type' => Roles::class, 'entity_credits' => 'array', ]; public function teamId() { return $this->team_id; } public function checkPermission(string $key): bool { if ($this->type === Roles::SUPER_ADMIN) { return true; } if (Helper::adminPermissions($key) && $this->type === Roles::ADMIN) { return true; } return false; } public function isConfirmed(): bool { return $this->email_confirmed; } public function isAdmin(): bool { return in_array($this->type, [Roles::SUPER_ADMIN, Roles::ADMIN], true); } public function isSuperAdmin(): bool { return $this->type === Roles::SUPER_ADMIN; } protected static function boot(): void { parent::boot(); static::deleting(static function ($user) { $user->orders()->delete(); }); static::deleted(static function ($user) { $user->orders()->delete(); }); } public function integrations(): HasMany { return $this->hasMany(UserIntegration::class)->with('integration'); } public function isUser(): bool { return $this->type === Roles::USER; } public function teamManager(): BelongsTo { return $this->belongsTo(__CLASS__, 'team_manager_id', 'id') ->withDefault([ 'name' => '', 'surname' => '', ]); } public function teamMember(): HasOne { return $this->hasOne(TeamMember::class, 'user_id', 'id'); } public function team(): BelongsTo { return $this->belongsTo(Team::class, 'id', 'user_id'); } public function myCreatedTeam() { return $this->hasOne(Team::class, 'user_id', 'id'); } public function activities(): HasMany { return $this->hasMany(Activity::class); } public function relationPlan() { return $this->hasOneThrough( Plan::class, Subscriptions::class, 'user_id', 'id', 'id', 'plan_id' )->whereIn('stripe_status', [ 'active', 'trialing', 'bank_approved', 'banktransfer_approved', 'bank_renewed', 'free_approved', 'stripe_approved', 'paypal_approved', 'iyzico_approved', 'paystack_approved', ]); } public function fullName(): string { return $this->name . ' ' . $this->surname; } public function email() { return $this->email; } public function openai() { return $this->hasMany(UserOpenai::class); } public function orders() { return $this->hasMany(UserOrder::class)->orderBy('created_at', 'desc'); } public function plan() { return $this->hasMany(UserOrder::class) ->where('type', 'subscription') ->orderBy('created_at', 'desc') ->first(); } public function activePlan() { // $activeSub = $this->subscriptions()->where('stripe_status', 'active')->orWhere('stripe_status', 'trialing')->first(); // $userId=Auth::user()->id; $userId = $this->id; // Get current active subscription $activeSub = getCurrentActiveSubscription($userId); if ($activeSub != null) { $plan = Plan::where('id', $activeSub->plan_id)->first(); if (is_null($plan)) { return null; } $difference = $activeSub->updated_at->diffInDays(Carbon::now()); if ($plan->frequency === FrequencyEnum::MONTHLY->value) { if ($difference < 31) { return $plan; } } elseif ($plan->frequency === FrequencyEnum::YEARLY->value) { if ($difference < 365) { return $plan; } } else { return $plan; } } else { $activeSub = getCurrentActiveSubscriptionYokkasa($userId); if ($activeSub != null) { $plan = Plan::where('id', $activeSub->plan_id)->first(); if (is_null($plan)) { return null; } $difference = $activeSub->updated_at->diffInDays(Carbon::now()); if ($plan->frequency == FrequencyEnum::MONTHLY->value || $plan->frequency == FrequencyEnum::LIFETIME_MONTHLY->value) { if ($difference < 31) { return $plan; } } elseif ($plan->frequency == FrequencyEnum::YEARLY->value || $plan->frequency == FrequencyEnum::LIFETIME_YEARLY->value) { if ($difference < 365) { return $plan; } } else { return $plan; } } else { return null; } } } // Support Requests public function supportRequests() { return $this->hasMany(UserSupport::class); } // Favorites public function favoriteOpenai() { return $this->belongsToMany(OpenAIGenerator::class, 'user_favorites', 'user_id', 'openai_id'); } // Affiliate public function affiliates() { return $this->hasMany(User::class, 'affiliate_id', 'id'); } public function affiliateOf() { return $this->belongsTo(User::class, 'affiliate_id', 'id'); } public function withdrawals() { return $this->hasMany(UserAffiliate::class); } // Chat public function openaiChat(): HasMany { return $this->hasMany(UserOpenaiChat::class); } // Avatar public function getAvatar() { if ($this->avatar == null) { return '' . Str::upper(substr($this->name, 0, 1)) . Str::upper(substr($this->surname, 0, 1)) . ''; } else { $avatar = $this->avatar; if (strpos($avatar, 'http') === false || strpos($avatar, 'https') === false) { $avatar = '/' . $avatar; } return ' '; } } public function couponsUsed() { return $this->belongsToMany(Coupon::class, 'coupon_users') ->withTimestamps(); } public function twitterSettings() { if (class_exists(\App\Extensions\AISocialMedia\System\Models\TwitterSettings::class)) { return $this->hasMany(\App\Extensions\AISocialMedia\System\Models\TwitterSettings::class); } return null; } public function linkedinSettings() { if (class_exists(\App\Extensions\AISocialMedia\System\Models\LinkedinTokens::class)) { return $this->hasMany(\App\Extensions\AISocialMedia\System\Models\LinkedinTokens::class); } return null; } public function scheduledPosts() { if (class_exists(\App\Extensions\AISocialMedia\System\Models\ScheduledPost::class)) { return $this->hasMany(\App\Extensions\AISocialMedia\System\Models\ScheduledPost::class); } return null; } public function folders(): HasMany { return $this->hasMany(Folders::class, 'created_by'); } // my companies public function companies() { return $this->hasMany(Company::class, 'user_id'); } public function getCompanies() { if (Helper::appIsDemo()) { return []; } return $this->companies()->orderBy('name', 'asc')->get(); } public function scopeAdmins(Builder $query): void { $query->where('type', 'admin'); } public function chatbots(): HasMany { return $this->hasMany(Chatbot::class, 'user_id'); } public function externalChatbots(): HasMany { return $this->hasMany(\App\Extensions\Chatbot\System\Models\Chatbot::class, 'user_id'); } public function myTeam() { if ($this->team && $this->team_manager_id === $this->team->user_id) { return $this->team(); } if ($this->teamManager) { return $this->teamManager->team(); } return $this->team(); } public function myTeamMembers(): HasMany { return $this->hasMany(TeamMember::class, 'id', 'user_id'); } // recent search keys public function recentSearchKeys(): HasMany { return $this->hasMany(RecentSearchKey::class); } // exported video public function exportedVideos(): HasMany { return $this->hasMany(ExportedVideo::class); } }