import request from "@/utils/request.js" export function getGroupCourseList(params = {}, options = {}) { return request.get('/groupCourse/list', params, options) } export function getGroupCoursePage(params = {}, options = { cache: true, cacheTime: 5 * 60 * 1000 }) { const { page = 0, size = 10, sort = 'id', order = 'asc', keyword } = params return request.post('/groupCourse/page', { page, size, sort, order, keyword }, options) } export function getGroupCourseById(id, options = { cache: true, cacheTime: 15 * 60 * 1000 }) { return request.get(`/groupCourse/${id}`, {}, options) } export function getGroupCourseDetail(id, options = { cache: true, cacheTime: 15 * 60 * 1000 }) { return request.get(`/groupCourse/${id}/detail`, {}, options) } export function createGroupCourse(params) { return request.post('/groupCourse', params) } export function updateGroupCourse(id, params) { return request.put(`/groupCourse/${id}`, params) } export function cancelGroupCourse(id) { return request.post(`/groupCourse/${id}/cancel`) } export function deleteGroupCourse(id) { return request.delete(`/groupCourse/${id}`) } export function getGroupCourseTypes(params = {}, options = { cache: true, cacheTime: 10 * 60 * 1000 }) { return request.get('/groupCourse/types', params, options) } export function getGroupCourseTypeById(id, options = { cache: true, cacheTime: 10 * 60 * 1000 }) { return request.get(`/groupCourse/types/${id}`, {}, options) } export function getTypeLabels(typeId, options = { cache: true, cacheTime: 5 * 60 * 1000 }) { return request.get(`/groupCourse/types/${typeId}/labels`, {}, options) } export function bookGroupCourse(params) { return request.post('/groupCourse/book', params) } export function cancelBooking(bookingId, params) { return request.post(`/groupCourse/booking/${bookingId}/cancel`, params) } export function getMemberBookings(memberId, options = {}) { return request.get(`/groupCourse/bookings/member/${memberId}`, {}, options) } export default { getGroupCourseList, getGroupCoursePage, getGroupCourseById, getGroupCourseDetail, createGroupCourse, updateGroupCourse, cancelGroupCourse, deleteGroupCourse, getGroupCourseTypes, getGroupCourseTypeById, getTypeLabels, bookGroupCourse, cancelBooking, getMemberBookings }