|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/lecturebazaar.com/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use App\User;
use Astrotomic\Translatable\Contracts\Translatable as TranslatableContract;
use Astrotomic\Translatable\Translatable;
use Illuminate\Database\Eloquent\Model;
class AbandonedCartRule extends Model implements TranslatableContract
{
use Translatable;
protected $table = "abandoned_cart_rules";
public $timestamps = false;
protected $dateFormat = 'U';
protected $guarded = ['id'];
public $translatedAttributes = ['title'];
// Enums
static $targetTypes = ['all', 'courses', 'store_products', 'bundles', 'meetings'];
static $courseTargets = ['all_courses', 'live_classes', 'video_courses', 'text_courses', 'specific_categories', 'specific_instructors', 'specific_courses'];
static $productTargets = ['all_products', 'virtual_products', 'physical_products', 'specific_categories', 'specific_sellers', 'specific_products'];
static $bundleTargets = ['all_bundles', 'specific_categories', 'specific_instructors', 'specific_bundles'];
static $meetingTargets = ['all_meetings', 'specific_instructors'];
public function getTitleAttribute()
{
return getTranslateAttributeValue($this, 'title');
}
// #############
// Relations
// ############
public function discount()
{
return $this->belongsTo(Discount::class, 'discount_id', 'id');
}
public function usersAndGroups()
{
return $this->hasMany(AbandonedCartRuleUserGroup::class, 'abandoned_cart_rule_id', 'id');
}
public function userGroups()
{
return $this->belongsToMany(Group::class, 'abandoned_cart_rule_users_groups', 'abandoned_cart_rule_id', 'group_id');
}
public function users()
{
return $this->belongsToMany(User::class, 'abandoned_cart_rule_users_groups', 'abandoned_cart_rule_id', 'user_id');
}
public function specificationItems() // used just in query
{
return $this->hasMany(AbandonedCartRuleSpecificationItem::class, 'abandoned_cart_rule_id', 'id');
}
public function categories()
{
return $this->belongsToMany(Category::class, 'abandoned_cart_rule_specification_items', 'abandoned_cart_rule_id', 'category_id');
}
public function instructors()
{
return $this->belongsToMany(User::class, 'abandoned_cart_rule_specification_items', 'abandoned_cart_rule_id', 'instructor_id');
}
public function sellers()
{
return $this->belongsToMany(User::class, 'abandoned_cart_rule_specification_items', 'abandoned_cart_rule_id', 'seller_id');
}
public function webinars()
{
return $this->belongsToMany(Webinar::class, 'abandoned_cart_rule_specification_items', 'abandoned_cart_rule_id', 'webinar_id');
}
public function products()
{
return $this->belongsToMany(Product::class, 'abandoned_cart_rule_specification_items', 'abandoned_cart_rule_id', 'product_id');
}
public function bundles()
{
return $this->belongsToMany(Bundle::class, 'abandoned_cart_rule_specification_items', 'abandoned_cart_rule_id', 'bundle_id');
}
}