import { requestClient } from '#/api/request';

const prefix = 'database/';

/**
 * 获取表列表
 */
export async function getTableListApi() {
  return requestClient.get<any>(`${prefix}list-tables`);
}

/**
 * 获取表详细信息
 * @param tableName 表名
 */
export async function getTableInfoApi(tableName: string) {
  return requestClient.get<any>(`${prefix}get-table-info`, { params: { table_name: tableName } });
}

/**
 * 获取表数据（分页）
 * @param data 查询参数
 */
export async function getTableDataApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}get-table-data`, data);
}

/**
 * 更新表数据
 * @param data 更新参数
 */
export async function updateTableDataApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update-table-data`, data);
}

/**
 * 删除表数据
 * @param data 删除参数
 */
export async function deleteTableDataApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}delete-table-data`, data);
}

/**
 * 插入表数据
 * @param data 插入参数
 */
export async function insertTableDataApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}insert-table-data`, data);
}

/**
 * 更新表注释
 * @param data 更新参数
 */
export async function updateTableCommentApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update-table-comment`, data);
}

/**
 * 更新字段注释
 * @param data 更新参数
 */
export async function updateColumnCommentApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update-column-comment`, data);
}

/**
 * 添加索引
 * @param data 添加参数
 */
export async function addIndexApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}add-index`, data);
}

/**
 * 删除索引
 * @param data 删除参数
 */
export async function dropIndexApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}drop-index`, data);
}

/**
 * 修改表结构
 * @param data 修改参数
 */
export async function updateTableStructureApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}update-table-structure`, data);
}

/**
 * 批量删除表数据
 * @param data 删除参数
 */
export async function batchDeleteTableDataApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}batch-delete-table-data`, data);
}

/**
 * 执行SQL查询（仅SELECT）
 * @param data 查询参数
 */
export async function executeSqlQueryApi(data: Record<string, any>) {
  return requestClient.post<any>(`${prefix}execute-sql-query`, data);
}

/**
 * 获取变更记录列表
 * @param params 查询参数
 */
export async function getChangeLogApi(params: Record<string, any>) {
  return requestClient.get<any>(`${prefix}get-change-log`, { params });
}
