HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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);
    }
}