js(__DIR__.'/js/dist/forum.js') ->css(__DIR__.'/less/forum.less') ->route('/flags', 'flags', AssertRegistered::class), (new Extend\Frontend('admin')) ->js(__DIR__.'/js/dist/admin.js'), (new Extend\Routes('api')) ->get('/flags', 'flags.index', ListFlagsController::class) ->post('/flags', 'flags.create', CreateFlagController::class) ->delete('/posts/{id}/flags', 'flags.delete', DeleteFlagsController::class), (new Extend\Model(User::class)) ->cast('read_flags_at', 'datetime'), (new Extend\Model(Post::class)) ->hasMany('flags', Flag::class, 'post_id'), (new Extend\ApiSerializer(PostSerializer::class)) ->hasMany('flags', FlagSerializer::class) ->attribute('canFlag', AddCanFlagAttribute::class), (new Extend\ApiSerializer(CurrentUserSerializer::class)) ->attribute('newFlagCount', AddNewFlagCountAttribute::class), (new Extend\ApiSerializer(ForumSerializer::class)) ->attributes(AddFlagsApiAttributes::class), (new Extend\ApiController(ShowDiscussionController::class)) ->addInclude(['posts.flags', 'posts.flags.user']), (new Extend\ApiController(ListPostsController::class)) ->addInclude(['flags', 'flags.user']), (new Extend\ApiController(ShowPostController::class)) ->addInclude(['flags', 'flags.user']), (new Extend\ApiController(AbstractSerializeController::class)) ->prepareDataForSerialization(PrepareFlagsApiData::class), (new Extend\Settings()) ->serializeToForum('guidelinesUrl', 'flarum-flags.guidelines_url'), (new Extend\Event()) ->listen(Deleted::class, Listener\DeleteFlags::class), (new Extend\ModelVisibility(Flag::class)) ->scope(ScopeFlagVisibility::class), new Extend\Locales(__DIR__.'/locale'), ];