Edit File: Package.php
<?php namespace App\Models; use App\Enums\SubscriptionStatusEnum; use Spatie\Translatable\HasTranslations; class Package extends BaseModel { use HasTranslations; const IMAGEPATH = 'packages'; protected $fillable = [ 'name', 'period', 'image', 'price', 'is_active', 'period_type', ]; protected $casts = [ 'is_active' => 'boolean', 'price' => 'double', ]; public $translatable = ['name']; public function periodByDays() { switch ($this->period_type) { case 'days': return $this->period . ' ' . __('apis.day_days'); break; case 'weeks': return $this->period * 7 . ' ' . __('apis.week_weeks'); case 'months': return $this->period * 30 . ' ' . __('apis.month_months'); break; case 'years': return $this->period * 365 . ' ' . __('apis.year_years'); break; } } public function subscriptions() { return $this->hasMany(Subscription::class); } public function subscriptionStatus() { $latestSubscription = auth()->user() ->subscriptions() ->orderByDesc('end_date') ->first(); if (!$latestSubscription || $latestSubscription->package_id !== $this->id) { return SubscriptionStatusEnum::INACTIVE; } if (now()->lessThanOrEqualTo($latestSubscription->end_date)) { return SubscriptionStatusEnum::ACTIVE; } return SubscriptionStatusEnum::CAN_RENEWAL; } }
Back to File Manager