/**
 * 团课管理API
 * 对应后端: /api/groupCourse/* 和 /api/coach/courses
 */

import request from '@/utils/request.js'

/**
 * 获取当前教练自己教授的团课列表（教练专属）
 * GET /api/coach/courses
 * JWT令牌中自动携带教练身份，后端返回该教练的所有团课
 */
export function getCoachCourses() {
	return request.get('/api/coach/courses')
}

/**
 * 获取所有团课列表
 * GET /api/groupCourse/list
 */
export function getCourseList(includeDeleted = false) {
	return request.get('/api/groupCourse/list', { includeDeleted })
}

/**
 * 分页获取团课
 * POST /api/groupCourse/page
 */
export function getCoursePage(params, includeDeleted = false) {
	return request.post('/api/groupCourse/page', params, { params: { includeDeleted } })
}

/**
 * 多条件搜索团课
 * POST /api/groupCourse/search
 */
export function searchCourses(params) {
	return request.post('/api/groupCourse/search', params)
}

/**
 * 根据ID获取团课详情
 * GET /api/groupCourse/{id}
 */
export function getCourseById(id) {
	return request.get(`/api/groupCourse/${id}`)
}

/**
 * 根据ID获取团课完整信息（含类型和标签）
 * GET /api/groupCourse/{id}/detail
 */
export function getCourseDetail(id) {
	return request.get(`/api/groupCourse/${id}/detail`)
}

/**
 * 获取团课类型列表
 * GET /api/groupCourse/types
 */
export function getCourseTypes() {
	return request.get('/api/groupCourse/types')
}

/**
 * 查询课程预约记录（教练查看自己团课的预约会员）
 * GET /api/groupCourse/bookings/course/{courseId}
 */
export function getBookingsByCourseId(courseId) {
	return request.get(`/api/groupCourse/bookings/course/${courseId}`)
}

/**
 * 教练开课
 * POST /api/groupCourse/{id}/start
 * body: { actualStartTime: 'yyyy-MM-ddTHH:mm:ss' }
 */
export function startCourse(id, actualStartTime) {
	return request.post(`/api/groupCourse/${id}/start`, { actualStartTime })
}

/**
 * 教练结课
 * POST /api/groupCourse/{id}/end
 * body: { actualEndTime: 'yyyy-MM-ddTHH:mm:ss' }
 */
export function endCourse(id, actualEndTime) {
	return request.post(`/api/groupCourse/${id}/end`, { actualEndTime })
}
