mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 23:01:06 +03:30
68 lines
1.7 KiB
PHP
68 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Constants\StatusTypeEnum;
|
|
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\Database\Eloquent\Relations\MorphMany;
|
|
use Illuminate\Database\Eloquent\Relations\MorphOne;
|
|
|
|
class Package extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
public $fillable = ['name', 'user_id', 'note', 'status', 'creator_id'];
|
|
|
|
public function user(): BelongsTo
|
|
{
|
|
return $this->belongsTo(User::class);
|
|
}
|
|
|
|
public function creator(): BelongsTo
|
|
{
|
|
return $this->belongsTo(User::class, "creator_id");
|
|
}
|
|
|
|
public function items(): HasMany
|
|
{
|
|
return $this->hasMany(Item::class);
|
|
}
|
|
|
|
public function labels(): HasMany
|
|
{
|
|
return $this->hasMany(Label::class);
|
|
}
|
|
|
|
public function transfersAll(): MorphMany
|
|
{
|
|
return $this->morphMany(Transfer::class, "transferable")
|
|
->orderBy("id", "desc");
|
|
}
|
|
|
|
public function transfers(): MorphMany
|
|
{
|
|
return $this->morphMany(Transfer::class, "transferable")
|
|
->where("status", StatusTypeEnum::APPROVED)
|
|
->orderBy("id", "desc");
|
|
}
|
|
|
|
public function latestTransfer(): MorphOne
|
|
{
|
|
return $this->morphOne(Transfer::class, "transferable")
|
|
->where("status", StatusTypeEnum::APPROVED)
|
|
->orderBy("id", "desc")
|
|
->latest();
|
|
}
|
|
|
|
public function transferActive(): MorphMany
|
|
{
|
|
return $this->morphMany(Transfer::class, "transferable")
|
|
->where("status", StatusTypeEnum::APPROVED)
|
|
->whereNull("to_date")
|
|
->orderBy("id", "desc");
|
|
}
|
|
}
|