'bool', 'configs' => 'collection', ]; protected static function booted() { static::creating(function (self $group) { $group->configs = collect([ GroupConfigKey::MaximumFileSize => 5120, GroupConfigKey::ConcurrentUploadNum => 3, GroupConfigKey::IsUploadNeedsReview => false, GroupConfigKey::LimitPerHour => 0, GroupConfigKey::LimitPerDay => 0, GroupConfigKey::LimitPerWeek => 0, GroupConfigKey::LimitPerMonth => 0, GroupConfigKey::AcceptedFileSuffixes => ['jpg', 'jpeg', 'gif', 'png', 'ico'], GroupConfigKey::PathNamingRule => '{Y}/{m}/{d}', GroupConfigKey::FileNamingRule => '{uniqid}', ])->merge($group->configs ?: []); }); } public function users(): HasMany { return $this->hasMany(User::class, 'user_id', 'id'); } public function strategies(): HasMany { return $this->hasMany(Strategy::class, 'group_id', 'id'); } }