File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Models/Experience/ExperiencePayment.php
<?php
namespace App\Models\Experience;
use App\DocumentType;
use App\ExperiencePaymentExperienceUser;
use App\PaymentTransaction;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class ExperiencePayment extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $casts = [
'start_datetime' => 'datetime',
];
protected $fillable = [
'id',
'payment_identifier',
'description',
'status',
'amount',
'price',
'price_discount',
'discount',
'subtotal',
'service_charge',
'total',
'payment_due_date',
'experience_plan_price_id',
'experience_user_id',
'billing_first_name',
'billing_last_name',
'billing_document_type_id',
'billing_document',
'billing_email',
'billing_phone',
'billing_address',
'term_cons',
'data_policy',
'payment_transaction_id',
'expires_at',
'start_datetime',
'purchase_origin',
'raffle',
'referral_code',
'billing_dial_code',
'billing_country_code',
];
public function experience_plan_price()
{
return $this->belongsTo(ExperiencePlanPrice::class);
}
public function experience_user()
{
return $this->buyer();
}
public function buyer()
{
return $this->hasOneThrough(
ExperienceUser::class,
ExperiencePaymentExperienceUser::class,
'experience_payment_id',
'id',
'id',
'experience_user_id'
)->where('buyer', true);
}
public function companions()
{
return $this->belongsToMany(ExperienceUser::class, 'experience_payment_experience_users')
->wherePivot('buyer', '=', false)
->withTimestamps();
}
public function entrances()
{
return $this->belongsToMany(ExperienceUser::class, 'experience_payment_experience_users')
->withTimestamps();
}
public function payment_transaction()
{
return $this->belongsTo(PaymentTransaction::class)->with('gateway_payments');
}
public function billing_document_type()
{
return $this->belongsTo(DocumentType::class);
}
}