js(__DIR__.'/js/dist/forum.js') ->css(__DIR__.'/less/forum.less'), (new Extend\Frontend('admin')) ->js(__DIR__.'/js/dist/admin.js') ->css(__DIR__.'/less/admin.less'), (new Extend\Model(User::class)) ->dateAttribute('suspended_until'), (new Extend\ApiSerializer(UserSerializer::class)) ->attributes(AddUserSuspendAttributes::class), new Extend\Locales(__DIR__.'/locale'), (new Extend\Notification()) ->type(UserSuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email']) ->type(UserUnsuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email']), (new Extend\Event()) ->listen(Saving::class, Listener\SaveSuspensionToDatabase::class) ->listen(Suspended::class, Listener\SendNotificationWhenUserIsSuspended::class) ->listen(Unsuspended::class, Listener\SendNotificationWhenUserIsUnsuspended::class), (new Extend\Policy()) ->modelPolicy(User::class, UserPolicy::class), (new Extend\User()) ->permissionGroups(RevokeAccessFromSuspendedUsers::class), (new Extend\Filter(UserFilterer::class)) ->addFilter(SuspendedFilterGambit::class), (new Extend\SimpleFlarumSearch(UserSearcher::class)) ->addGambit(SuspendedFilterGambit::class) ];