buckets/app/Models/Scenario.php

59 lines
1.2 KiB
PHP
Raw Normal View History

2025-12-29 21:53:52 +01:00
<?php
namespace App\Models;
2026-03-21 18:09:56 +01:00
use App\Enums\DistributionModeEnum;
use App\Models\Traits\HasUuid;
2025-12-29 21:53:52 +01:00
use Database\Factories\ScenarioFactory;
2025-12-31 00:02:54 +01:00
use Illuminate\Database\Eloquent\Collection;
2025-12-29 21:53:52 +01:00
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
2025-12-31 00:02:54 +01:00
/**
2025-12-31 02:34:30 +01:00
* @property int $id
* @property string $uuid
2026-03-21 18:09:56 +01:00
* @property DistributionModeEnum $distribution_mode
2025-12-31 00:02:54 +01:00
* @property Collection<Bucket> $buckets
*
2025-12-31 00:02:54 +01:00
* @method static create(array $data)
*/
2025-12-29 21:53:52 +01:00
class Scenario extends Model
{
/** @use HasFactory<ScenarioFactory> */
use HasFactory, HasUuid;
2025-12-29 21:53:52 +01:00
protected $fillable = [
'name',
2025-12-31 00:02:54 +01:00
'description',
2026-03-21 18:09:56 +01:00
'distribution_mode',
2025-12-29 21:53:52 +01:00
];
2026-03-21 18:09:56 +01:00
protected function casts(): array
{
return [
'distribution_mode' => DistributionModeEnum::class,
];
}
2025-12-29 21:53:52 +01:00
public function buckets(): HasMany
{
return $this->hasMany(Bucket::class);
}
public function streams(): HasMany
{
return $this->hasMany(Stream::class);
}
public function inflows(): HasMany
{
return $this->hasMany(Inflow::class);
}
public function outflows(): HasMany
{
return $this->hasMany(Outflow::class);
}
}