@@ -180,9 +180,10 @@ func (q *TotalAnalysis) Scan(value interface{}) error {
180180
181181// 索引建议
182182type AdvisedIndex struct {
183- State string `json:"state"`
184- Message string `json:"message"`
185- Indexes []* IndexInfo `json:"indexes"`
183+ State string `json:"state"`
184+ HasAdvice bool `json:"has_advice"`
185+ OtherAdvice string `json:"other_advice"`
186+ Indexes []* IndexInfo `json:"indexes"`
186187}
187188
188189// Value impl sql.driver.Valuer interface
@@ -217,3 +218,55 @@ type IndexInfo struct {
217218 CreateIndexStatement string `json:"create_index_statement"`
218219 Reason string `json:"reason"`
219220}
221+
222+ // ========== 重写任务相关结构 ==========
223+
224+ // 创建重写任务请求
225+ type CreateRewriteTaskReq struct {
226+ Type string `json:"type"` // SQL类型:SQL 或 MyBatis
227+ Content string `json:"content"` // SQL内容(文本形式)
228+ Metadata string `json:"metadata"` // 数据库元数据信息
229+ Explain string `json:"explain"` // 执行计划信息
230+ }
231+
232+ // 创建重写任务响应
233+ type CreateRewriteTaskResp struct {
234+ Code json.Number `json:"code"`
235+ Message string `json:"message"`
236+ Data struct {
237+ TaskID string `json:"task_id"`
238+ } `json:"data"`
239+ }
240+
241+ // 重写任务结果
242+ type RewriteResult struct {
243+ ID string `json:"id"`
244+ TaskID string `json:"task_id"`
245+ OriginSQL string `json:"origin_sql"`
246+ Metadata string `json:"metadata"`
247+ OptimizeState string `json:"optimize_state"` // 优化状态:running, rewrite_done, failed等
248+ OptimizeSteps []* OptimizeStep `json:"optimize_steps"` // 优化步骤
249+ }
250+
251+ // 获取重写任务结果响应
252+ type GetRewriteResultResp struct {
253+ Code json.Number `json:"code"`
254+ Message string `json:"message"`
255+ Data * RewriteResult `json:"data"`
256+ }
257+
258+ // ========== 索引推荐任务相关结构 ==========
259+
260+ // 创建索引推荐任务请求
261+ type CreateAdviseIndexTaskReq struct {
262+ Explain string `json:"explain"` // 执行计划信息
263+ }
264+
265+ // 创建索引推荐任务响应
266+ type CreateAdviseIndexTaskResp struct {
267+ Code json.Number `json:"code"`
268+ Message string `json:"message"`
269+ Data struct {
270+ Message string `json:"message"`
271+ } `json:"data"`
272+ }
0 commit comments