import { NodeTypeEnum, NodeDimensionEnum, NodeMetricEnum, NodeOrderDirectionEnum, AnalysisResultColumnKeyEnum } from "../enums"; import { Product, ProductAttribute, ProductCategory } from "./menu"; import { DiscountModule } from "./discount-module"; import { Inventory, InventoryCategory } from "./inventory"; export interface AnalysisRequestNode { type: NodeTypeEnum; timeRange: NodeTimeRange; dimensions: NodeDimensionEnum[]; metrics: NodeMetricEnum[]; restricts: NodeRestrict[]; orders: NodeOrder[]; nextToken?: string; limit?: number; } export interface NodeTimeRange { /** * format: `YYYYMMDD` */ start: number; /** * format: `YYYYMMDD` */ end: number; } export interface NodeRestrict { dimension: NodeDimensionEnum; inValues?: string[] | number[]; betweenValues?: NodeTimeRange; } export interface NodeOrder { metric: AnalysisResultColumnKeyEnum; direction: NodeOrderDirectionEnum; } export interface AnalysisResult { key: NodeTypeEnum; value: AnalysisResultValue; nextToken?: string; error?: any; } export interface AnalysisResultValue { resultTable?: AnalysisResultTable; products?: Partial[]; productCategories?: Partial[]; discountModules?: DiscountModule[]; productAttributes?: Partial[]; inventories?: Partial[]; inventoryCategories?: Partial[]; } export declare type SimpleEntity = ProductCategory | Product | ProductAttribute | Inventory | InventoryCategory; export interface AnalysisResultTable { resultColumns: AnalysisResultColumn[]; } export interface AnalysisResultColumn { columnKey: AnalysisResultColumnKeyEnum; values: string[] | number[]; }