添加课程的api和sql

This commit is contained in:
2025-10-31 13:24:07 +08:00
parent c54ad0041e
commit d7c0d0b04e
2 changed files with 86 additions and 0 deletions

75
server/api/course.api Normal file
View File

@@ -0,0 +1,75 @@
// 课程请求结构体
type CreateCourseReq {
Title string `json:"title" validate:"required"` // 课程标题
Subtitle string `json:"subtitle"` // 课程副标题
CoverUrl string `json:"cover_url"` // 课程封面图URL
Intro string `json:"intro"` // 课程简介
Status int8 `json:"status" default:"1"` // 课程状态0删除1-已发布)
}
type UpdateCourseReq {
Id int64 `json:"id" validate:"required"` // 课程ID
Title string `json:"title"` // 课程标题
Subtitle string `json:"subtitle"` // 课程副标题
CoverUrl string `json:"cover_url"` // 课程封面图URL
Intro string `json:"intro"` // 课程简介
Status int8 `json:"status"` // 课程状态0删除1-已发布)
}
type GetCourseReq {
Id int64 `json:"id" validate:"required"` // 课程ID
}
type DeleteCourseReq {
Id int64 `json:"id" validate:"required"` // 课程ID
}
type ListCourseReq {
Page int `json:"page" default:"1"` // 页码
Size int `json:"size" default:"10"` // 每页数量
Status int8 `json:"status"` // 课程状态筛选
Keyword string `json:"keyword"` // 搜索关键词(标题/副标题)
}
// 课程响应结构体
type CourseResp {
Id int64 `json:"id"` // 课程ID
Title string `json:"title"` // 课程标题
Subtitle string `json:"subtitle"` // 课程副标题
CoverUrl string `json:"cover_url"` // 课程封面图URL
Intro string `json:"intro"` // 课程简介
Status int8 `json:"status"` // 课程状态
CreateTime string `json:"create_time"` // 创建时间
UpdateTime string `json:"update_time"` // 更新时间
}
type ListCourseResp {
Total int64 `json:"total"` // 总条数
List []CourseResp `json:"list"` // 课程列表
}
type BaseResp {
Code int `json:"code"` // 状态码0成功非0失败
Msg string `json:"msg"` // 提示信息
}
@server (
group: course
)
service course-api {
@handler CreateCourseHandler
post /api/courses (CreateCourseReq) returns (BaseResp)
@handler UpdateCourseHandler
put /api/courses (UpdateCourseReq) returns (BaseResp)
@handler GetCourseHandler
get /api/courses/:id (GetCourseReq) returns (CourseResp)
@handler DeleteCourseHandler
delete /api/courses/:id (DeleteCourseReq) returns (BaseResp)
@handler ListCourseHandler
get /api/courses (ListCourseReq) returns (ListCourseResp)
}