export enum SocketMsgType {
	NOTIFY,
}
export enum PostType {
	POST = "post",
	POST_COMMENT = "post_comment",
	COURSE_REVIEW = "course_review",
	COURSE = "course",
	SECTION = "section",
	LECTURE = "lecture",
	PATH = "path",
}
export enum LectureType {
	VIDEO = "video",
	ARTICLE = "article",
}
export enum TaxonomySlug {
	CATEGORY = "category",
	TAG = "tag",
	LEVEL = "level",
}
export enum VisitType {
	STAR = "star",
	READED = "read",
	LIKE = "like",
	HATE = "hate",
	COURSE_REVIEW = "course_review",
}

export enum StorageProvider {
	LOCAL = "LOCAL",
	S3 = "S3",
	OSS = "OSS",
	COS = "COS",
	CDN = "CDN",
}

export enum ResourceStatus {
	UPLOADING = "UPLOADING",
	UPLOADED = "UPLOADED",
	PROCESS_PENDING = "PROCESS_PENDING",
	PROCESSING = "PROCESSING",
	PROCESSED = "PROCESSED",
	PROCESS_FAILED = "PROCESS_FAILED",
}
export enum ObjectType {
	DEPARTMENT = "department",
	STAFF = "staff",
	COMMENT = "comment",
	TERM = "term",
	APP_CONFIG = "app_config",
	ROLE = "role",
	ROLE_MAP = "rolemap",
	MESSAGE = "message",
	POST = "post",
	VISIT = "visit",
	COURSE = "course",
	SECTION = "section",
	LECTURE = "lecture",
	ENROLLMENT = "enrollment",
	RESOURCE = "resource",
	SHARE_CODE = "shareCode",
}
export enum RolePerms {
	// Create Permissions 创建权限
	CREATE_ALERT = "CREATE_ALERT", // 创建警报
	CREATE_INSTRUCTION = "CREATE_INSTRUCTION", // 创建指令
	CREATE_TROUBLE = "CREATE_TROUBLE", // 创建问题
	CREATE_WORKPROGRESS = "CREATE_WORKPROGRESS", // 创建工作进度
	CREATE_ASSESSMENT = "CREATE_ASSESSMENT", // 创建评估
	CREATE_TERM = "CREATE_TERM", // 创建术语
	// Read Permissions 读取权限
	READ_ANY_TROUBLE = "READ_ANY_TROUBLE", // 读取任何问题
	READ_DOM_TROUBLE = "READ_DOM_TROUBLE", // 读取领域问题
	READ_AUDIT_TROUBLE = "READ_AUDIT_TROUBLE",
	READ_ANY_CHART = "READ_ANY_CHART", // 读取任何图表
	READ_DOM_CHART = "READ_DOM_CHART", // 读取领域图表
	READ_ANY_ASSESSMENT = "READ_ANY_ASSESSMENT", // 读取任何评估
	READ_DOM_ASSESSMENT = "READ_DOM_ASSESSMENT", // 读取领域评估
	READ_ANY_TERM = "READ_ANY_TERM", // 读取任何术语
	READ_DOM_TERM = "READ_DOM_TERM", // 读取领域术语

	READ_ANY_POST = "READ_ANY_POST", // 读取任何问题
	READ_DOM_POST = "READ_DOM_POST", // 读取领域问题

	MANAGE_ANY_POST = "MANAGE_ANY_POST",
	MANAGE_DOM_POST = "MANAGE_DOM_POST",
	MANAGE_ANY_TROUBLE = "MANAGE_ANY_TROUBLE",
	MANAGE_DOM_TROUBLE = "MANAGE_DOM_TROUBLE",

