ActivityUserPrice.php 1.3 KB
<?php

namespace App\Models;

use App\Support\Model;
use Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo;

class ActivityUserPrice extends Model
{
    protected $table = 'activity_user_has_prices';

    protected $casts = [
        'value' => 'json'
    ];

    protected $with = [
        'address:id,name,parent_id',
        'address.parent:id,name'
    ];

    /**
     * @return \Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo
     */
    public function address(): BelongsTo
    {
        return $this->belongsTo(CountryRegion::class);
    }

    /**
     * @return string
     */
    public function getAddressFormat(): string
    {
        return implode('-', [data_get($this->address, 'parent.name'), data_get($this->address, 'name', '')]);
    }

    /**
     * @return string
     */
    public function getDividendFormat(): string
    {
        $rate = data_get($this->getAttribute('value'), 'ratio', 0);
        $year = data_get($this->getAttribute('value'), 'year', '');
        return sprintf("%s|%s|%s", $rate . '%', $year, $this->is_deduct === 1 ? '抵扣' : '不抵扣');
    }
    /**
     * @return \Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo
     */

    public function AddressInfo(){
        return $this->hasOne(CountryRegion::class,'id','address_id')->with('parent');
    }
}