package api import ( "dbview/service/internal/common/databases/meta" ) // 请求与响应结构(放在 api 包以便复用) type GetRootRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` Page int `json:"page"` PageSize int `json:"pageSize"` Fetch bool `json:"fetch"` // 是否获取具体数据,false=只返回类型与数量 } type GetChildrenRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` // Path 用于结构化定位父对象,从根到父对象的完整层级 Path []meta.ObjectPathEntry `json:"path" binding:"required"` Type string `json:"type"` Page int `json:"page"` PageSize int `json:"pageSize"` Fetch bool `json:"fetch"` // 是否获取具体数据,false=只返回类型与数量 } type PagedResponse struct { Success bool `json:"success"` Total int64 `json:"total"` Data interface{} `json:"data"` Message string `json:"message,omitempty"` } type ObjectResponse struct { Success bool `json:"success"` Data meta.GenericObject `json:"data"` Message string `json:"message,omitempty"` } // GetObjectRequest 用于 POST /metadata/object type GetObjectRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` // Path 表示从根到目标对象的结构化路径,详见 meta.ObjectPathEntry Path []meta.ObjectPathEntry `json:"path" binding:"required"` Fetch bool `json:"fetch"` // 是否获取具体数据(如列/索引),false=只返回基础元信息 } // CreateTemplateRequest 用于 POST /metadata/create/template type CreateTemplateRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` ObjectType string `json:"objectType" binding:"required"` // 要创建的对象类型,如 table/database/index ParentName string `json:"parentName"` // 可选的父上下文(例如创建表时为数据库名) } // CreateObjectRequest 用于 POST /metadata/object/create type CreateObjectRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` ObjectType string `json:"objectType" binding:"required"` ParentName string `json:"parentName,omitempty"` Properties map[string]interface{} `json:"properties" binding:"required"` Execute bool `json:"execute,omitempty"` Options map[string]interface{} `json:"options,omitempty"` } // UpdateTemplateRequest 用于 POST /database/metadata/update/template type UpdateTemplateRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` Path meta.ObjectPath `json:"path" binding:"required"` // 目标对象的路径 } // UpdateObjectRequest 用于 POST /database/metadata/object/update type UpdateObjectRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` UpdateRequest meta.UpdateObjectRequest `json:"updateRequest" binding:"required"` } // DeleteTemplateRequest 用于 POST /database/metadata/delete/template type DeleteTemplateRequest struct { ConnID string `json:"connId" binding:"required"` // ConnInfo 用于信息打印,可选 ConnInfo string `json:"connInfo"` Path meta.ObjectPath `json:"path" binding:"required"` // 目标对象的路径 } // GetMetadataInfoRequest 用于 POST /database/metadata/info type GetMetadataInfoRequest struct { ConnID string `json:"connId" binding:"required"` ConnInfo string `json:"connInfo"` }