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

export namespace BiDataSourceConfigApi {
  export interface DataSourceConfig {
    id?: number;
    name?: string;
    type?: string;
    config?: string;
    status?: number;
    creator?: string;
    createTime?: string;
    updater?: string;
    updateTime?: string;
  }

  export interface PageResult {
    list: DataSourceConfig[];
    total: number;
  }
}

export function getDataSourceConfigPage(params?: { pageNo?: number; pageSize?: number }) {
  return requestClient.get<BiDataSourceConfigApi.PageResult>('/bi/data-source-config/page', { params });
}

export function getDataSourceConfig(id: number) {
  return requestClient.get<BiDataSourceConfigApi.DataSourceConfig>('/bi/data-source-config/get', { params: { id } });
}

export function createDataSourceConfig(data: BiDataSourceConfigApi.DataSourceConfig) {
  return requestClient.post<number>('/bi/data-source-config/create', data);
}

export function updateDataSourceConfig(data: BiDataSourceConfigApi.DataSourceConfig) {
  return requestClient.put<boolean>('/bi/data-source-config/update', data);
}

export function deleteDataSourceConfig(id: number) {
  return requestClient.delete<boolean>('/bi/data-source-config/delete', { params: { id } });
}
