/*************** schema format from the backend *************** */ /** Schema type, consist of nodes and edges */ export type SchemaFromBackend = { edges: SchemaEdge[]; nodes: SchemaNode[]; }; export type SchemaStatsFromBackend = { edgeStats: { type: string; count: number; }[]; nodeStats: { key: string; labels: string[]; count: number; }[]; }; export type SchemaAttributeTypes = 'string' | 'float' | 'int' | 'bool' | 'date' | 'time' | 'datetime' | 'duration'; export type DimensionType = 'categorical' | 'numerical' | 'temporal' | 'spatial'; /** Attribute type, consist of a name */ export type SchemaAttribute = { name: string; type: SchemaAttributeTypes; dimension?: DimensionType; }; /** Node type, consist of a name and a list of attributes */ export type SchemaNode = { name: string; attributes: SchemaAttribute[]; type?: string; }; /** Edge type, consist of a name, start point, end point and a list of attributes */ export type SchemaEdge = { name: string; to: string; from: string; collection: string; attributes: SchemaAttribute[]; label: string; type?: string; }; export type GraphAttributeDimensions = { nodes: { [id: string]: { [id: string]: string } }; edges: { [id: string]: { [id: string]: string } }; };