diff --git a/server/api/course/course_resourse/course_resourse.api b/server/api/course/course_resourse/course_resourse.api index e69de29b..362355d4 100644 --- a/server/api/course/course_resourse/course_resourse.api +++ b/server/api/course/course_resourse/course_resourse.api @@ -0,0 +1,81 @@ +type CreateCourseResourceReq { + CourseId int `json:"course_id" form:"course_id" validate:"required"` + Title string `json:"title" form:"title" validate:"required,max=255"` + ResourceUrl string `json:"resource_url" form:"resource_url" validate:"required,max=512"` + Size int `json:"size" form:"size" validate:"omitempty,min=0"` + Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` +} + +type CreateCourseResourceResp { + Id int `json:"id"` + Message string `json:"message"` +} + +type GetCourseResourceReq { + Id int `path:"id" validate:"required"` +} + +type GetCourseResourceResp { + Id int `json:"id"` + CourseId int `json:"course_id"` + Title string `json:"title"` + ResourceUrl string `json:"resource_url"` + Size int `json:"size"` + Sort int `json:"sort"` +} + +type ListCourseResourceReq { + CourseId int `form:"course_id" validate:"omitempty"` + Page int `form:"page" validate:"required,min=1"` + PageSize int `form:"page_size" validate:"required,min=1,max=100"` +} + +type ListCourseResourceResp { + Total int `json:"total"` + List []GetCourseResourceResp `json:"list"` + Page int `json:"page"` + PageSize int `json:"page_size"` +} + +type UpdateCourseResourceReq { + Id int `json:"id" validate:"required"` + CourseId int `json:"course_id" validate:"omitempty"` + Title string `json:"title" validate:"omitempty,max=255"` + ResourceUrl string `json:"resource_url" validate:"omitempty,max=512"` + Size int `json:"size" validate:"omitempty,min=0"` + Sort int `json:"sort" validate:"omitempty,min=0"` +} + +type UpdateCourseResourceResp { + Message string `json:"message"` +} + +type DeleteCourseResourceReq { + Id int `path:"id" validate:"required"` +} + +type DeleteCourseResourceResp { + Message string `json:"message"` +} + +@server ( + group: course_resource + prefix: /api/course-resource +) +service course_resource_api { + @handler CreateCourseResourceHandler + post / (CreateCourseResourceReq) returns (CreateCourseResourceResp) + + @handler GetCourseResourceHandler + get /:id (GetCourseResourceReq) returns (GetCourseResourceResp) + + @handler ListCourseResourceHandler + post /list (ListCourseResourceReq) returns (ListCourseResourceResp) + + @handler UpdateCourseResourceHandler + put / (UpdateCourseResourceReq) returns (UpdateCourseResourceResp) + + @handler DeleteCourseResourceHandler + delete /:id (DeleteCourseResourceReq) returns (DeleteCourseResourceResp) +} + diff --git a/server/api/course/course_teacher/course_teacher.api b/server/api/course/course_teacher/course_teacher.api index e69de29b..0713a7c4 100644 --- a/server/api/course/course_teacher/course_teacher.api +++ b/server/api/course/course_teacher/course_teacher.api @@ -0,0 +1,92 @@ +// 教学团队表API定义(适配course_teacher表) +type ( + // 创建教学团队关联请求(无需id,数据库自增生成) + CreateCourseTeacherReq { + CourseId int `json:"course_id" form:"course_id" validate:"required"` // 关联课程ID(必填,外键) + TeacherId int `json:"teacher_id" form:"teacher_id" validate:"required"` // 教师ID(必填,关联用户表) + Name string `json:"name" form:"name" validate:"required,max=100"` // 教师姓名(必填,最长100字符) + Title string `json:"title" form:"title" validate:"omitempty,max=200"` // 教师头衔(可选,最长200字符) + Avatar string `json:"avatar" form:"avatar" validate:"omitempty,max=512"` // 头像URL(可选,最长512字符) + Intro string `json:"intro" form:"intro"` // 教师简介(可选,文本) + Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` // 排序(可选,默认0) + } + // 创建教学团队关联响应 + CreateCourseTeacherResp { + Id int `json:"id"` // 新增关联ID + Message string `json:"message"` // 操作结果信息 + } + // 查询单个教学团队关联请求(按ID查询) + GetCourseTeacherReq { + Id int `json:"id" form:"id" path:"id" validate:"required"` // 关联ID(必填,路径参数) + } + // 查询单个教学团队关联响应(返回完整信息) + GetCourseTeacherResp { + Id int `json:"id"` // 关联ID(主键) + CourseId int `json:"course_id"` // 关联课程ID + TeacherId int `json:"teacher_id"` // 教师ID + Name string `json:"name"` // 教师姓名 + Title string `json:"title"` // 教师头衔 + Avatar string `json:"avatar"` // 头像URL + Intro string `json:"intro"` // 教师简介 + Sort int `json:"sort"` // 排序 + } + // 教学团队列表查询请求(支持筛选和分页) + ListCourseTeacherReq { + CourseId int `json:"course_id" form:"course_id" validate:"omitempty"` // 可选筛选:按课程ID查询 + TeacherId int `json:"teacher_id" form:"teacher_id" validate:"omitempty"` // 可选筛选:按教师ID查询 + Page int `json:"page" form:"page" validate:"required,min=1"` // 页码(必填,从1开始) + PageSize int `json:"page_size" form:"page_size" validate:"required,min=1,max=100"` // 每页条数(1-100) + } + // 教学团队列表响应 + ListCourseTeacherResp { + Total int `json:"total"` // 总条数 + List []GetCourseTeacherResp `json:"list"` // 教学团队列表 + Page int `json:"page"` // 当前页码 + PageSize int `json:"page_size"` // 每页条数 + } + // 更新教学团队关联请求 + UpdateCourseTeacherReq { + Id int `json:"id" form:"id" validate:"required"` // 关联ID(必填) + CourseId int `json:"course_id" form:"course_id" validate:"omitempty"` // 可选更新:课程ID + TeacherId int `json:"teacher_id" form:"teacher_id" validate:"omitempty"` // 可选更新:教师ID + Name string `json:"name" form:"name" validate:"omitempty,max=100"` // 可选更新:教师姓名 + Title string `json:"title" form:"title" validate:"omitempty,max=200"` // 可选更新:教师头衔 + Avatar string `json:"avatar" form:"avatar" validate:"omitempty,max=512"` // 可选更新:头像URL + Intro string `json:"intro" form:"intro"` // 可选更新:教师简介 + Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` // 可选更新:排序 + } + // 更新教学团队关联响应 + UpdateCourseTeacherResp { + Message string `json:"message"` // 操作结果信息 + } + // 删除教学团队关联请求 + DeleteCourseTeacherReq { + Id int `json:"id" form:"id" path:"id" validate:"required"` // 关联ID(必填,路径参数) + } + // 删除教学团队关联响应 + DeleteCourseTeacherResp { + Message string `json:"message"` // 操作结果信息 + } +) + +@server ( + group: course_teacher // 接口分组:教学团队 + prefix: /api/course-teacher // 接口前缀(与模块语义一致) +) +service course_teacher_api { // 服务名称:教学团队API + @handler CreateCourseTeacherHandler // 创建教学团队关联 + post / (CreateCourseTeacherReq) returns (CreateCourseTeacherResp) + + @handler GetCourseTeacherHandler // 查询单个教学团队关联 + get /:id (GetCourseTeacherReq) returns (GetCourseTeacherResp) + + @handler ListCourseTeacherHandler // 教学团队列表查询(分页/筛选) + post /list (ListCourseTeacherReq) returns (ListCourseTeacherResp) + + @handler UpdateCourseTeacherHandler // 更新教学团队关联 + put / (UpdateCourseTeacherReq) returns (UpdateCourseTeacherResp) + + @handler DeleteCourseTeacherHandler // 删除教学团队关联 + delete /:id (DeleteCourseTeacherReq) returns (DeleteCourseTeacherResp) +} +