/**
 * 团队成员管理 API
 */
import request from '@/api/request'

/**
 * 团队统计数据
 */
export interface TeamStatistics {
  teamCount: number // 团队总人数
  activeMembers: number // 活跃成员数
  avgProgress: number // 平均学习进度
  avgScore: number // 团队平均分
}

/**
 * 团队成员信息
 */
export interface TeamMember {
  id: number
  name: string
  avatar: string
  position: string
  status: 'active' | 'learning' | 'rest' // 活跃、学习中、休息
  progress: number // 学习进度（0-100）
  completedCourses: number // 完成课程数
  totalCourses: number // 总课程数
  avgScore: number // 平均成绩
  studyTime: number // 学习时长（小时）
  lastActive: string // 最近活跃时间
  joinTime: string // 加入时间
  email: string
  phone: string
  passRate: number // 通过率
}

/**
 * 成员列表查询参数
 */
export interface MemberListParams {
  page: number
  size: number
  search_text?: string // 搜索姓名、岗位
  status?: 'active' | 'learning' | 'rest' // 筛选状态
  position?: string // 筛选岗位
}

/**
 * 成员详情
 */
export interface MemberDetail {
  id: number
  name: string
  avatar: string
  position: string
  status: string
  joinTime: string
  email: string
  phone: string
  studyTime: number
  completedCourses: number
  avgScore: number
  passRate: number
  recentRecords: Array<{
    id: string
    time: string
    content: string
    type: string
  }>
}

/**
 * 成员学习报告
 */
export interface MemberReport {
  overview: Array<{
    label: string
    value: string
    icon: string
    color: string
    bgColor: string
  }>
  progressTrend: {
    dates: string[]
    data: number[]
  }
  abilities: Array<{
    name: string
    score: number
    description: string
  }>
  records: Array<{
    date: string
    course: string
    duration: number
    score: number | null
    status: string
  }>
}

/**
 * 获取团队统计数据
 */
export function getTeamStatistics() {
  return request.get<TeamStatistics>('/api/v1/team/management/statistics')
}

/**
 * 获取团队成员列表
 */
export function getTeamMembers(params: MemberListParams) {
  return request.get<{
    items: TeamMember[]
    total: number
    page: number
    page_size: number
    pages: number
  }>('/api/v1/team/management/members', params)
}

/**
 * 获取成员详情
 */
export function getMemberDetail(memberId: number) {
  return request.get<MemberDetail>(`/api/v1/team/management/members/${memberId}/detail`)
}

/**
 * 获取成员学习报告
 */
export function getMemberReport(memberId: number) {
  return request.get<MemberReport>(`/api/v1/team/management/members/${memberId}/report`)
}

