/**
 * 统一的标签映射工具
 * 用于课程包的年级标签和领域标签的中英文转换
 */

// 年级标签映射（英文 → 中文）
export const GRADE_TAG_MAP: Record<string, string> = {
  // 大写格式
  SMALL: '小班',
  MIDDLE: '中班',
  BIG: '大班',
  // 小写格式
  small: '小班',
  middle: '中班',
  big: '大班',
};

// 领域标签映射（英文 → 中文）- 导出供其他模块使用
export const DOMAIN_TAG_MAP: Record<string, string> = {
  // 旧格式（大写）
  LANGUAGE: '语言',
  SCIENCE: '科学',
  SOCIAL: '社会',
  ART: '艺术',
  HEALTH: '健康',
  MATH: '数学',

  // 活动类型作为领域的兼容映射（历史数据兼容）
  family: '亲子活动',
  FAMILY: '亲子活动',
  class: '课堂活动',
  CLASS: '课堂活动',
  outdoor: '户外活动',
  OUTDOOR: '户外活动',
  handicraft: '手工活动',
  HANDICRAFT: '手工活动',
  game: '游戏活动',
  GAME: '游戏活动',
  music: '音乐活动',
  MUSIC: '音乐活动',
  exploration: '探索活动',
  EXPLORATION: '探索活动',
  sports: '运动活动',
  SPORTS: '运动活动',
  art: '艺术活动',

  // 新格式（细分领域）
  // 健康领域
  health_motor: '身体动作发展',
  health_hygiene: '生活习惯与能力',
  HEALTH_MOTOR: '身体动作发展',
  HEALTH_HYGIENE: '生活习惯与能力',

  // 语言领域
  lang_listen: '倾听与表达',
  lang_read: '早期阅读',
  LANG_LISTEN: '倾听与表达',
  LANG_READ: '早期阅读',
  language_communication: '语言',
  LANGUAGE_COMMUNICATION: '语言',

  // 社会领域
  social_interact: '人际交往',
  social_adapt: '社会适应',
  SOCIAL_INTERACT: '人际交往',
  SOCIAL_ADAPT: '社会适应',
  social_emotional: '社会',
  SOCIAL_EMOTIONAL: '社会',

  // 科学领域
  science_explore: '科学探究',
  math_cog: '数学认知',
  SCIENCE_EXPLORE: '科学探究',
  MATH_COG: '数学认知',
  science_exploration: '科学',
  SCIENCE_EXPLORATION: '科学',

  // 艺术领域
  art_music: '音乐表现',
  art_create: '美术创作',
  ART_MUSIC: '音乐表现',
  ART_CREATE: '美术创作',
  art_creativity: '艺术',
  ART_CREATIVITY: '艺术',
};

// 年级标签颜色配置
export const GRADE_TAG_COLORS: Record<string, { bg: string; text: string }> = {
  '小班': { bg: '#FFE4E8', text: '#E85A71' },
  '中班': { bg: '#E3F2FD', text: '#1976D2' },
  '大班': { bg: '#FFF8E1', text: '#F9A825' },
};

// 领域标签颜色配置
export const DOMAIN_TAG_COLORS: Record<string, { bg: string; text: string }> = {
  '语言': { bg: '#F3E5F5', text: '#8E24AA' },
  '倾听与表达': { bg: '#F3E5F5', text: '#8E24AA' },
  '早期阅读': { bg: '#EDE7F6', text: '#7B1FA2' },

  '科学': { bg: '#E8F5E9', text: '#43A047' },
  '科学探究': { bg: '#E8F5E9', text: '#43A047' },
  '数学认知': { bg: '#F1F8E9', text: '#558B2F' },

  '社会': { bg: '#E0F7FA', text: '#0097A7' },
  '人际交往': { bg: '#E0F7FA', text: '#0097A7' },
  '社会适应': { bg: '#E0F2F1', text: '#00695C' },

  '艺术': { bg: '#FFF3E0', text: '#FB8C00' },
  '音乐表现': { bg: '#FFF3E0', text: '#FB8C00' },
  '美术创作': { bg: '#FBE9E7', text: '#E64A19' },

  '健康': { bg: '#FFEBEE', text: '#E53935' },
  '身体动作发展': { bg: '#FFEBEE', text: '#E53935' },
  '生活习惯与能力': { bg: '#FFCDD2', text: '#C62828' },

  '数学': { bg: '#FFF8E1', text: '#F9A825' },
};

