package models

// 权限码（与前端、路由 meta.permission 一致）
const (
	PermSiteManage      = "site:manage"
	PermHomepageEdit    = "homepage:edit"
	PermPageManage      = "page:manage"
	PermModuleUpload    = "module:upload"
	PermUserManage      = "user:manage"
	PermWorkspaceManage = "workspace:manage"
	PermConversationManage = "conversation:manage"
	PermSMSConfig       = "sms_config"
	PermPaymentConfig   = "payment_config"
	PermRolePermission  = "role:permission" // 角色权限管理
)

// AllPermissions 所有可配置权限（用于角色权限管理页）
var AllPermissions = []struct {
	Key  string
	Name string
}{
	{PermSiteManage, "站点管理"},
	{PermHomepageEdit, "首页编辑"},
	{PermPageManage, "网页管理"},
	{PermModuleUpload, "功能模块上传"},
	{PermUserManage, "用户管理"},
	{PermWorkspaceManage, "工作空间"},
	{PermConversationManage, "对话管理"},
	{PermSMSConfig, "短信配置"},
	{PermPaymentConfig, "支付配置"},
	{PermRolePermission, "角色权限管理"},
}

// RolePermissionsDoc MongoDB 文档：角色 ID -> 名称与权限列表（支持自定义角色）
type RolePermissionsDoc struct {
	RoleID      int      `bson:"role_id" json:"role_id"`
	RoleName    string   `bson:"role_name,omitempty" json:"role_name"`
	Permissions []string `bson:"permissions" json:"permissions"`
}

// 预定义角色 ID 的默认名称（未在 DB 中存 role_name 时使用）
var DefaultRoleNames = map[int]string{
	RoleIDSuperAdmin: "超级管理员",
	RoleIDSuperUser:  "超级用户",
	RoleIDUser:       "普通用户",
}
