/
home
/
corsairdevelopme
/
public_html
/
admin-csrnow.corsair-development.com
/
app__b301cdf
/
Models
/
Upload File
HOME
<?php namespace App\Models; use App\Services\BigNumber; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use App\Http\Traits\Timezone; class WalletTransaction extends Model { use HasFactory,Timezone; public $pageName = "Wallet Transaction"; protected $table = "wallet_transaction"; protected $dates = ['created_at', 'updated_at']; protected $fillable = ['type', 'user_id', 'currency_id', 'amount', 'reference', 'transaction_type', 'meta_data', 'fee', 'status','fee_transfer_to_user_id','behalf_member','process_start_by']; protected $casts = [ 'meta_data' => "json", 'created_at' => 'datetime:d-m-Y H:i:s', 'updated_at' => 'datetime:d-m-Y H:i:s' ]; protected $newDateFormat = 'd/m/Y H:i:s'; protected static function boot() { parent::boot(); static::addGlobalScope('order', function (Builder $builder) { $builder->orderBy('wallet_transaction.created_at', 'desc'); }); } public function currency() { return $this->belongsTo(Currencies::class, 'currency_id')->withTrashed(); } public function TransferUser(): Attribute { return Attribute::make( function ($value) { $userId = WalletTransaction::find($this->attributes['transfer_id'])->user_id ?? 0; return User::find($userId); } ); } public function user() { return $this->belongsTo(User::class, 'user_id'); } public function Deposit(): Attribute { return Attribute::make( function ($value) { return BigNumber::create($value)->value; } ); } public function Fee(): Attribute { return Attribute::make( function ($value) { return BigNumber::create($value)->value; } ); } public function user_wallet_address() { return $this->belongsTo(UserWalletAddress::class,'meta_data->user_wallet_address', 'id'); } public function amplivoUser(){ return $this->hasOne(\App\Models\Amplivo\User::class, 'external_id','user_id')->with('member'); } public function corporateMember() { return $this->belongsTo(CorporateMembers::class, 'user_id', 'user_id'); } public function getUserWalletAddressAttribute() { $walletId = $this->meta_data['user_wallet_address'] ?? null; return $walletId ? UserWalletAddress::find($walletId) : null; } }