ledgerrz/app/Models/Dynamic.php
Daan Meijer 10bd46a53e
Some checks failed
linter / quality (push) Failing after 1m2s
tests / ci (8.3) (push) Failing after 48s
tests / ci (8.4) (push) Failing after 1m5s
tests / ci (8.5) (push) Failing after 1m5s
formatting, juiste use voor UpdateDynamicRequest
2026-06-22 00:10:39 +02:00

64 lines
1.4 KiB
PHP

<?php
namespace App\Models;
use Database\Factories\DynamicFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphOne;
use Illuminate\Support\Str;
class Dynamic extends Model
{
/** @use HasFactory<DynamicFactory> */
use HasFactory;
protected $fillable = [
'name',
'rules',
];
public function participants(): BelongsToMany
{
return $this->belongsToMany(User::class, 'participants')->withPivot('role', 'display_name');
}
public function ledgers(): HasMany
{
return $this->hasMany(Ledger::class);
}
public function invitations(): HasMany
{
return $this->hasMany(DynamicInvitation::class);
}
public function predefinedMutations(): HasMany
{
return $this->hasMany(PredefinedMutation::class);
}
public function chat(): MorphOne
{
return $this->morphOne(Chat::class, 'chatable');
}
protected static function booted(): void
{
static::creating(function ($model) {
$model->uuid = (string) Str::uuid();
});
static::created(function (Dynamic $dynamic) {
$dynamic->chat()->create([]);
});
}
public function getRouteKeyName()
{
return 'uuid';
}
}