138 lines
3.6 KiB
PHP
138 lines
3.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Created by Reliese Model.
|
|
*/
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Services\HTMLHelper;
|
|
use App\User;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
/**
|
|
* Class UserCreditItem
|
|
*
|
|
* @property int $id
|
|
* @property int $user_id
|
|
* @property int|null $user_credit_id
|
|
* @property float|null $credit
|
|
* @property string|null $message
|
|
* @property int $status
|
|
* @property bool $paid
|
|
* @property Carbon|null $created_at
|
|
* @property Carbon|null $updated_at
|
|
* @property UserCredit|null $user_credit
|
|
* @property User $user
|
|
* @package App\Models
|
|
* @property int|null $user_business_id
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem newModelQuery()
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem newQuery()
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem query()
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereCreatedAt($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereCredit($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereId($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereMessage($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem wherePaid($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereStatus($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUpdatedAt($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUserBusinessId($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUserCreditId($value)
|
|
* @method static \Illuminate\Database\Eloquent\Builder|UserCreditItem whereUserId($value)
|
|
* @mixin \Eloquent
|
|
*/
|
|
class UserCreditItem extends Model
|
|
{
|
|
|
|
|
|
public static $statusTypes = [
|
|
1 => 'commission_shop',
|
|
2 => 'commission_payline',
|
|
3 => 'credit_added',
|
|
4 => 'commission',
|
|
5 => 'commission_growth_bonus',
|
|
|
|
];
|
|
|
|
public static $statusColors = [
|
|
0 => 'warning',
|
|
1 => 'success',
|
|
2 => 'secondary',
|
|
3 => 'warning',
|
|
4 => 'info',
|
|
5 => 'secondary',
|
|
10 => 'danger',
|
|
];
|
|
|
|
|
|
protected $table = 'user_credit_items';
|
|
|
|
protected $casts = [
|
|
'user_id' => 'int',
|
|
'user_credit_id' => 'int',
|
|
'user_business_id' => 'int',
|
|
'credit' => 'float',
|
|
'status' => 'int',
|
|
'from_month' => 'int',
|
|
'from_year' => 'int',
|
|
'paid' => 'bool'
|
|
];
|
|
|
|
protected $fillable = [
|
|
'user_id',
|
|
'user_credit_id',
|
|
'user_business_id',
|
|
'credit',
|
|
'message',
|
|
'status',
|
|
'from_month',
|
|
'from_year',
|
|
'paid'
|
|
];
|
|
|
|
public function user_credit()
|
|
{
|
|
return $this->belongsTo(UserCredit::class);
|
|
}
|
|
|
|
public function user()
|
|
{
|
|
return $this->belongsTo(User::class);
|
|
}
|
|
|
|
|
|
public function deleteTime(){
|
|
$time = '+100 min';
|
|
if(Carbon::parse($this->created_at)->modify($time)->gt(Carbon::now())){
|
|
return Carbon::now()->diffInMinutes(Carbon::parse($this->created_at)->modify($time));
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public function getStatusType(){
|
|
return isset(self::$statusTypes[$this->status]) ? __('payment.'.self::$statusTypes[$this->status]) : "";
|
|
}
|
|
|
|
public function getStatusColor(){
|
|
return isset(self::$statusColors[$this->status]) ? self::$statusColors[$this->status] : "default";
|
|
}
|
|
|
|
public function getTransMessage(){
|
|
$ret = "";
|
|
if(strpos($this->message, '#')){
|
|
$em = explode("#", $this->message);
|
|
if(isset($em[0])){ //Provision
|
|
$ret .= trans($em[0])." ";
|
|
}
|
|
if(isset($em[1])){ //month
|
|
$ret .= HTMLHelper::getMonth($em[1])." ";
|
|
}
|
|
if(isset($em[2])){ //year
|
|
$ret .= $em[2];
|
|
}
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
}
|