// 课程文件创建请求(无需id、create_time、update_time,由数据库自动生成) type CreateCourseFileReq { ContentId int `json:"content_id" form:"content_id" validate:"required"` // 关联的内容ID(必填) Title string `json:"title" form:"title" validate:"required,max=255"` // 文件标题(必填,最长255字符) FileType string `json:"file_type" form:"file_type" validate:"required,max=30"` // 文件类型(必填,最长30字符) FileUrl string `json:"file_url" form:"file_url" validate:"required,max=255"` // 文件URL(必填,最长255字符) } // 课程文件创建响应 type CreateCourseFileResp { Id int `json:"id"` // 新增文件的ID Message string `json:"message"` // 操作结果信息 } // 课程文件查询请求(根据ID查询) type GetCourseFileReq { Id int `json:"id" form:"id" param:"id" validate:"required"` // 文件ID(必填,从路径参数获取) } // 课程文件查询响应(返回完整文件信息) type GetCourseFileResp { Id int `json:"id"` // 文件ID ContentId int `json:"content_id"` // 关联的内容ID Title string `json:"title"` // 文件标题 FileType string `json:"file_type"` // 文件类型 FileUrl string `json:"file_url"` // 文件URL CreateTime string `json:"create_time"` // 创建时间(格式化字符串) UpdateTime string `json:"update_time"` // 更新时间(格式化字符串) } // 课程文件更新请求(部分字段更新) type UpdateCourseFileReq { Id int `json:"id" form:"id" validate:"required"` // 文件ID(必填) ContentId int `json:"content_id" form:"content_id"` // 可选:更新关联的内容ID Title string `json:"title" form:"title" validate:"omitempty,max=255"` // 可选:更新标题 FileType string `json:"file_type" form:"file_type" validate:"omitempty,max=30"` // 可选:更新文件类型 FileUrl string `json:"file_url" form:"file_url" validate:"omitempty,max=255"` // 可选:更新文件URL } // 课程文件更新响应 type UpdateCourseFileResp { Message string `json:"message"` // 操作结果信息 } // 课程文件删除请求 type DeleteCourseFileReq { Id int `json:"id" form:"id" param:"id" validate:"required"` // 文件ID(必填,从路径参数获取) } // 课程文件删除响应 type DeleteCourseFileResp { Message string `json:"message"` // 操作结果信息 } @server ( group: course_file // 接口分组改为课程文件相关 prefix: /api/course-file ) service course_file_api { // 服务名称修改为课程文件API @handler CreateCourseFileHandler // 创建课程文件 post /course-file (CreateCourseFileReq) returns (CreateCourseFileResp) @handler GetCourseFileHandler // 查询单个课程文件 get /course-file/:id (GetCourseFileReq) returns (GetCourseFileResp) @handler UpdateCourseFileHandler // 更新课程文件 put /course-file (UpdateCourseFileReq) returns (UpdateCourseFileResp) @handler DeleteCourseFileHandler // 删除课程文件 delete /course-file/:id (DeleteCourseFileReq) returns (DeleteCourseFileResp) }