import { get, post, put, del } from './request'; // 课程类型定义 export interface CourseItem { id: number; userId: number; name: string; teacher?: string; location?: string; dayOfWeek: number; // 1-7 表示周一到周日 startTime: string; // 格式: "08:00:00" endTime: string; // 格式: "09:40:00" startWeek: number; // 开始周次 endWeek: number; // 结束周次 color?: string; // 颜色,如 "#4CAF50" status: number; // 状态(0-删除, 1-正常) createdAt: string; updatedAt: string; } // 日程类型定义 export interface ScheduleItem { id: number; userId: number; title: string; description?: string; startTime: string; // 格式: "2023-05-10T14:00:00" endTime: string; // 格式: "2023-05-10T16:00:00" location?: string; isAllDay: number; // 是否全天(0-否, 1-是) reminder?: number; // 提醒时间(分钟) color?: string; // 颜色,如 "#FF5722" status: number; // 状态(0-删除, 1-正常) createdAt: string; updatedAt: string; } export interface CreateCourseParams { name: string; teacher?: string; location?: string; dayOfWeek: number; startTime: string; endTime: string; startWeek: number; endWeek: number; color?: string; } export interface UpdateCourseParams extends Partial {} export interface CreateScheduleParams { title: string; description?: string; startTime: string; endTime: string; location?: string; isAllDay?: number; reminder?: number; color?: string; } export interface UpdateScheduleParams extends Partial {} export interface ConflictCheckResult { hasConflict: boolean; conflictCount: number; } // 课程表与日程管理API export default { // 课程相关API // 创建课程 createCourse(data: CreateCourseParams) { return post<{ code: number; data: { courseId: number } }>('/courses', data); }, // 获取课程详情 getCourseDetail(id: number) { return get<{ code: number; data: CourseItem }>(`/courses/${id}`); }, // 获取用户的所有课程 getAllCourses() { return get<{ code: number; data: { total: number; list: CourseItem[] } }>('/courses'); }, // 获取用户在指定星期几的课程 getCoursesByDay(dayOfWeek: number) { return get<{ code: number; data: { total: number; list: CourseItem[] } }>(`/courses/day/${dayOfWeek}`); }, // 更新课程 updateCourse(id: number, data: UpdateCourseParams) { return put<{ code: number; message: string }>(`/courses/${id}`, data); }, // 删除课程 deleteCourse(id: number) { return del<{ code: number; message: string }>(`/courses/${id}`); }, // 检查课程时间冲突 checkCourseConflict(params: { dayOfWeek: number; startTime: string; endTime: string; excludeCourseId?: number }) { return get<{ code: number; data: ConflictCheckResult }>('/courses/check-conflict', params); }, // 日程相关API // 创建日程 createSchedule(data: CreateScheduleParams) { return post<{ code: number; data: { scheduleId: number } }>('/schedules', data); }, // 获取日程详情 getScheduleDetail(id: number) { return get<{ code: number; data: ScheduleItem }>(`/schedules/${id}`); }, // 获取用户的所有日程 getAllSchedules() { return get<{ code: number; data: { total: number; list: ScheduleItem[] } }>('/schedules'); }, // 获取用户在指定时间范围内的日程 getSchedulesByRange(params: { startTime: string; endTime: string }) { return get<{ code: number; data: { total: number; list: ScheduleItem[] } }>('/schedules/range', params); }, // 更新日程 updateSchedule(id: number, data: UpdateScheduleParams) { return put<{ code: number; message: string }>(`/schedules/${id}`, data); }, // 删除日程 deleteSchedule(id: number) { return del<{ code: number; message: string }>(`/schedules/${id}`); }, // 检查日程时间冲突 checkScheduleConflict(params: { startTime: string; endTime: string; excludeScheduleId?: number }) { return get<{ code: number; data: ConflictCheckResult }>('/schedules/check-conflict', params); } };