Files
supersonic/webapp/packages/supersonic-fe/src/pages/SemanticModel/data.d.ts

244 lines
5.4 KiB
TypeScript

import { TreeGraphData } from '@antv/g6-core';
export type ISODateString =
`${number}-${number}-${number}T${number}:${number}:${number}.${number}+${number}:${number}`;
export type GraphConfigType = 'datasource' | 'dimension' | 'metric';
export type UserName = string;
export type SensitiveLevel = 0 | 1 | 2 | null;
// export type RefreshGraphData = (graphRootData: TreeGraphData) => void;
export type ToolBarSearchCallBack = (text: string) => void;
export declare namespace IDataSource {
interface IIdentifiersItem {
name: string;
type: string;
}
interface IDimensionsItem {
name: string;
type: string;
expr: null;
dateFormat: 'YYYY-MM-DD';
typeParams: {
isPrimary: boolean;
timeGranularity: string;
};
isCreateDimension: number;
nameCh: string;
}
interface IMeasuresItem {
name: string;
agg: string;
expr: string;
constraint: string;
alias: string;
create_metric: string;
nameCh: string;
isCreateMetric: number;
}
interface IDataSourceDetail {
queryType: string;
sqlQuery: string;
tableQuery: string;
identifiers: IIdentifiersItem[];
dimensions: IDimensionsItem[];
measures: IMeasuresItem[];
}
interface IDataSourceItem {
createdBy: UserName;
updatedBy: UserName;
createdAt: ISODateString;
updatedAt: ISODateString;
id: number;
name: string;
bizName: string;
description: string;
status: number | null;
sensitiveLevel: SensitiveLevel;
domainId: number;
databaseId: number;
datasourceDetail: IDataSourceDetail;
}
type IDataSourceList = IDataSourceItem[];
}
export declare namespace ISemantic {
interface IDomainItem {
createdBy?: string;
updatedBy?: string;
createdAt?: string;
updatedAt?: string;
id: number;
name: string;
bizName: string;
description: any;
status?: number;
typeEnum?: any;
sensitiveLevel?: number;
parentId: number;
fullPath?: string;
viewers?: any[];
viewOrgs?: any[];
admins?: string[];
adminOrgs?: any[];
isOpen?: number;
entity?: { entityId: number; names: string[] };
dimensionCnt?: number;
metricCnt?: number;
}
interface IDimensionItem {
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
id: number;
name: string;
bizName: string;
description: string;
status: number;
typeEnum: any;
sensitiveLevel: number;
domainId: number;
type: string;
expr: string;
fullPath: string;
datasourceId: number;
datasourceName: string;
datasourceBizName: string;
semanticType: string;
alias: string;
useCnt: number;
dimValueMaps: IDimensionValueSettingItem[];
}
interface IDimensionValueSettingItem {
techName: string;
bizName: string;
alias?: string[];
}
interface IMeasure {
name: string;
agg?: string;
expr: string;
constraint?: string;
alias?: string;
createMetric?: string;
bizName: string;
isCreateMetric?: number;
datasourceId: number;
}
interface ITypeParams {
measures: IMeasure[];
expr: string;
}
interface IMetricItem {
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
id: number;
name: string;
bizName: string;
description: string;
status: number;
typeEnum: string;
sensitiveLevel: number;
domainId: number;
domainName: string;
type: string;
typeParams: ITypeParams;
fullPath: string;
dataFormatType: string;
dataFormat: string;
alias: string;
useCnt: number;
}
type IDimensionList = IDimensionItem[];
type IMetricList = IMetricItem[];
interface IDomainSchemaRelaItem {
domainId: number;
dimensions: IDimensionList;
metrics: IMetricList;
datasource: IDataSourceItem;
}
type IDomainSchemaRelaList = IDomainSchemaRelaItem[];
}
export declare namespace IChatConfig {
interface IEntity {
domainId: number;
domainName: string;
domainBizName: string;
names: string[];
entityIds: ISemantic.IMetricItem[];
entityInternalDetailDesc: {
dimensionList: ISemantic.IDimensionList;
metricList: ISemantic.IMetricList;
};
}
interface IConfig {
id: any;
domainId: number;
domainName: string;
chatAggRichConfig: IChatRichConfig;
chatDetailRichConfig: IChatRichConfig;
bizName: string;
statusEnum: string;
createdBy: string;
updatedBy: string;
createdAt: string;
updatedAt: string;
}
interface IKnowledgeInfosItem {
itemId: number;
bizName: string;
type?: string;
searchEnable?: boolean;
knowledgeAdvancedConfig?: IKnowledgeConfig;
}
type IKnowledgeInfosItemMap = Record<IKnowledgeInfosItem.bizName, IKnowledgeInfosItem>;
interface IKnowledgeConfig {
blackList: string[];
whiteList: string[];
ruleList: string[];
}
interface IChatRichConfig {
id?: number;
visibility: {
blackDimIdList: number[];
blackMetricIdList: number[];
whiteDimIdList: number[];
whiteMetricIdList: number[];
};
entity: {
names: string[];
dimItem: ISemantic.IDimensionItem;
};
knowledgeInfos: IKnowledgeInfosItem[];
globalKnowledgeConfig: IKnowledgeConfig;
chatDefaultConfig: {
dimensions: ISemantic.IDimensionList;
metrics: ISemantic.IMetricList;
ratioMetrics: ISemantic.IMetricList;
unit: number;
period: string;
};
}
}