Files
metabuilder/packages/forum_forge/seed/scripts/init.lua

58 lines
1.6 KiB
Lua

--- Forum Forge package entry point
--- Provides forum functionality with moderation and permissions
---@class ForumForgePackage : ForumForgeModule
---@field name string Package name
---@field version string Package version
---@field moderation ModerationModule Moderation utilities
---@field permissions PermissionsModule Permission checking
---@field thread_rank ThreadRankModule Thread ranking
---@class ModerationModule
---@field flag_post fun(post: { content?: string }): FlagResult
---@class PermissionsModule
---@field can_post fun(user: { role?: UserRole }): boolean
---@field can_moderate fun(user: { role?: UserRole }): boolean
---@class ThreadRankModule
---@field rank_thread fun(thread: ForumThread): number
---@class InstallContext
---@field version string
---@class InstallResult
---@field message string
---@field version string
---@class UninstallResult
---@field message string
local M = {}
M.name = "forum_forge"
M.version = "1.0.0"
-- Load sub-modules
M.moderation = require("moderation")
M.permissions = require("permissions")
M.thread_rank = require("thread_rank")
-- Also expose functions directly
M.flag_post = require("flag_post")
M.can_post = require("can_post")
M.can_moderate = require("can_moderate")
M.rank_thread = require("rank_thread")
---@param context InstallContext
---@return InstallResult
function M.on_install(context)
return { message = "Forum Forge installed", version = context.version }
end
---@return UninstallResult
function M.on_uninstall()
return { message = "Forum Forge removed" }
end
return M