/**
 * 转换年级标签为中文
 */
export function translateGradeTag(tag: string): string {
  return GRADE_TAG_MAP[tag] || tag;
}

/**
 * 转换领域标签为中文
 */
export function translateDomainTag(tag: string): string {
  return DOMAIN_TAG_MAP[tag] || tag;
}

/**
 * 批量转换年级标签
 */
export function translateGradeTags(tags: string[]): string[] {
  return (tags || []).map(translateGradeTag);
}

/**
 * 批量转换领域标签
 */
export function translateDomainTags(tags: string[]): string[] {
  return (tags || []).map(translateDomainTag);
}

/**
 * 获取年级标签样式
 */
export function getGradeTagStyle(tag: string): { background: string; color: string; border: string } {
  const colors = GRADE_TAG_COLORS[tag] || { bg: '#F0F0F0', text: '#666' };
  return {
    background: colors.bg,
    color: colors.text,
    border: 'none',
  };
}

/**
 * 获取领域标签样式
 */
export function getDomainTagStyle(tag: string): { background: string; color: string; border: string } {
  const colors = DOMAIN_TAG_COLORS[tag] || { bg: '#F0F0F0', text: '#666' };
  return {
    background: colors.bg,
    color: colors.text,
    border: 'none',
  };
}

// ==================== 活动相关映射 ====================

// 活动类型映射（英文 → 中文）
export const ACTIVITY_TYPE_MAP: Record<string, string> = {
  // 大写格式
  HANDICRAFT: '手工活动',
  GAME: '游戏活动',
  MUSIC: '音乐活动',
  EXPLORATION: '探索活动',
  SPORTS: '运动活动',
  OUTDOOR: '户外活动',
  FAMILY: '家庭延伸',
  ART: '美工活动',
  OTHER: '其他',

  // 小写格式
  handicraft: '手工活动',
  game: '游戏活动',
  music: '音乐活动',
  exploration: '探索活动',
  sports: '运动活动',
  outdoor: '户外活动',
  family: '家庭延伸',
  art: '美工活动',
  other: '其他',

  // 其他格式
  class: '课堂活动',
};

// 活动类型颜色配置
export const ACTIVITY_TYPE_COLORS: Record<string, { bg: string; text: string }> = {
  '手工活动': { bg: '#F3E5F5', text: '#8E24AA' },
  '美工活动': { bg: '#F3E5F5', text: '#8E24AA' },
  '游戏活动': { bg: '#FFF3E0', text: '#FB8C00' },
  '音乐活动': { bg: '#E3F2FD', text: '#1976D2' },
  '运动活动': { bg: '#E8F5E9', text: '#43A047' },
  '探索活动': { bg: '#E0F7FA', text: '#0097A7' },
  '户外活动': { bg: '#F1F8E9', text: '#558B2F' },
  '亲子活动': { bg: '#FCE4EC', text: '#C2185B' },
  '家庭延伸': { bg: '#E3F2FD', text: '#1976D2' },
  '课堂活动': { bg: '#FFF8E1', text: '#F9A825' },
  '艺术活动': { bg: '#FBE9E7', text: '#E64A19' },
  '其他': { bg: '#F5F5F5', text: '#666666' },
};

/**
 * 转换活动类型为中文
 */
export function translateActivityType(type: string): string {
  return ACTIVITY_TYPE_MAP[type] || type;
}

/**
 * 获取活动类型样式
 */
export function getActivityTypeStyle(type: string): { background: string; color: string; border: string } {
  const colors = ACTIVITY_TYPE_COLORS[type] || { bg: '#F0F0F0', text: '#666' };
  return {
    background: colors.bg,
    color: colors.text,
    border: 'none',
  };
}

/**
 * 转换活动领域为中文（使用领域标签映射）
 */
export function translateActivityDomain(domain: string): string {
  return DOMAIN_TAG_MAP[domain] || domain;
}

// ==================== 教学流程步骤类型映射 ====================

