import { http } from './index'; // ============= 类型定义 ============= /** 套餐信息 */ export interface CourseCollection { id: number; name: string; description?: string; packageCount: number; gradeLevels?: string[]; status: string; startDate?: string; endDate?: string; } /** 课程包中的课程项(用于提取课程配置) */ export interface CoursePackageCourseItem { id?: number; name?: string; lessonType?: string; } /** 课程包信息 */ export interface CoursePackage { id: number; name: string; description?: string; coverImagePath?: string; pictureBookName?: string; gradeTags: string[]; domainTags?: string[]; // 不再展示,由课程配置替代 courses?: CoursePackageCourseItem[]; // 用于课程配置展示 themeId?: number; themeName?: string; durationMinutes?: number; usageCount?: number; avgRating?: number; sortOrder?: number; } /** 筛选元数据 - 年级选项 */ export interface GradeOption { label: string; count: number; } /** 筛选元数据 - 课程配置选项 */ export interface LessonTypeOption { lessonType: string; name: string; count: number; } /** 筛选元数据响应 */ export interface FilterMetaResponse { grades: GradeOption[]; lessonTypes: LessonTypeOption[]; } // ============= API 接口 ============= /** * 获取租户的课程套餐列表 */ export function getCollections(): Promise { return http.get('/v1/school/packages'); } /** * 获取套餐下的课程包列表(支持筛选) */ export function getPackages( collectionId: number, params?: { grade?: string; lessonType?: string; keyword?: string; } ): Promise { return http.get(`/v1/school/packages/${collectionId}/packages`, { params, }); } /** * 获取套餐的筛选元数据 */ export function getFilterMeta(collectionId: number): Promise { return http.get(`/v1/school/packages/${collectionId}/filter-meta`); }