Files
mykopkb-be/Modules/Investment/Entities/UserLimitProfile.php
T

58 lines
1.4 KiB
PHP

<?php
namespace Modules\Investment\Entities;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Modules\Auth\Entities\User;
class UserLimitProfile extends Model
{
use HasUuids;
public $timestamps = false;
protected $table = 'user_limit_profiles';
protected $fillable = [
'user_id',
'profile_id',
'effective_date',
'expiry_date',
'created_at',
];
protected function casts(): array
{
return [
'effective_date' => 'date',
'expiry_date' => 'date',
'created_at' => 'datetime',
];
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class, 'user_id');
}
public function profile(): BelongsTo
{
return $this->belongsTo(InvestmentLimitProfile::class, 'profile_id');
}
public function scopeActive(Builder $query, $onDate = null): Builder
{
$date = ($onDate ?? now())->toDateString();
return $query
->whereDate('effective_date', '<=', $date)
->where(function (Builder $builder) use ($date) {
$builder->whereNull('expiry_date')
->orWhereDate('expiry_date', '>=', $date);
});
}
}