// 步骤类型映射（英文 → 中文）
export const STEP_TYPE_MAP: Record<string, string> = {
  // 大写格式
  TEACHING: '教学',
  READING: '共读',
  DISCUSSION: '讨论',
  ACTIVITY: '活动',
  GAME: '游戏',
  SUMMARY: '总结',
  WARMUP: '热身',
  PRACTICE: '练习',
  INTERACTION: '互动',
  // 新增环节类型
  INTRODUCTION: '导入',
  CREATIVE: '创作',
  CUSTOM: '自定义',

  // 小写格式
  teaching: '教学',
  reading: '共读',
  discussion: '讨论',
  activity: '活动',
  game: '游戏',
  summary: '总结',
  warmup: '热身',
  practice: '练习',
  interaction: '互动',
  introduction: '导入',
  creative: '创作',
  custom: '自定义',
};

// 步骤类型颜色配置
export const STEP_TYPE_COLORS: Record<string, { bg: string; text: string }> = {
  '教学': { bg: '#E3F2FD', text: '#1976D2' },
  '共读': { bg: '#F3E5F5', text: '#8E24AA' },
  '阅读': { bg: '#F3E5F5', text: '#8E24AA' },
  '讨论': { bg: '#E0F7FA', text: '#0097A7' },
  '活动': { bg: '#FFF3E0', text: '#FB8C00' },
  '游戏': { bg: '#FCE4EC', text: '#C2185B' },
  '总结': { bg: '#E8F5E9', text: '#43A047' },
  '热身': { bg: '#FFF8E1', text: '#F9A825' },
  '练习': { bg: '#EDE7F6', text: '#673AB7' },
  '互动': { bg: '#FBE9E7', text: '#E64A19' },
  '导入': { bg: '#E8F5E9', text: '#4CAF50' },
  '创作': { bg: '#FCE4EC', text: '#E91E63' },
  '自定义': { bg: '#ECEFF1', text: '#607D8B' },
};

/**
 * 转换步骤类型为中文
 */
export function translateStepType(type: string): string {
  return STEP_TYPE_MAP[type] || type;
}

/**
 * 获取步骤类型样式
 */
export function getStepTypeStyle(type: string): { background: string; color: string; border: string } {
  const colors = STEP_TYPE_COLORS[type] || { bg: '#F0F0F0', text: '#666' };
  return {
    background: colors.bg,
    color: colors.text,
    border: 'none',
  };
}

// ==================== 课程状态映射 ====================

// 课程状态映射（英文 → 中文）
export const COURSE_STATUS_MAP: Record<string, string> = {
  DRAFT: '草稿',
  PENDING: '审核中',
  REJECTED: '已驳回',
  PUBLISHED: '已发布',
  ARCHIVED: '已下架',
  REVIEWING: '审核中',

  // 小写格式
  draft: '草稿',
  pending: '审核中',
  rejected: '已驳回',
  published: '已发布',
  archived: '已下架',
  reviewing: '审核中',
};

// 课程状态颜色配置
export const COURSE_STATUS_COLORS: Record<string, { bg: string; text: string }> = {
  '草稿': { bg: '#F5F5F5', text: '#666666' },
  '审核中': { bg: '#E3F2FD', text: '#1976D2' },
  '已驳回': { bg: '#FFEBEE', text: '#E53935' },
  '已发布': { bg: '#E8F5E9', text: '#43A047' },
  '已下架': { bg: '#FFF8E1', text: '#F9A825' },
};

/**
 * 转换课程状态为中文
 */
export function translateCourseStatus(status: string): string {
  return COURSE_STATUS_MAP[status] || status;
}

/**
 * 获取课程状态样式
 */
export function getCourseStatusStyle(status: string): { background: string; color: string; border: string } {
  const chineseStatus = COURSE_STATUS_MAP[status] || status;
  const colors = COURSE_STATUS_COLORS[chineseStatus] || { bg: '#F0F0F0', text: '#666' };
  return {
    background: colors.bg,
    color: colors.text,
    border: 'none',
  };
}

// ==================== 资源类型映射 ====================

// 资源类型映射
export const RESOURCE_TYPE_MAP: Record<string, string> = {
  EBOOK: '电子绘本',
  AUDIO: '音频',
  VIDEO: '视频',
  PPT: 'PPT课件',
  POSTER: '教学挂图',
  OTHER: '其他资源',
  IMAGE: '图片',

  // 已中文的不转换
  '电子绘本': '电子绘本',
  '音频': '音频',
  '视频': '视频',
  'PPT课件': 'PPT课件',
  '教学挂图': '教学挂图',
  '其他资源': '其他资源',
  '图片': '图片',
};

/**
 * 转换资源类型为中文
 */
export function translateResourceType(type: string): string {
  return RESOURCE_TYPE_MAP[type] || type;
}
