diff --git a/server/api/meeting.api b/server/api/meeting.api new file mode 100644 index 00000000..bba6d25e --- /dev/null +++ b/server/api/meeting.api @@ -0,0 +1,104 @@ +// 公共结构体:会议详情(用于查询响应,包含表中所有字段) +type MeetingDetail { + Id int64 `json:"id"` // 会议ID(主键) + Theme string `json:"theme"` // 会议主题 + Subtitle string `json:"subtitle"` // 会议副标题 + Intro string `json:"intro"` // 会议简介(Markdown) + CoverUrl string `json:"cover_url"` // 封面图URL + ScheduleImageUrl string `json:"schedule_image_url"` // 日程图URL + StartTime string `json:"start_time"` // 开始时间(格式:YYYY-MM-DD HH:MM:SS) + EndTime string `json:"end_time"` // 结束时间(格式:YYYY-MM-DD HH:MM:SS) + CreateTime string `json:"create_time"` // 创建时间(数据库自动生成) + UpdateTime string `json:"update_time"` // 更新时间(数据库自动生成) +} + +// 1. 创建会议(增) +type CreateMeetingReq { + Theme string `json:"theme" validate:"required"` // 会议主题(必填) + Subtitle string `json:"subtitle,omitempty"` // 副标题(可选) + Intro string `json:"intro,omitempty"` // 简介(可选) + CoverUrl string `json:"cover_url,omitempty"` // 封面图URL(可选) + ScheduleImageUrl string `json:"schedule_image_url,omitempty"` // 日程图URL(可选) + StartTime string `json:"start_time" validate:"required"` // 开始时间(必填,格式同上) + EndTime string `json:"end_time" validate:"required"` // 结束时间(必填) +} + +type CreateMeetingResp { + Msg string `json:"message"` // 操作提示(如:"创建成功") + MeetingId int64 `json:"meeting_id"` // 新增会议的ID(创建成功返回) +} + +// 2. 查询单条会议(查-详情) +type GetMeetingReq { + Id int64 `json:"id" path:"id" validate:"required"` // 会议ID(从路径参数获取,必填) +} + +type GetMeetingResp { + Msg string `json:"message"` // 操作提示 + Meeting *MeetingDetail `json:"meeting"` // 会议详情(查询成功返回) +} + +// 3. 查询会议列表(查-分页) +type ListMeetingReq { + Page int `json:"page" query:"page" validate:"min=1"` // 页码(默认1) + PageSize int `json:"page_size" query:"page_size" validate:"min=1,max=100"` // 每页条数(默认10,最大100) +} + +type ListMeetingResp { + Msg string `json:"message"` // 操作提示 + Total int64 `json:"total"` // 总条数 + Meetings []*MeetingDetail `json:"meetings"` // 会议列表(当前页数据) +} + +// 4. 更新会议(改) +type UpdateMeetingReq { + Id int64 `json:"id" validate:"required"` // 会议ID(必填,用于定位要更新的记录) + Theme string `json:"theme,omitempty"` // 会议主题(可选,不填则不更新) + Subtitle string `json:"subtitle,omitempty"` // 副标题(可选) + Intro string `json:"intro,omitempty"` // 简介(可选) + CoverUrl string `json:"cover_url,omitempty"` // 封面图URL(可选) + ScheduleImageUrl string `json:"schedule_image_url,omitempty"` // 日程图URL(可选) + StartTime string `json:"start_time,omitempty"` // 开始时间(可选) + EndTime string `json:"end_time,omitempty"` // 结束时间(可选) +} + +type UpdateMeetingResp { + Msg string `json:"message"` // 操作提示(如:"更新成功") +} + +// 5. 删除会议(删) +type DeleteMeetingReq { + Id int64 `json:"id" path:"id" validate:"required"` // 会议ID(从路径参数获取,必填) +} + +type DeleteMeetingResp { + Msg string `json:"message"` // 操作提示(如:"删除成功") +} + +// 接口服务定义 +@server ( + group: meeting // 接口分组:会议相关 + prefix: /api/meeting +) +service meeting-api { + // 1. 创建会议(POST请求,提交会议信息) + @handler CreateMeetingHandler + post /api/meetings (CreateMeetingReq) returns (CreateMeetingResp) + + // 2. 查询单条会议(GET请求,路径带ID) + @handler GetMeetingHandler + get /api/meetings/:id (GetMeetingReq) returns (GetMeetingResp) + + // 3. 查询会议列表(GET请求,带分页参数) + @handler ListMeetingHandler + get /api/meetings (ListMeetingReq) returns (ListMeetingResp) + + // 4. 更新会议(PUT请求,全量/部分更新) + @handler UpdateMeetingHandler + put /api/meetings (UpdateMeetingReq) returns (UpdateMeetingResp) + + // 5. 删除会议(DELETE请求,路径带ID) + @handler DeleteMeetingHandler + delete /api/meetings/:id (DeleteMeetingReq) returns (DeleteMeetingResp) +} +