Files
Atomcms-edit/app/Models/Community/RareValue/WebsiteRareValueCategory.php
T
2026-05-09 17:32:17 +02:00

58 lines
1.9 KiB
PHP
Executable File

<?php
namespace App\Models\Community\RareValue;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
/**
* @property int $id
* @property string $name
* @property string $badge
* @property int $priority
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
* @property-read Collection<int, WebsiteRareValue> $furniture
*
* @method static \Illuminate\Database\Eloquent\Builder<static>|WebsiteRareValueCategory orderBy($column, $direction = 'asc')
* @method static \Illuminate\Database\Eloquent\Builder<static>|WebsiteRareValueCategory has($relation, $operator = '>=', $count = 1)
* @method static \Illuminate\Database\Eloquent\Builder<static>|WebsiteRareValueCategory get($columns = ['*'])
* @method static \Illuminate\Database\Eloquent\Builder<static>|WebsiteRareValueCategory whereId($id)
* @method static \Illuminate\Database\Eloquent\Builder<static>|WebsiteRareValueCategory whereHas($relation, \Closure $callback = null, $operator = '>=', $count = 1)
* @method static \Illuminate\Database\Eloquent\Builder<static>|WebsiteRareValueCategory withCount($relations)
*/
class WebsiteRareValueCategory extends Model
{
#[\Override]
protected $guarded = ['id', 'created_at', 'updated_at'];
#[\Override]
protected function casts(): array
{
return [
'priority' => 'integer',
];
}
public function furniture(): HasMany
{
return $this->hasMany(WebsiteRareValue::class, 'category_id');
}
public function getTotalValue(): int
{
return $this->furniture->sum(fn ($rare) => $rare->credit_value ?? 0);
}
public function getAverageValue(): float
{
if ($this->furniture->isEmpty()) {
return 0.0;
}
return $this->furniture->avg(fn ($rare) => $rare->credit_value ?? 0);
}
}