export interface ReportVO extends BaseEntity {
  reportId: string | number;
  reportName: string;
  reportType: string;
  reportDesc: string;
  reportConfig: string;
  status: string;
}

export interface ReportForm {
  reportId: string | number | undefined;
  reportName: string;
  reportType: string;
  reportDesc: string;
  reportConfig: string;
  status: string;
}

export interface ReportQuery extends PageQuery {
  reportName: string;
  reportType: string;
  status: string;
}

export interface DataSourceVO {
  id: string;
  name: string;
  type: string;
  description: string;
}

export interface FieldVO {
  id: string;
  name: string;
  type: string;
  viewId: string;
  viewName: string;
}

export interface ReportCondition {
  field: string;
  fieldType: string;
  viewId: string;
  viewName: string;
  label: string;
  type: string;
  operator: string;
  defaultValue: string;
  options?: { label: string; value: string }[];
}

export interface ReportColumn {
  field: string;
  label: string;
  type: string;
  viewId: string;
  viewName: string;
  width: number;
  align: string;
  sortable: boolean;
  summary?: boolean;
}

export interface ChartConfig {
  chartType: string;
  xField: string;
  yField: string;
  seriesField?: string;
}

export interface ReportConfig {
  displayType: 'table' | 'chart';
  conditions: ReportCondition[];
  columns: ReportColumn[];
  showSummary: boolean;
  summaryFields: string[];
  chartConfig?: ChartConfig;
}
