HEX
Server: LiteSpeed
System: Linux my-kul-web2054.main-hosting.eu 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: u665686179 (665686179)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: /home/u665686179/domains/dealkr.com/public_html/app/Models/RefundRequest.php
<?php

namespace App\Models;

use App\Traits\StorageTrait;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Facades\DB;

class RefundRequest extends Model
{
    use HasFactory,StorageTrait;

    protected $fillable = [
        'order_details_id',
        'customer_id',
        'status',
        'approved_count',
        'denied_count',
        'amount',
        'product_id',
        'order_id',
        'refund_reason',
        'images',
        'approved_note',
        'rejected_note',
        'payment_info',
        'change_by',
    ];
    protected $casts = [
        'order_details_id' => 'integer',
        'customer_id' => 'integer',
        'status'=>'string',
        'amount' => 'float',
        'product_id' => 'integer',
        'order_id' => 'integer',
        'refund_reason'=>'string',
        'approved_note'=>'string',
        'rejected_note'=>'string',
        'payment_info'=>'string',
        'change_by'=>'string',
        'images' => 'array'
    ];

    public function customer():BelongsTo
    {
        return $this->belongsTo(User::class, 'customer_id');
    }
    public function product():BelongsTo
    {
        return $this->belongsTo(Product::class,'product_id');
    }
    /* order_details->orderDetails */
    public function orderDetails():BelongsTo
    {
        return $this->belongsTo(OrderDetail::class,'order_details_id');
    }
    public function order():BelongsTo
    {
        return $this->belongsTo(Order::class,'order_id');
    }
    /* refund_status->refundStatus */
    public function refundStatus():HasMany
    {
        return $this->hasMany(RefundStatus::class,'refund_request_id');
    }
    public function getImagesFullUrlAttribute():array|null
    {
        $images = [];
        $value = $this->images;
        if ($value){
            foreach ($value as $item){
                $item = isset($item['image_name']) ? (array)$item : ['image_name' => $item, 'storage' => 'public'];
                $images[] =  $this->storageLink('refund',$item['image_name'],$item['storage'] ?? 'public');
            }
        }
        return $images;
    }
    protected $appends = ['images_full_url'];
}