fix: orval API 生成优化 - 修复 oneOf schema 验证错误

- 新增 scripts/fetch-openapi.js:拉取并修复 OpenAPI 文档
- 内联 ResultObject[] 的 \,移除非法 schema 名
- orval 使用本地 openapi.json,api:update 自动执行 api:fetch
- AdminStatsController: Result<Object[]> 改为 Result<List<Map<String, Object>>>
- .gitignore: 忽略 openapi.json

Made-with: Cursor
This commit is contained in:
zhonghua 2026-03-16 10:45:15 +08:00
parent 938503f2b8
commit a461f58d3a
146 changed files with 4350 additions and 1000 deletions

5
.gitignore vendored
View File

@ -35,4 +35,7 @@ package-lock.json
stats.html
*.class
target/
target/
# 前端生成的 OpenAPI 文档(由 api:fetch 生成)
reading-platform-frontend/openapi.json

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,15 @@
import { defineConfig } from 'orval';
/** 内联 schema避免 ResultObject[] 的 $ref 导致 oneOf 验证错误 */
const RESULT_OBJECT_ARRAY_SCHEMA = {
type: 'object',
properties: {
code: { type: 'integer', format: 'int32' },
message: { type: 'string' },
data: { type: 'array', items: { type: 'object', additionalProperties: true } },
},
};
export default defineConfig({
readingPlatform: {
output: {
@ -24,21 +34,33 @@ export default defineConfig({
},
},
input: {
// 从 Java 后端 OpenAPI 文档生成
target: 'http://localhost:8080/v3/api-docs',
// 使用 api:fetch 生成的 openapi.jsonapi:update 会自动先执行 api:fetch
target: './openapi.json',
// 路径重写:确保 OpenAPI 文档中的路径正确
override: {
// 使用转换器修复路径 - 将 `/api/xxx` 转换为 `/api/v1/xxx`
transformer: (openAPIObject) => {
// 遍历所有路径,修复缺少的 `/v1` 前缀
Object.keys(openAPIObject.paths).forEach((path) => {
const newKey = path.replace(/^\/api\//, '/api/v1/');
transformer: (spec) => {
const paths = spec.paths || {};
for (const path of Object.keys(paths)) {
let newKey = path.replace(/\/v1\/v1\//g, '/v1/');
if (newKey === path) newKey = path.replace(/^\/api\/(?!v1\/)/, '/api/v1/');
if (newKey !== path) {
openAPIObject.paths[newKey] = openAPIObject.paths[path];
delete openAPIObject.paths[path];
paths[newKey] = paths[path];
delete paths[path];
}
});
return openAPIObject;
}
for (const pathObj of Object.values(paths)) {
for (const op of Object.values(pathObj)) {
const content = op?.responses?.['200']?.content;
if (!content) continue;
for (const media of Object.values(content)) {
if (media?.schema?.['$ref']?.endsWith('ResultObject[]')) {
media.schema = { ...RESULT_OBJECT_ARRAY_SCHEMA };
}
}
}
}
return spec;
},
},
},

View File

@ -11,7 +11,8 @@
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"test:e2e:headed": "playwright test --headed",
"api:update": "orval",
"api:fetch": "node scripts/fetch-openapi.js",
"api:update": "npm run api:fetch && orval",
"api:watch": "orval --watch"
},
"dependencies": {

View File

@ -0,0 +1,89 @@
/**
* 拉取 OpenAPI 文档并修复 SpringDoc 生成的 oneOf schema 问题
* 解决 orval 报错: "oneOf must match exactly one schema in oneOf"
*/
import { writeFileSync } from 'fs';
import { join, dirname } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const TARGET = 'http://localhost:8080/v3/api-docs';
const OUTPUT = join(__dirname, '../openapi.json');
async function fetchAndFix() {
const res = await fetch(TARGET);
if (!res.ok) throw new Error(`Failed to fetch: ${res.status} ${res.statusText}. 请确保后端已启动 (mvn spring-boot:run)`);
let spec = await res.json();
const paths = spec.paths || {};
for (const path of Object.keys(paths)) {
let newKey = path.replace(/\/v1\/v1\//g, '/v1/');
if (newKey === path) newKey = path.replace(/^\/api\/(?!v1\/)/, '/api/v1/');
if (newKey !== path) {
paths[newKey] = paths[path];
delete paths[path];
}
}
fixOneOfInPaths(paths);
inlineResultObjectArrayRef(paths);
// 移除非法 schema 名 ResultObject[](含 [] 不符合 OpenAPI 规范)
if (spec.components?.schemas) {
delete spec.components.schemas['ResultObject[]'];
}
writeFileSync(OUTPUT, JSON.stringify(spec, null, 2));
console.log('OpenAPI spec written to:', OUTPUT);
}
function fixOneOfInPaths(paths) {
for (const pathObj of Object.values(paths)) {
for (const op of Object.values(pathObj)) {
const res200 = op?.responses?.['200'];
if (!res200?.content) continue;
for (const media of Object.values(res200.content)) {
if (media?.schema) fixSchema(media.schema);
}
}
}
}
function fixSchema(schema) {
if (!schema || typeof schema !== 'object') return;
if (schema.oneOf && Array.isArray(schema.oneOf)) {
schema.type = 'array';
schema.items = { type: 'object', additionalProperties: true };
delete schema.oneOf;
}
if (schema.properties) {
for (const p of Object.values(schema.properties)) fixSchema(p);
}
if (schema.items) fixSchema(schema.items);
}
function inlineResultObjectArrayRef(paths) {
const inlineSchema = {
type: 'object',
properties: {
code: { type: 'integer', format: 'int32' },
message: { type: 'string' },
data: { type: 'array', items: { type: 'object', additionalProperties: true } },
},
};
for (const pathObj of Object.values(paths)) {
for (const op of Object.values(pathObj)) {
const res200 = op?.responses?.['200'];
if (!res200?.content) continue;
for (const media of Object.values(res200.content)) {
if (media?.schema?.['$ref']?.endsWith('ResultObject[]')) {
media.schema = { ...inlineSchema };
}
}
}
}
}
fetchAndFix().catch((e) => {
console.error(e);
process.exit(1);
});

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type BatchCreateSchedulesBody = {[key: string]: { [key: string]: unknown }};

View File

@ -7,15 +7,15 @@
*/
/**
* Class Create Request
*
*/
export interface ClassCreateRequest {
/** Class name */
/** 班级名称 */
name: string;
/** Grade */
/** 年级 */
grade?: string;
/** Description */
/** 描述 */
description?: string;
/** Capacity */
/** 容量 */
capacity?: number;
}

View File

@ -0,0 +1,31 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface ClassResponse {
/** ID */
id?: number;
/** 租户 ID */
tenantId?: number;
/** 班级名称 */
name?: string;
/** 年级 */
grade?: string;
/** 描述 */
description?: string;
/** 容量 */
capacity?: number;
/** 状态 */
status?: string;
/** 创建时间 */
createdAt?: string;
/** 更新时间 */
updatedAt?: string;
}

View File

@ -0,0 +1,23 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface ClassTeacherResponse {
/** ID */
id?: number;
/** 班级 ID */
classId?: number;
/** 教师 ID */
teacherId?: number;
/** 角色 */
role?: string;
/** 创建时间 */
createdAt?: string;
}

View File

@ -7,17 +7,17 @@
*/
/**
* Class Update Request
*
*/
export interface ClassUpdateRequest {
/** Class name */
/** 班级名称 */
name?: string;
/** Grade */
/** 年级 */
grade?: string;
/** Description */
/** 描述 */
description?: string;
/** Capacity */
/** 容量 */
capacity?: number;
/** Status */
/** 状态 */
status?: string;
}

View File

@ -6,64 +6,126 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface Course {
/** 主键 ID */
id?: number;
tenantId?: number;
name?: string;
code?: string;
description?: string;
coverUrl?: string;
category?: string;
ageRange?: string;
difficultyLevel?: string;
durationMinutes?: number;
objectives?: string;
status?: string;
isSystem?: number;
coreContent?: string;
introSummary?: string;
introHighlights?: string;
introGoals?: string;
introSchedule?: string;
introKeyPoints?: string;
introMethods?: string;
introEvaluation?: string;
introNotes?: string;
scheduleRefData?: string;
environmentConstruction?: string;
themeId?: number;
pictureBookName?: string;
coverImagePath?: string;
ebookPaths?: string;
audioPaths?: string;
videoPaths?: string;
otherResources?: string;
pptPath?: string;
pptName?: string;
posterPaths?: string;
tools?: string;
studentMaterials?: string;
lessonPlanData?: string;
activitiesData?: string;
assessmentData?: string;
gradeTags?: string;
domainTags?: string;
hasCollectiveLesson?: number;
version?: string;
parentId?: number;
isLatest?: number;
submittedAt?: string;
submittedBy?: number;
reviewedAt?: string;
reviewedBy?: number;
reviewComment?: string;
reviewChecklist?: string;
publishedAt?: string;
usageCount?: number;
teacherCount?: number;
avgRating?: number;
createdBy?: number;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
deleted?: number;
/** 租户 ID */
tenantId?: number;
/** 课程名称 */
name?: string;
/** 课程编码 */
code?: string;
/** 课程描述 */
description?: string;
/** 封面 URL */
coverUrl?: string;
/** 课程类别 */
category?: string;
/** 适用年龄范围 */
ageRange?: string;
/** 难度等级 */
difficultyLevel?: string;
/** 课程时长(分钟) */
durationMinutes?: number;
/** 课程目标 */
objectives?: string;
/** 状态 */
status?: string;
/** 是否系统课程 */
isSystem?: number;
/** 核心内容 */
coreContent?: string;
/** 课程介绍 - 概要 */
introSummary?: string;
/** 课程介绍 - 亮点 */
introHighlights?: string;
/** 课程介绍 - 目标 */
introGoals?: string;
/** 课程介绍 - 进度安排 */
introSchedule?: string;
/** 课程介绍 - 重点 */
introKeyPoints?: string;
/** 课程介绍 - 方法 */
introMethods?: string;
/** 课程介绍 - 评估 */
introEvaluation?: string;
/** 课程介绍 - 注意事项 */
introNotes?: string;
/** 进度计划参考数据JSON */
scheduleRefData?: string;
/** 环境创设(步骤 7 */
environmentConstruction?: string;
/** 主题 ID */
themeId?: number;
/** 绘本名称 */
pictureBookName?: string;
/** 封面图片路径 */
coverImagePath?: string;
/** 电子绘本路径JSON 数组) */
ebookPaths?: string;
/** 音频资源路径JSON 数组) */
audioPaths?: string;
/** 视频资源路径JSON 数组) */
videoPaths?: string;
/** 其他资源JSON 数组) */
otherResources?: string;
/** PPT 课件路径 */
pptPath?: string;
/** PPT 课件名称 */
pptName?: string;
/** 海报图片路径 */
posterPaths?: string;
/** 教学工具 */
tools?: string;
/** 学生材料 */
studentMaterials?: string;
/** 教案数据JSON */
lessonPlanData?: string;
/** 活动数据JSON */
activitiesData?: string;
/** 评估数据JSON */
assessmentData?: string;
/** 年级标签JSON 数组) */
gradeTags?: string;
/** 领域标签JSON 数组) */
domainTags?: string;
/** 是否有集体课 */
hasCollectiveLesson?: number;
/** 版本号 */
version?: string;
/** 父版本 ID */
parentId?: number;
/** 是否最新版本 */
isLatest?: number;
/** 提交时间 */
submittedAt?: string;
/** 提交人 ID */
submittedBy?: number;
/** 审核时间 */
reviewedAt?: string;
/** 审核人 ID */
reviewedBy?: number;
/** 审核意见 */
reviewComment?: string;
/** 审核检查清单 */
reviewChecklist?: string;
/** 发布时间 */
publishedAt?: string;
/** 使用次数 */
usageCount?: number;
/** 教师数量 */
teacherCount?: number;
/** 平均评分 */
avgRating?: number;
}

View File

@ -7,83 +7,83 @@
*/
/**
* Course Create Request
*
*/
export interface CourseCreateRequest {
/** Course name */
/** 课程名称 */
name: string;
/** Course code */
/** 课程编码 */
code?: string;
/** Description */
/** 描述 */
description?: string;
/** Cover URL */
/** 封面 URL */
coverUrl?: string;
/** Cover image path */
/** 封面图片路径 */
coverImagePath?: string;
/** Category */
/** 分类 */
category?: string;
/** Age range */
/** 年龄范围 */
ageRange?: string;
/** Difficulty level */
/** 难度等级 */
difficultyLevel?: string;
/** Duration in minutes */
/** 时长(分钟) */
durationMinutes?: number;
/** Objectives */
/** 教学目标 */
objectives?: string;
/** Core content */
/** 核心内容 */
coreContent?: string;
/** Course summary */
/** 课程摘要 */
introSummary?: string;
/** Course highlights */
/** 课程亮点 */
introHighlights?: string;
/** Course goals */
/** 课程目标 */
introGoals?: string;
/** Content schedule */
/** 内容安排 */
introSchedule?: string;
/** Key points and difficulties */
/** 重点难点 */
introKeyPoints?: string;
/** Teaching methods */
/** 教学方法 */
introMethods?: string;
/** Evaluation methods */
/** 评估方法 */
introEvaluation?: string;
/** Notes and precautions */
/** 注意事项 */
introNotes?: string;
/** Schedule reference data (JSON) */
/** 进度安排参考数据JSON */
scheduleRefData?: string;
/** Environment construction content */
/** 环境创设内容 */
environmentConstruction?: string;
/** Theme ID */
/** 主题 ID */
themeId?: number;
/** Picture book name */
/** 绘本名称 */
pictureBookName?: string;
/** Ebook paths (JSON array) */
/** 电子书路径JSON 数组) */
ebookPaths?: string;
/** Audio paths (JSON array) */
/** 音频路径JSON 数组) */
audioPaths?: string;
/** Video paths (JSON array) */
/** 视频路径JSON 数组) */
videoPaths?: string;
/** Other resources (JSON array) */
/** 其他资源JSON 数组) */
otherResources?: string;
/** PPT file path */
/** PPT 文件路径 */
pptPath?: string;
/** PPT file name */
/** PPT 文件名称 */
pptName?: string;
/** Poster paths (JSON array) */
/** 海报路径JSON 数组) */
posterPaths?: string;
/** Teaching tools (JSON array) */
/** 教学工具JSON 数组) */
tools?: string;
/** Student materials */
/** 学生材料 */
studentMaterials?: string;
/** Lesson plan data (JSON) */
/** 教案数据JSON */
lessonPlanData?: string;
/** Activities data (JSON) */
/** 活动数据JSON */
activitiesData?: string;
/** Assessment data (JSON) */
/** 评估数据JSON */
assessmentData?: string;
/** Grade tags (JSON array) */
/** 年级标签JSON 数组) */
gradeTags?: string;
/** Domain tags (JSON array) */
/** 领域标签JSON 数组) */
domainTags?: string;
/** Has collective lesson */
/** 是否有集体课 */
hasCollectiveLesson?: boolean;
}

View File

@ -6,26 +6,54 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface CourseLesson {
/** 主键 ID */
id?: number;
courseId?: number;
lessonType?: string;
name?: string;
description?: string;
duration?: number;
videoPath?: string;
videoName?: string;
pptPath?: string;
pptName?: string;
pdfPath?: string;
pdfName?: string;
objectives?: string;
preparation?: string;
extension?: string;
reflection?: string;
assessmentData?: string;
useTemplate?: boolean;
sortOrder?: number;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
/** 课程 ID */
courseId?: number;
/** 课程类型INTRODUCTION、LANGUAGE、SOCIETY、SCIENCE、ART、HEALTH */
lessonType?: string;
/** 课程名称 */
name?: string;
/** 课程描述 */
description?: string;
/** 时长(分钟) */
duration?: number;
/** 视频路径 */
videoPath?: string;
/** 视频名称 */
videoName?: string;
/** PPT 路径 */
pptPath?: string;
/** PPT 名称 */
pptName?: string;
/** PDF 路径 */
pdfPath?: string;
/** PDF 名称 */
pdfName?: string;
/** 教学目标 */
objectives?: string;
/** 教学准备 */
preparation?: string;
/** 教学延伸 */
extension?: string;
/** 教学反思 */
reflection?: string;
/** 评测数据JSON */
assessmentData?: string;
/** 是否使用模板 */
useTemplate?: boolean;
/** 排序号 */
sortOrder?: number;
}

View File

@ -22,13 +22,13 @@ export interface CourseLessonCreateRequest {
videoPath?: string;
/** 视频名称 */
videoName?: string;
/** PPT路径 */
/** PPT 路径 */
pptPath?: string;
/** PPT名称 */
/** PPT 名称 */
pptName?: string;
/** PDF路径 */
/** PDF 路径 */
pdfPath?: string;
/** PDF名称 */
/** PDF 名称 */
pdfName?: string;
/** 教学目标 */
objectives?: string;

View File

@ -6,22 +6,46 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface CoursePackage {
/** 主键 ID */
id?: number;
name?: string;
description?: string;
price?: number;
discountPrice?: number;
discountType?: string;
gradeLevels?: string;
courseCount?: number;
status?: string;
submittedAt?: string;
submittedBy?: number;
reviewedAt?: string;
reviewedBy?: number;
reviewComment?: string;
publishedAt?: string;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
/** 套餐名称 */
name?: string;
/** 套餐描述 */
description?: string;
/** 价格(分) */
price?: number;
/** 折后价格(分) */
discountPrice?: number;
/** 折扣类型PERCENTAGE、FIXED */
discountType?: string;
/** 适用年级JSON 数组) */
gradeLevels?: string;
/** 课程数量 */
courseCount?: number;
/** 状态DRAFT、PENDING_REVIEW、APPROVED、REJECTED、PUBLISHED、OFFLINE */
status?: string;
/** 提交时间 */
submittedAt?: string;
/** 提交人 ID */
submittedBy?: number;
/** 审核时间 */
reviewedAt?: string;
/** 审核人 ID */
reviewedBy?: number;
/** 审核意见 */
reviewComment?: string;
/** 发布时间 */
publishedAt?: string;
}

View File

@ -0,0 +1,129 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface CourseResponse {
/** ID */
id?: number;
/** 租户 ID */
tenantId?: number;
/** 课程名称 */
name?: string;
/** 课程编码 */
code?: string;
/** 描述 */
description?: string;
/** 封面 URL */
coverUrl?: string;
/** 分类 */
category?: string;
/** 年龄范围 */
ageRange?: string;
/** 难度等级 */
difficultyLevel?: string;
/** 时长(分钟) */
durationMinutes?: number;
/** 教学目标 */
objectives?: string;
/** 状态 */
status?: string;
/** 是否系统课程 */
isSystem?: number;
/** 核心内容 */
coreContent?: string;
/** 课程摘要 */
introSummary?: string;
/** 课程亮点 */
introHighlights?: string;
/** 课程目标 */
introGoals?: string;
/** 内容安排 */
introSchedule?: string;
/** 重点难点 */
introKeyPoints?: string;
/** 教学方法 */
introMethods?: string;
/** 评估方法 */
introEvaluation?: string;
/** 注意事项 */
introNotes?: string;
/** 进度安排参考数据 */
scheduleRefData?: string;
/** 环境创设内容 */
environmentConstruction?: string;
/** 主题 ID */
themeId?: number;
/** 绘本名称 */
pictureBookName?: string;
/** 封面图片路径 */
coverImagePath?: string;
/** 电子书路径 */
ebookPaths?: string;
/** 音频路径 */
audioPaths?: string;
/** 视频路径 */
videoPaths?: string;
/** 其他资源 */
otherResources?: string;
/** PPT 文件路径 */
pptPath?: string;
/** PPT 文件名称 */
pptName?: string;
/** 海报路径 */
posterPaths?: string;
/** 教学工具 */
tools?: string;
/** 学生材料 */
studentMaterials?: string;
/** 教案数据 */
lessonPlanData?: string;
/** 活动数据 */
activitiesData?: string;
/** 评估数据 */
assessmentData?: string;
/** 年级标签 */
gradeTags?: string;
/** 领域标签 */
domainTags?: string;
/** 是否有集体课 */
hasCollectiveLesson?: number;
/** 版本号 */
version?: string;
/** 父课程 ID */
parentId?: number;
/** 是否最新版本 */
isLatest?: number;
/** 提交时间 */
submittedAt?: string;
/** 提交人 ID */
submittedBy?: number;
/** 审核时间 */
reviewedAt?: string;
/** 审核人 ID */
reviewedBy?: number;
/** 审核意见 */
reviewComment?: string;
/** 审核清单 */
reviewChecklist?: string;
/** 发布时间 */
publishedAt?: string;
/** 使用次数 */
usageCount?: number;
/** 教师数量 */
teacherCount?: number;
/** 平均评分 */
avgRating?: number;
/** 创建人 ID */
createdBy?: number;
/** 创建时间 */
createdAt?: string;
/** 更新时间 */
updatedAt?: string;
}

View File

@ -7,85 +7,85 @@
*/
/**
* Course Update Request
*
*/
export interface CourseUpdateRequest {
/** Course name */
/** 课程名称 */
name?: string;
/** Course code */
/** 课程编码 */
code?: string;
/** Description */
/** 描述 */
description?: string;
/** Cover URL */
/** 封面 URL */
coverUrl?: string;
/** Cover image path */
/** 封面图片路径 */
coverImagePath?: string;
/** Category */
/** 分类 */
category?: string;
/** Age range */
/** 年龄范围 */
ageRange?: string;
/** Difficulty level */
/** 难度等级 */
difficultyLevel?: string;
/** Duration in minutes */
/** 时长(分钟) */
durationMinutes?: number;
/** Objectives */
/** 教学目标 */
objectives?: string;
/** Status */
/** 状态 */
status?: string;
/** Core content */
/** 核心内容 */
coreContent?: string;
/** Course summary */
/** 课程摘要 */
introSummary?: string;
/** Course highlights */
/** 课程亮点 */
introHighlights?: string;
/** Course goals */
/** 课程目标 */
introGoals?: string;
/** Content schedule */
/** 内容安排 */
introSchedule?: string;
/** Key points and difficulties */
/** 重点难点 */
introKeyPoints?: string;
/** Teaching methods */
/** 教学方法 */
introMethods?: string;
/** Evaluation methods */
/** 评估方法 */
introEvaluation?: string;
/** Notes and precautions */
/** 注意事项 */
introNotes?: string;
/** Schedule reference data (JSON) */
/** 进度安排参考数据JSON */
scheduleRefData?: string;
/** Environment construction content */
/** 环境创设内容 */
environmentConstruction?: string;
/** Theme ID */
/** 主题 ID */
themeId?: number;
/** Picture book name */
/** 绘本名称 */
pictureBookName?: string;
/** Ebook paths (JSON array) */
/** 电子书路径JSON 数组) */
ebookPaths?: string;
/** Audio paths (JSON array) */
/** 音频路径JSON 数组) */
audioPaths?: string;
/** Video paths (JSON array) */
/** 视频路径JSON 数组) */
videoPaths?: string;
/** Other resources (JSON array) */
/** 其他资源JSON 数组) */
otherResources?: string;
/** PPT file path */
/** PPT 文件路径 */
pptPath?: string;
/** PPT file name */
/** PPT 文件名称 */
pptName?: string;
/** Poster paths (JSON array) */
/** 海报路径JSON 数组) */
posterPaths?: string;
/** Teaching tools (JSON array) */
/** 教学工具JSON 数组) */
tools?: string;
/** Student materials */
/** 学生材料 */
studentMaterials?: string;
/** Lesson plan data (JSON) */
/** 教案数据JSON */
lessonPlanData?: string;
/** Activities data (JSON) */
/** 活动数据JSON */
activitiesData?: string;
/** Assessment data (JSON) */
/** 评估数据JSON */
assessmentData?: string;
/** Grade tags (JSON array) */
/** 年级标签JSON 数组) */
gradeTags?: string;
/** Domain tags (JSON array) */
/** 领域标签JSON 数组) */
domainTags?: string;
/** Has collective lesson */
/** 是否有集体课 */
hasCollectiveLesson?: boolean;
}

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type CreateFromTemplateBody = {[key: string]: { [key: string]: unknown }};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type CreateSchedule1Body = {[key: string]: { [key: string]: unknown }};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type CreateScheduleBody = {[key: string]: { [key: string]: unknown }};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type CreateTemplate1Body = {[key: string]: { [key: string]: unknown }};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type CreateTemplateBody = {[key: string]: { [key: string]: unknown }};

View File

@ -0,0 +1,11 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type ExportGrowthRecordsParams = {
studentId?: number;
};

View File

@ -0,0 +1,12 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type ExportLessonsParams = {
startDate?: string;
endDate?: string;
};

View File

@ -8,6 +8,6 @@
export type FindAll1Params = {
status?: string;
page?: number;
pageNum?: number;
pageSize?: number;
};

View File

@ -10,6 +10,6 @@ export type FindAllItemsParams = {
libraryId?: string;
fileType?: string;
keyword?: string;
page?: number;
pageNum?: number;
pageSize?: number;
};

View File

@ -9,6 +9,6 @@
export type FindAllLibrariesParams = {
libraryType?: string;
keyword?: string;
page?: number;
pageNum?: number;
pageSize?: number;
};

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { GetActiveTenants200DataItem } from './getActiveTenants200DataItem';
export type GetActiveTenants200 = {
code?: number;
message?: string;
data?: GetActiveTenants200DataItem[];
};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetActiveTenants200DataItem = { [key: string]: unknown };

View File

@ -0,0 +1,11 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetActiveTenantsParams = {
limit?: number;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetAllStudentsParams = {
pageNum?: number;
pageSize?: number;
keyword?: string;
};

View File

@ -0,0 +1,12 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetClassStudents1Params = {
pageNum?: number;
pageSize?: number;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetClassStudentsParams = {
pageNum?: number;
pageSize?: number;
keyword?: string;
};

View File

@ -0,0 +1,15 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetFeedbacks1Params = {
pageNum?: number;
pageSize?: number;
teacherId?: number;
courseId?: number;
keyword?: string;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetFeedbacksParams = {
pageNum?: number;
pageSize?: number;
type?: string;
};

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetLogListParams = {
pageNum?: number;
pageSize?: number;
module?: string;
operator?: string;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetMyTasksParams = {
pageNum?: number;
pageSize?: number;
status?: string;
};

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { GetPopularCourses200DataItem } from './getPopularCourses200DataItem';
export type GetPopularCourses200 = {
code?: number;
message?: string;
data?: GetPopularCourses200DataItem[];
};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetPopularCourses200DataItem = { [key: string]: unknown };

View File

@ -0,0 +1,11 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetPopularCoursesParams = {
limit?: number;
};

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { GetRecentActivities1200DataItem } from './getRecentActivities1200DataItem';
export type GetRecentActivities1200 = {
code?: number;
message?: string;
data?: GetRecentActivities1200DataItem[];
};

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetRecentActivities1200DataItem = { [key: string]: unknown };

View File

@ -0,0 +1,11 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetRecentActivities1Params = {
limit?: number;
};

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetSchedules1Params = {
startDate?: string;
endDate?: string;
classId?: number;
teacherId?: number;
};

View File

@ -0,0 +1,12 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetSchedulesParams = {
startDate?: string;
endDate?: string;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetTemplates1Params = {
pageNum?: number;
pageSize?: number;
type?: string;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetTemplatesParams = {
pageNum?: number;
pageSize?: number;
type?: string;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetTimetable1Params = {
classId?: number;
startDate?: string;
endDate?: string;
};

View File

@ -0,0 +1,12 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type GetTimetableParams = {
startDate?: string;
endDate?: string;
};

View File

@ -0,0 +1,13 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export interface GrantRequest {
tenantId?: number;
endDate?: string;
pricePaid?: number;
}

View File

@ -6,19 +6,38 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface GrowthRecord {
/** 主键 ID */
id?: number;
tenantId?: number;
studentId?: number;
type?: string;
title?: string;
content?: string;
images?: string;
recordedBy?: number;
recorderRole?: string;
recordDate?: string;
tags?: string;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
deleted?: number;
/** 租户 ID */
tenantId?: number;
/** 学生 ID */
studentId?: number;
/** 记录类型 */
type?: string;
/** 记录标题 */
title?: string;
/** 记录内容 */
content?: string;
/** 图片JSON 数组) */
images?: string;
/** 记录人 ID */
recordedBy?: number;
/** 记录人角色 */
recorderRole?: string;
/** 记录日期 */
recordDate?: string;
/** 标签JSON 数组) */
tags?: string;
}

View File

@ -7,21 +7,21 @@
*/
/**
* Growth Record Create Request
*
*/
export interface GrowthRecordCreateRequest {
/** Student ID */
/** 学生 ID */
studentId: number;
/** Type: reading, behavior, achievement, milestone */
/** 类型reading-阅读behavior-行为achievement-成就milestone-里程碑 */
type: string;
/** Title */
/** 标题 */
title: string;
/** Content */
/** 内容 */
content?: string;
/** Images (JSON array) */
/** 图片JSON 数组) */
images?: string;
/** Record date */
/** 记录日期 */
recordDate?: string;
/** Tags */
/** 标签 */
tags?: string[];
}

View File

@ -0,0 +1,39 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface GrowthRecordResponse {
/** ID */
id?: number;
/** 租户 ID */
tenantId?: number;
/** 学生 ID */
studentId?: number;
/** 类型 */
type?: string;
/** 标题 */
title?: string;
/** 内容 */
content?: string;
/** 图片 */
images?: string;
/** 记录人 ID */
recordedBy?: number;
/** 记录人角色 */
recorderRole?: string;
/** 记录日期 */
recordDate?: string;
/** 标签 */
tags?: string;
/** 创建时间 */
createdAt?: string;
/** 更新时间 */
updatedAt?: string;
}

View File

@ -7,19 +7,19 @@
*/
/**
* Growth Record Update Request
*
*/
export interface GrowthRecordUpdateRequest {
/** Type */
/** 类型 */
type?: string;
/** Title */
/** 标题 */
title?: string;
/** Content */
/** 内容 */
content?: string;
/** Images (JSON array) */
/** 图片JSON 数组) */
images?: string;
/** Record date */
/** 记录日期 */
recordDate?: string;
/** Tags */
/** 标签 */
tags?: string[];
}

View File

@ -12,11 +12,14 @@ export * from './adminStatsControllerGetPopularCoursesParams';
export * from './adminStatsControllerGetRecentActivitiesParams';
export * from './approveCourseDto';
export * from './approveCourseDtoChecklist';
export * from './batchCreateSchedulesBody';
export * from './batchStudentRecordsDto';
export * from './batchStudentRecordsDtoRecordsItem';
export * from './bindStudentParams';
export * from './changePasswordParams';
export * from './classCreateRequest';
export * from './classResponse';
export * from './classTeacherResponse';
export * from './classUpdateRequest';
export * from './clazz';
export * from './completeTaskParams';
@ -28,22 +31,28 @@ export * from './courseLesson';
export * from './courseLessonCreateRequest';
export * from './coursePackage';
export * from './coursePackageControllerFindAllParams';
export * from './courseResponse';
export * from './courseUpdateRequest';
export * from './createClassDto';
export * from './createFromSourceDto';
export * from './createFromSourceDtoSaveLocation';
export * from './createFromTemplateBody';
export * from './createFromTemplateDto';
export * from './createGrowthRecordDto';
export * from './createLessonDto';
export * from './createLibraryDto';
export * from './createReservationDto';
export * from './createResourceItemDto';
export * from './createSchedule1Body';
export * from './createScheduleBody';
export * from './createScheduleDto';
export * from './createSchoolCourseDto';
export * from './createStudentDto';
export * from './createTaskDto';
export * from './createTaskTemplateDto';
export * from './createTeacherDto';
export * from './createTemplate1Body';
export * from './createTemplateBody';
export * from './createTenantDto';
export * from './createTenantDtoPackageType';
export * from './deleteFileBody';
@ -51,33 +60,59 @@ export * from './directPublishDto';
export * from './exportControllerExportGrowthRecordsParams';
export * from './exportControllerExportStudentStatsParams';
export * from './exportControllerExportTeacherStatsParams';
export * from './exportGrowthRecordsParams';
export * from './exportLessonsParams';
export * from './findAll1Params';
export * from './findAllItemsParams';
export * from './findAllLibrariesParams';
export * from './finishLessonDto';
export * from './getActiveTeachersParams';
export * from './getActiveTenants200';
export * from './getActiveTenants200DataItem';
export * from './getActiveTenantsParams';
export * from './getAllStudentsParams';
export * from './getClassPageParams';
export * from './getClassStudents1Params';
export * from './getClassStudentsParams';
export * from './getCoursePage1Params';
export * from './getCoursePageParams';
export * from './getFeedbacks1Params';
export * from './getFeedbacksParams';
export * from './getGrowthRecordPage1Params';
export * from './getGrowthRecordPageParams';
export * from './getGrowthRecordsByStudentParams';
export * from './getLessonTrend1Params';
export * from './getLessonTrendParams';
export * from './getLogListParams';
export * from './getMyLessonsParams';
export * from './getMyNotifications1Params';
export * from './getMyNotificationsParams';
export * from './getMyTasksParams';
export * from './getParentPageParams';
export * from './getPopularCourses200';
export * from './getPopularCourses200DataItem';
export * from './getPopularCoursesParams';
export * from './getRecentActivities1200';
export * from './getRecentActivities1200DataItem';
export * from './getRecentActivities1Params';
export * from './getRecentActivitiesParams';
export * from './getRecentGrowthRecordsParams';
export * from './getSchedules1Params';
export * from './getSchedulesParams';
export * from './getStudentPageParams';
export * from './getTaskPage1Params';
export * from './getTaskPageParams';
export * from './getTasksByStudentParams';
export * from './getTeacherPageParams';
export * from './getTemplates1Params';
export * from './getTemplatesParams';
export * from './getTenantPageParams';
export * from './getTimetable1Params';
export * from './getTimetableParams';
export * from './grantRequest';
export * from './growthRecord';
export * from './growthRecordCreateRequest';
export * from './growthRecordResponse';
export * from './growthRecordUpdateRequest';
export * from './itemCreateRequest';
export * from './itemUpdateRequest';
@ -89,6 +124,7 @@ export * from './lessonFeedbackDtoActivitiesDone';
export * from './lessonFeedbackDtoStepFeedbacks';
export * from './lessonProgressDto';
export * from './lessonProgressDtoProgressData';
export * from './lessonResponse';
export * from './lessonStep';
export * from './lessonUpdateRequest';
export * from './libraryCreateRequest';
@ -98,24 +134,37 @@ export * from './loginDto';
export * from './loginRequest';
export * from './loginResponse';
export * from './notification';
export * from './notificationResponse';
export * from './object';
export * from './orderItem';
export * from './packageCreateRequest';
export * from './pageCoursePackage';
export * from './pageResourceItem';
export * from './pageResourceLibrary';
export * from './pageResultClassResponse';
export * from './pageResultClazz';
export * from './pageResultCourse';
export * from './pageResultCourseResponse';
export * from './pageResultGrowthRecord';
export * from './pageResultGrowthRecordResponse';
export * from './pageResultLesson';
export * from './pageResultLessonResponse';
export * from './pageResultNotification';
export * from './pageResultNotificationResponse';
export * from './pageResultParent';
export * from './pageResultParentResponse';
export * from './pageResultStudent';
export * from './pageResultStudentResponse';
export * from './pageResultTask';
export * from './pageResultTaskResponse';
export * from './pageResultTeacher';
export * from './pageResultTeacherResponse';
export * from './pageResultTenant';
export * from './pageResultTenantResponse';
export * from './parent';
export * from './parentCreateRequest';
export * from './parentResponse';
export * from './parentStudentResponse';
export * from './parentUpdateRequest';
export * from './rejectCourseDto';
export * from './rejectCourseDtoChecklist';
@ -124,24 +173,35 @@ export * from './resetPassword1Params';
export * from './resetPasswordParams';
export * from './resourceItem';
export * from './resourceLibrary';
export * from './resultClassResponse';
export * from './resultClazz';
export * from './resultCourse';
export * from './resultCourseLesson';
export * from './resultCoursePackage';
export * from './resultCourseResponse';
export * from './resultDto';
export * from './resultDtoData';
export * from './resultGrowthRecord';
export * from './resultGrowthRecordResponse';
export * from './resultLesson';
export * from './resultLessonResponse';
export * from './resultLessonStep';
export * from './resultListClassResponse';
export * from './resultListClassTeacherResponse';
export * from './resultListClazz';
export * from './resultListCourse';
export * from './resultListCourseLesson';
export * from './resultListCourseResponse';
export * from './resultListGrowthRecord';
export * from './resultListGrowthRecordResponse';
export * from './resultListLesson';
export * from './resultListLessonResponse';
export * from './resultListLessonStep';
export * from './resultListMapStringObject';
export * from './resultListMapStringObjectDataItem';
export * from './resultListParentStudentResponse';
export * from './resultListStudent';
export * from './resultListStudentResponse';
export * from './resultListTenantPackage';
export * from './resultListTenantResponse';
export * from './resultListTheme';
@ -150,27 +210,46 @@ export * from './resultLong';
export * from './resultMapStringObject';
export * from './resultMapStringObjectData';
export * from './resultNotification';
export * from './resultNotificationResponse';
export * from './resultObject';
export * from './resultObjectData';
export * from './resultPageCoursePackage';
export * from './resultPageResourceItem';
export * from './resultPageResourceLibrary';
export * from './resultPageResultClassResponse';
export * from './resultPageResultClazz';
export * from './resultPageResultCourse';
export * from './resultPageResultCourseResponse';
export * from './resultPageResultGrowthRecord';
export * from './resultPageResultGrowthRecordResponse';
export * from './resultPageResultLesson';
export * from './resultPageResultLessonResponse';
export * from './resultPageResultNotification';
export * from './resultPageResultNotificationResponse';
export * from './resultPageResultParent';
export * from './resultPageResultParentResponse';
export * from './resultPageResultStudent';
export * from './resultPageResultStudentResponse';
export * from './resultPageResultTask';
export * from './resultPageResultTaskResponse';
export * from './resultPageResultTeacher';
export * from './resultPageResultTeacherResponse';
export * from './resultPageResultTenant';
export * from './resultPageResultTenantResponse';
export * from './resultParent';
export * from './resultParentResponse';
export * from './resultResourceItem';
export * from './resultResourceLibrary';
export * from './resultStudent';
export * from './resultStudentResponse';
export * from './resultTask';
export * from './resultTaskResponse';
export * from './resultTeacher';
export * from './resultTeacherResponse';
export * from './resultTenant';
export * from './resultTenantResponse';
export * from './resultTheme';
export * from './resultTokenResponse';
export * from './resultUserInfoResponse';
export * from './resultVoid';
export * from './resultVoidData';
@ -186,10 +265,12 @@ export * from './stepCreateRequest';
export * from './student';
export * from './studentCreateRequest';
export * from './studentRecordDto';
export * from './studentResponse';
export * from './studentUpdateRequest';
export * from './submitCourseDto';
export * from './task';
export * from './taskCreateRequest';
export * from './taskResponse';
export * from './taskUpdateRequest';
export * from './teacher';
export * from './teacherCourseControllerFindAllParams';
@ -200,6 +281,7 @@ export * from './teacherCourseControllerGetTeacherSchedulesParams';
export * from './teacherCourseControllerGetTeacherTimetableParams';
export * from './teacherCreateRequest';
export * from './teacherFeedbackControllerFindAllParams';
export * from './teacherResponse';
export * from './teacherTaskControllerGetMonthlyStatsParams';
export * from './teacherUpdateRequest';
export * from './tenant';
@ -212,25 +294,42 @@ export * from './tenantResponse';
export * from './tenantUpdateRequest';
export * from './theme';
export * from './themeCreateRequest';
export * from './tokenResponse';
export * from './transferStudentDto';
export * from './updateBasicSettings1Body';
export * from './updateBasicSettingsBody';
export * from './updateClassDto';
export * from './updateClassTeacherBody';
export * from './updateClassTeacherDto';
export * from './updateCompletionDto';
export * from './updateGrowthRecordDto';
export * from './updateLessonDto';
export * from './updateLibraryDto';
export * from './updateNotificationSettings1Body';
export * from './updateNotificationSettingsBody';
export * from './updateResourceItemDto';
export * from './updateSchedule1Body';
export * from './updateScheduleBody';
export * from './updateScheduleDto';
export * from './updateSchoolCourseDto';
export * from './updateSecuritySettings1Body';
export * from './updateSecuritySettingsBody';
export * from './updateSettings1Body';
export * from './updateSettingsBody';
export * from './updateStorageSettingsBody';
export * from './updateStudentDto';
export * from './updateTaskDto';
export * from './updateTaskTemplateDto';
export * from './updateTeacherDto';
export * from './updateTemplate1Body';
export * from './updateTemplateBody';
export * from './updateTenantDto';
export * from './updateTenantDtoPackageType';
export * from './updateTenantDtoStatus';
export * from './updateTenantQuotaBody';
export * from './updateTenantQuotaDto';
export * from './updateTenantQuotaDtoPackageType';
export * from './updateTenantStatusBody';
export * from './updateTenantStatusDto';
export * from './updateTenantStatusDtoStatus';
export * from './uploadFileBody';

View File

@ -7,20 +7,38 @@
*/
import type { LocalTime } from './localTime';
/**
*
*/
export interface Lesson {
/** 主键 ID */
id?: number;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
/** 租户 ID */
tenantId?: number;
/** 课程 ID */
courseId?: number;
/** 班级 ID */
classId?: number;
/** 教师 ID */
teacherId?: number;
/** 课程标题 */
title?: string;
/** 上课日期 */
lessonDate?: string;
startTime?: LocalTime;
endTime?: LocalTime;
/** 上课地点 */
location?: string;
/** 状态 */
status?: string;
/** 备注 */
notes?: string;
createdAt?: string;
updatedAt?: string;
deleted?: number;
}

View File

@ -8,23 +8,23 @@
import type { LocalTime } from './localTime';
/**
* Lesson Create Request
*
*/
export interface LessonCreateRequest {
/** Course ID */
/** 课程 ID */
courseId: number;
/** Class ID */
/** 班级 ID */
classId?: number;
/** Teacher ID */
/** 教师 ID */
teacherId: number;
/** Lesson title */
/** 课时标题 */
title: string;
/** Lesson date */
/** 课时日期 */
lessonDate: string;
startTime?: LocalTime;
endTime?: LocalTime;
/** Location */
/** 地点 */
location?: string;
/** Notes */
/** 备注 */
notes?: string;
}

View File

@ -0,0 +1,40 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { LocalTime } from './localTime';
/**
*
*/
export interface LessonResponse {
/** ID */
id?: number;
/** 租户 ID */
tenantId?: number;
/** 课程 ID */
courseId?: number;
/** 班级 ID */
classId?: number;
/** 教师 ID */
teacherId?: number;
/** 标题 */
title?: string;
/** 课时日期 */
lessonDate?: string;
startTime?: LocalTime;
endTime?: LocalTime;
/** 地点 */
location?: string;
/** 状态 */
status?: string;
/** 备注 */
notes?: string;
/** 创建时间 */
createdAt?: string;
/** 更新时间 */
updatedAt?: string;
}

View File

@ -6,15 +6,32 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface LessonStep {
/** 主键 ID */
id?: number;
lessonId?: number;
name?: string;
content?: string;
duration?: number;
objective?: string;
resourceIds?: string;
sortOrder?: number;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
/** 课程环节 ID */
lessonId?: number;
/** 环节名称 */
name?: string;
/** 环节内容 */
content?: string;
/** 时长(分钟) */
duration?: number;
/** 教学目标 */
objective?: string;
/** 资源 ID 列表JSON 数组) */
resourceIds?: string;
/** 排序号 */
sortOrder?: number;
}

View File

@ -8,19 +8,19 @@
import type { LocalTime } from './localTime';
/**
* Lesson Update Request
*
*/
export interface LessonUpdateRequest {
/** Lesson title */
/** 课时标题 */
title?: string;
/** Lesson date */
/** 课时日期 */
lessonDate?: string;
startTime?: LocalTime;
endTime?: LocalTime;
/** Location */
/** 地点 */
location?: string;
/** Status */
/** 状态 */
status?: string;
/** Notes */
/** 备注 */
notes?: string;
}

View File

@ -7,7 +7,7 @@
*/
/**
* End time
*
*/
export interface LocalTime {
hour?: number;

View File

@ -7,13 +7,13 @@
*/
/**
* Login Request
*
*/
export interface LoginRequest {
/** Username */
/** 用户名 */
username: string;
/** Password */
/** 密码 */
password: string;
/** Login role */
/** 登录角色 */
role?: string;
}

View File

@ -7,19 +7,19 @@
*/
/**
* Login Response
*
*/
export interface LoginResponse {
/** JWT Token */
token?: string;
/** User ID */
/** 用户 ID */
userId?: number;
/** Username */
/** 用户名 */
username?: string;
/** User name */
/** 姓名 */
name?: string;
/** User role */
/** 用户角色 */
role?: string;
/** Tenant ID */
/** 租户 ID */
tenantId?: number;
}

View File

@ -6,18 +6,38 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface Notification {
/** 主键 ID */
id?: number;
tenantId?: number;
title?: string;
content?: string;
type?: string;
senderId?: number;
senderRole?: string;
recipientType?: string;
recipientId?: number;
isRead?: number;
readAt?: string;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
deleted?: number;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
/** 租户 ID */
tenantId?: number;
/** 通知标题 */
title?: string;
/** 通知内容 */
content?: string;
/** 通知类型 */
type?: string;
/** 发送人 ID */
senderId?: number;
/** 发送人角色 */
senderRole?: string;
/** 接收人类型 */
recipientType?: string;
/** 接收人 ID */
recipientId?: number;
/** 是否已读 */
isRead?: number;
/** 阅读时间 */
readAt?: string;
}

View File

@ -0,0 +1,37 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface NotificationResponse {
/** ID */
id?: number;
/** 租户 ID */
tenantId?: number;
/** 标题 */
title?: string;
/** 内容 */
content?: string;
/** 类型 */
type?: string;
/** 发送人 ID */
senderId?: number;
/** 发送人角色 */
senderRole?: string;
/** 接收者类型 */
recipientType?: string;
/** 接收者 ID */
recipientId?: number;
/** 是否已读 */
isRead?: number;
/** 阅读时间 */
readAt?: string;
/** 创建时间 */
createdAt?: string;
}

View File

@ -7,7 +7,7 @@
*/
/**
*
*
*/
export interface PackageCreateRequest {
/** 套餐名称 */

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ClassResponse } from './classResponse';
export interface PageResultClassResponse {
list?: ClassResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { CourseResponse } from './courseResponse';
export interface PageResultCourseResponse {
list?: CourseResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { GrowthRecordResponse } from './growthRecordResponse';
export interface PageResultGrowthRecordResponse {
list?: GrowthRecordResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { LessonResponse } from './lessonResponse';
export interface PageResultLessonResponse {
list?: LessonResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { NotificationResponse } from './notificationResponse';
export interface PageResultNotificationResponse {
list?: NotificationResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ParentResponse } from './parentResponse';
export interface PageResultParentResponse {
list?: ParentResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { StudentResponse } from './studentResponse';
export interface PageResultStudentResponse {
list?: StudentResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { TaskResponse } from './taskResponse';
export interface PageResultTaskResponse {
list?: TaskResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { TeacherResponse } from './teacherResponse';
export interface PageResultTeacherResponse {
list?: TeacherResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -0,0 +1,16 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { TenantResponse } from './tenantResponse';
export interface PageResultTenantResponse {
list?: TenantResponse[];
total?: number;
pageNum?: number;
pageSize?: number;
pages?: number;
}

View File

@ -7,19 +7,19 @@
*/
/**
* Parent Create Request
*
*/
export interface ParentCreateRequest {
/** Username */
/** 用户名 */
username: string;
/** Password */
/** 密码 */
password: string;
/** Name */
/** 姓名 */
name: string;
/** Phone */
/** 电话 */
phone?: string;
/** Email */
/** 邮箱 */
email?: string;
/** Gender */
/** 性别 */
gender?: string;
}

View File

@ -0,0 +1,37 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface ParentResponse {
/** ID */
id?: number;
/** 租户 ID */
tenantId?: number;
/** 用户名 */
username?: string;
/** 姓名 */
name?: string;
/** 电话 */
phone?: string;
/** 邮箱 */
email?: string;
/** 头像 URL */
avatarUrl?: string;
/** 性别 */
gender?: string;
/** 状态 */
status?: string;
/** 最后登录时间 */
lastLoginAt?: string;
/** 创建时间 */
createdAt?: string;
/** 更新时间 */
updatedAt?: string;
}

View File

@ -0,0 +1,25 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface ParentStudentResponse {
/** ID */
id?: number;
/** 家长 ID */
parentId?: number;
/** 学生 ID */
studentId?: number;
/** 关系 */
relationship?: string;
/** 是否主要监护人 */
isPrimary?: number;
/** 创建时间 */
createdAt?: string;
}

View File

@ -7,19 +7,19 @@
*/
/**
* Parent Update Request
*
*/
export interface ParentUpdateRequest {
/** Name */
/** 姓名 */
name?: string;
/** Phone */
/** 电话 */
phone?: string;
/** Email */
/** 邮箱 */
email?: string;
/** Avatar URL */
/** 头像 URL */
avatarUrl?: string;
/** Gender */
/** 性别 */
gender?: string;
/** Status */
/** 状态 */
status?: string;
}

View File

@ -6,21 +6,38 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface ResourceItem {
id?: string;
libraryId?: string;
tenantId?: string;
type?: string;
name?: string;
code?: string;
description?: string;
quantity?: number;
availableQuantity?: number;
location?: string;
status?: string;
/** 主键 ID */
id?: number;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
deleted?: number;
createdBy?: string;
updatedBy?: string;
/** 资源库 ID */
libraryId?: string;
/** 租户 ID */
tenantId?: string;
/** 资源类型 */
type?: string;
/** 资源名称 */
name?: string;
/** 资源编码 */
code?: string;
/** 资源描述 */
description?: string;
/** 数量 */
quantity?: number;
/** 可用数量 */
availableQuantity?: number;
/** 存放位置 */
location?: string;
/** 状态 */
status?: string;
}

View File

@ -6,15 +6,26 @@
* OpenAPI spec version: 1.0.0
*/
/**
*
*/
export interface ResourceLibrary {
id?: string;
tenantId?: string;
name?: string;
description?: string;
type?: string;
/** 主键 ID */
id?: number;
/** 创建人 */
createBy?: string;
/** 创建时间 */
createdAt?: string;
/** 更新人 */
updateBy?: string;
/** 更新时间 */
updatedAt?: string;
deleted?: number;
createdBy?: string;
updatedBy?: string;
/** 租户 ID */
tenantId?: string;
/** 资源库名称 */
name?: string;
/** 资源库描述 */
description?: string;
/** 资源库类型 */
type?: string;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ClassResponse } from './classResponse';
export interface ResultClassResponse {
code?: number;
message?: string;
data?: ClassResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { CourseResponse } from './courseResponse';
export interface ResultCourseResponse {
code?: number;
message?: string;
data?: CourseResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { GrowthRecordResponse } from './growthRecordResponse';
export interface ResultGrowthRecordResponse {
code?: number;
message?: string;
data?: GrowthRecordResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { LessonResponse } from './lessonResponse';
export interface ResultLessonResponse {
code?: number;
message?: string;
data?: LessonResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ClassResponse } from './classResponse';
export interface ResultListClassResponse {
code?: number;
message?: string;
data?: ClassResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ClassTeacherResponse } from './classTeacherResponse';
export interface ResultListClassTeacherResponse {
code?: number;
message?: string;
data?: ClassTeacherResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { CourseResponse } from './courseResponse';
export interface ResultListCourseResponse {
code?: number;
message?: string;
data?: CourseResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { GrowthRecordResponse } from './growthRecordResponse';
export interface ResultListGrowthRecordResponse {
code?: number;
message?: string;
data?: GrowthRecordResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { LessonResponse } from './lessonResponse';
export interface ResultListLessonResponse {
code?: number;
message?: string;
data?: LessonResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ParentStudentResponse } from './parentStudentResponse';
export interface ResultListParentStudentResponse {
code?: number;
message?: string;
data?: ParentStudentResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { StudentResponse } from './studentResponse';
export interface ResultListStudentResponse {
code?: number;
message?: string;
data?: StudentResponse[];
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { NotificationResponse } from './notificationResponse';
export interface ResultNotificationResponse {
code?: number;
message?: string;
data?: NotificationResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { ResultObjectData } from './resultObjectData';
export interface ResultObject {
code?: number;
message?: string;
data?: ResultObjectData;
}

View File

@ -0,0 +1,9 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
export type ResultObjectData = { [key: string]: unknown };

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { PageResultClassResponse } from './pageResultClassResponse';
export interface ResultPageResultClassResponse {
code?: number;
message?: string;
data?: PageResultClassResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { PageResultCourseResponse } from './pageResultCourseResponse';
export interface ResultPageResultCourseResponse {
code?: number;
message?: string;
data?: PageResultCourseResponse;
}

View File

@ -0,0 +1,14 @@
/**
* Generated by orval v8.5.3 🍺
* Do not edit manually.
* Reading Platform API
* Reading Platform Backend Service API Documentation
* OpenAPI spec version: 1.0.0
*/
import type { PageResultGrowthRecordResponse } from './pageResultGrowthRecordResponse';
export interface ResultPageResultGrowthRecordResponse {
code?: number;
message?: string;
data?: PageResultGrowthRecordResponse;
}

Some files were not shown because too many files have changed in this diff Show More