Files
hldrCenter/server/api/course/course_activity/course_activity.api
2025-11-01 23:38:51 +08:00

99 lines
5.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 创建课程活动请求无需id由数据库自增生成
type CreateCourseActivityReq {
CourseId int `json:"course_id" form:"course_id" validate:"required"` // 关联课程ID必填外键
Title string `json:"title" form:"title" validate:"required,max=255"` // 活动标题必填最长255字符
ActivityType int `json:"activity_type" form:"activity_type" validate:"omitempty,min=1,max=4"` // 活动类型可选1-作业/2-考试/3-讨论/4-直播默认1
Content string `json:"content" form:"content"` // 活动详情(可选,文本)
StartTime string `json:"start_time" form:"start_time" validate:"omitempty,datetime=2006-01-02 15:04:05"` // 开始时间可选格式yyyy-MM-dd HH:mm:ss
EndTime string `json:"end_time" form:"end_time" validate:"omitempty,datetime=2006-01-02 15:04:05"` // 结束时间(可选,格式同上)
Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` // 排序可选默认0
}
// 创建课程活动响应
type CreateCourseActivityResp {
Id int `json:"id"` // 新增活动的ID
Message string `json:"message"` // 操作结果信息
}
// 查询单个课程活动请求按ID查询
type GetCourseActivityReq {
Id int `json:"id" form:"id" param:"id" validate:"required"` // 活动ID必填从路径参数获取
}
// 查询单个课程活动响应(返回完整活动信息)
type GetCourseActivityResp {
Id int `json:"id"` // 活动ID
CourseId int `json:"course_id"` // 关联课程ID
Title string `json:"title"` // 活动标题
ActivityType int `json:"activity_type"` // 活动类型1-作业/2-考试/3-讨论/4-直播)
Content string `json:"content"` // 活动详情
StartTime string `json:"start_time"` // 开始时间(格式化字符串)
EndTime string `json:"end_time"` // 结束时间(格式化字符串)
Sort int `json:"sort"` // 排序
}
// 课程活动列表查询请求(支持筛选和分页)
type ListCourseActivityReq {
CourseId int `json:"course_id" form:"course_id" validate:"omitempty"` // 可选筛选按课程ID查询
ActivityType int `json:"activity_type" form:"activity_type" validate:"omitempty,min=1,max=4"` // 可选筛选:按活动类型查询
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
}
// 课程活动列表响应
type ListCourseActivityResp {
Total int `json:"total"` // 总条数
List []GetCourseActivityResp `json:"list"` // 活动列表(单条结构同查询单个响应)
Page int `json:"page"` // 当前页码
PageSize int `json:"page_size"` // 每页条数
}
// 更新课程活动请求
type UpdateCourseActivityReq {
Id int `json:"id" form:"id" validate:"required"` // 活动ID必填
CourseId int `json:"course_id" form:"course_id" validate:"omitempty"` // 可选更新关联课程ID
Title string `json:"title" form:"title" validate:"omitempty,max=255"` // 可选更新:活动标题
ActivityType int `json:"activity_type" form:"activity_type" validate:"omitempty,min=1,max=4"` // 可选更新:活动类型
Content string `json:"content" form:"content"` // 可选更新:活动详情
StartTime string `json:"start_time" form:"start_time" validate:"omitempty,datetime=2006-01-02 15:04:05"` // 可选更新:开始时间
EndTime string `json:"end_time" form:"end_time" validate:"omitempty,datetime=2006-01-02 15:04:05"` // 可选更新:结束时间
Sort int `json:"sort" form:"sort" validate:"omitempty,min=0"` // 可选更新:排序
}
// 更新课程活动响应
type UpdateCourseActivityResp {
Message string `json:"message"` // 操作结果信息
}
// 删除课程活动请求
type DeleteCourseActivityReq {
Id int `json:"id" form:"id" param:"id" validate:"required"` // 活动ID必填从路径参数获取
}
// 删除课程活动响应
type DeleteCourseActivityResp {
Message string `json:"message"` // 操作结果信息
}
@server (
group: course_activity // 接口分组:课程活动
prefix: /api/course-activity
)
service course_activity_api { // 服务名称课程活动API
@handler CreateCourseActivityHandler // 创建课程活动
post /course-activity (CreateCourseActivityReq) returns (CreateCourseActivityResp)
@handler GetCourseActivityHandler // 查询单个课程活动
get /course-activity/:id (GetCourseActivityReq) returns (GetCourseActivityResp)
@handler ListCourseActivityHandler // 课程活动列表查询(支持分页/筛选)
post /course-activity/list (ListCourseActivityReq) returns (ListCourseActivityResp)
@handler UpdateCourseActivityHandler // 更新课程活动
put /course-activity (UpdateCourseActivityReq) returns (UpdateCourseActivityResp)
@handler DeleteCourseActivityHandler // 删除课程活动
delete /course-activity/:id (DeleteCourseActivityReq) returns (DeleteCourseActivityResp)
}