	MANAGE_DOM_TERM = "MANAGE_DOM_TERM",
	MANAGE_ANY_TERM = "MANAGE_ANY_TERM",
	MANAGE_BASE_SETTING = "MANAGE_BASE_SETTING",
	// Staff and Department Permissions
	MANAGE_ANY_STAFF = "MANAGE_ANY_STAFF",
	MANAGE_DOM_STAFF = "MANAGE_DOM_STAFF",
	MANAGE_ANY_DEPT = "MANAGE_ANY_DEPT",
	MANAGE_DOM_DEPT = "MANAGE_DOM_DEPT",
	// Role Permissions
	MANAGE_ANY_ROLE = "MANAGE_ANY_ROLE",
	MANAGE_DOM_ROLE = "MANAGE_DOM_ROLE",
}
export enum AppConfigSlug {
	BASE_SETTING = "base_setting",
}
// 资源类型的枚举，定义了不同类型的资源，以字符串值表示
export enum ResourceType {
	VIDEO = "video", // 视频资源
	PDF = "pdf", // PDF文档
	DOC = "doc", // Word文档
	EXCEL = "excel", // Excel表格
	PPT = "ppt", // PowerPoint演示文稿
	CODE = "code", // 代码文件
	LINK = "link", // 超链接
	IMAGE = "image", // 图片资源
	AUDIO = "audio", // 音频资源
	ZIP = "zip", // 压缩包文件
	OTHER = "other", // 其他未分类资源
}
// 课程等级的枚举，描述了不同学习水平的课程
export enum CourseLevel {
	BEGINNER = "beginner", // 初级课程，适合初学者
	INTERMEDIATE = "intermediate", // 中级课程，适合有一定基础的学习者
	ADVANCED = "advanced", // 高级课程，适合高级水平学习者
	ALL_LEVELS = "all_levels", // 适用于所有学习水平的课程
}

// 课时（课程内容）类型的枚举，定义了课程中可能包含的不同内容形式
export enum LessonType {
	VIDEO = "video", // 视频课程
	ARTICLE = "article", // 文章型课程内容
	QUIZ = "quiz", // 测验类型
	ASSIGNMENT = "assignment", // 作业类型
}

// 课程状态的枚举，定义了课程生命周期中的各个状态
export enum CourseStatus {
	DRAFT = "draft", // 草稿状态的课程，尚未发布
	UNDER_REVIEW = "under_review", // 正在审核中的课程
	PUBLISHED = "published", // 已发布的课程，可以被学员报名学习
	ARCHIVED = "archived", // 已归档的课程，不再对外展示
}
export const CourseStatusLabel: Record<CourseStatus, string> = {
	[CourseStatus.DRAFT]: "草稿",
	[CourseStatus.UNDER_REVIEW]: "审核中",
	[CourseStatus.PUBLISHED]: "已发布",
	[CourseStatus.ARCHIVED]: "已归档",
};

// 报名状态的枚举，描述了用户报名参加课程的不同状态
export enum EnrollmentStatus {
	PENDING = "pending", // 报名待处理状态
	ACTIVE = "active", // 活跃状态，用户可参与课程
	COMPLETED = "completed", // 完成状态，用户已完成课程
	CANCELLED = "cancelled", // 已取消的报名
	REFUNDED = "refunded", // 已退款的报名
}

// 授课角色的枚举，定义了讲师在课程中的角色分配
export enum InstructorRole {
	MAIN = "main", // 主讲教师
	ASSISTANT = "assistant", // 助教
}

export const EnrollmentStatusLabel = {
	[EnrollmentStatus.PENDING]: "待处理",
	[EnrollmentStatus.ACTIVE]: "进行中",
	[EnrollmentStatus.COMPLETED]: "已完成",
	[EnrollmentStatus.CANCELLED]: "已取消",
	[EnrollmentStatus.REFUNDED]: "已退款",
};

export const InstructorRoleLabel = {
	[InstructorRole.MAIN]: "主讲教师",
	[InstructorRole.ASSISTANT]: "助教",
};

export const ResourceTypeLabel = {
	[ResourceType.VIDEO]: "视频",
	[ResourceType.PDF]: "PDF文档",
	[ResourceType.DOC]: "Word文档",
	[ResourceType.EXCEL]: "Excel表格",
	[ResourceType.PPT]: "PPT演示文稿",
	[ResourceType.CODE]: "代码文件",
	[ResourceType.LINK]: "链接",
	[ResourceType.IMAGE]: "图片",
	[ResourceType.AUDIO]: "音频",
	[ResourceType.ZIP]: "压缩包",
	[ResourceType.OTHER]: "其他",
};

export const CourseLevelLabel = {
	[CourseLevel.BEGINNER]: "初级",
	[CourseLevel.INTERMEDIATE]: "中级",
	[CourseLevel.ADVANCED]: "高级",
	[CourseLevel.ALL_LEVELS]: "不限级别",
};

export const LessonTypeLabel = {
	[LessonType.VIDEO]: "视频课程",
	[LessonType.ARTICLE]: "图文课程",
	[LessonType.QUIZ]: "测验",
	[LessonType.ASSIGNMENT]: "作业",
};
