All files / server/types metadata.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73                                                                                                                                                 
/**
 * Metadata and annotation types for API responses
 * Used for UI rendering and query result annotations
 */
 
import type { MeasureType, MeasureFormat, DimensionFormat, TimeGranularity } from './core'
 
/**
 * Cube relationship metadata for ERD visualization
 */
export interface CubeRelationshipMetadata {
  targetCube: string
  relationship: 'belongsTo' | 'hasOne' | 'hasMany' | 'belongsToMany'
  joinFields: Array<{
    sourceField: string
    targetField: string
  }>
}
 
/**
 * Cube metadata for API responses
 */
export interface CubeMetadata {
  name: string
  title: string
  description?: string
  measures: MeasureMetadata[]
  dimensions: DimensionMetadata[]
  segments: any[]
  relationships?: CubeRelationshipMetadata[]
}
 
/**
 * Measure metadata for API responses
 */
export interface MeasureMetadata {
  name: string
  title: string
  shortTitle: string
  type: MeasureType
  format?: MeasureFormat
  description?: string
}
 
/**
 * Dimension metadata for API responses
 */
export interface DimensionMetadata {
  name: string
  title: string
  shortTitle: string
  type: string
  format?: DimensionFormat
  description?: string
}
 
/**
 * Pre-aggregation configuration
 */
export interface SemanticPreAggregation {
  name: string
  measures: string[]
  dimensions: string[]
  timeDimension?: {
    dimension: string
    granularity: TimeGranularity[]
  }
  refreshKey?: {
    every: string
    sql?: string
  }
  indexes?: Record<string, string[]>
}