import type { ICourse, ICourseChapter, ICourseResource } from "~/types"; import type { IResponse } from "."; export interface ICourseTeamMember { id: number; teacherId: number; courseId: number; teacher: ITeacher; createTime: Date; updateTime: Date; createBy: Date; updateBy: number; remark: string | null; } export interface ITeacher { id: number; userName: string; employeeId: string; schoolId: number; collegeId: number; sex: number; email: string; phonenumber: string; avatar: string; status: number; delFlag: number; loginIp: string; loginDate: Date; createBy: number; createTime: Date; updateBy: number; updateTime: Date; remark: string | null; } export const listCourses = async () => { return await http< IResponse<{ rows: ICourse[]; }> >("/system/manage/list", { method: "GET", }); }; export const listUserCourses = async (userId: number) => { return await http< IResponse<{ rows: ICourse[]; }> >(`/system/manage/leader/${userId}`, { method: "GET", }); }; export const getCourseDetail = async (courseId: string) => { return await http< IResponse<{ data: ICourse; }> >(`/system/manage/${courseId}`, { method: "GET", }); }; export const createCourse = async ( params: Pick< ICourse, | "courseName" | "profile" | "schoolName" | "teacherName" | "semester" | "previewUrl" > ) => { return await http(`/system/manage`, { method: "POST", body: params, }); }; export const deleteCourse = async (courseId: number) => { return await http(`/system/manage/${courseId}`, { method: "DELETE", }); }; export const getCourseChatpers = async (courseId: number) => { return await http< IResponse<{ total: number; rows: ICourseChapter[]; }> >(`/system/chapter/details/${courseId}`, { method: "GET", }); }; export const createCourseChatper = async (params: { courseId: number; title: string; }) => { return await http(`/system/chapter`, { method: "POST", body: params, }); }; export const deleteCourseChatper = async (chapterId: number) => { return await http(`/system/chapter/${chapterId}`, { method: "DELETE", }); }; export const createCourseSection = async (params: { chapterId: number; title: string; }) => { return await http(`/system/section`, { method: "POST", body: params, }); }; export const deleteCourseSection = async (sectionId: number) => { return await http(`/system/section/${sectionId}`, { method: "DELETE", }); }; export const createCourseResource = async (params: ICourseResource) => { return await http(`/system/resource`, { method: "POST", body: params, }); }; export const deleteCourseResource = async (resourceId: number) => { return await http(`/system/resource/${resourceId}`, { method: "DELETE", }); }; export const getTeacherTeamByCourse = async (courseId: number) => { return await http< IResponse<{ data: ICourseTeamMember[]; }> >(`/system/teacherteam/course/${courseId}`, { method: "GET", }); };