export interface IncomeInfo {
  dates: string[];
  incomes: number[];
  newIncome: number | null;
  newOrder: number | null;
  newRefund: number | null;
  newRefundOrder: number | null;
}

export interface ChargeUserInfo {
  dates: string[];
  userCount: number[];
  newCount: number | null;
  totalCount: number | null;
}
type DeviceContentInfo = {
  DIRECT: number | null;
  ALTERNATING: number | null;
};
type DeviceItemInfo = {
  DEPOT: DeviceContentInfo;
  PILE: DeviceContentInfo;
  TANK: DeviceContentInfo;
};
type DeviceWorkInfo = {
  LOAD: (number | null)[];
  UNKNOWN: (number | null)[];
  UNLOAD: (number | null)[];
};
export interface DeviceVoInfo {
  deviceType?: DeviceItemInfo;
  deviceWork?: DeviceWorkInfo;
  newDevice?: number | null;
  totalDevice?: number | null;
}

export interface ChargeVoInfo {
  chargeTotal: number | null;
  dates: string[];
  canUseRate: number[];
  failureRate: number[];
  useRate: number[];
  charge: number[];
}

export interface MapStatisticsInfo {
  deviceCount: number | null;
  deviceFaultCount: number | null;
  deviceFreeCount: number | null;
  deviceUseCount: number | null;
  parkCount: number | null;
  parkInstalledCount: number | null;
  parkInstallingCount: number | null;
  parkUnInstallCount: number | null;
  totalPrice: number | null;
}

interface parkMapVoInfo {
  parkName?: string;
  longitude: number;
  latitude: number;
  areaName: string;
  mapStatistics: MapStatisticsInfo;
}

export type MapVoInfo = Record<string, parkMapVoInfo>;

export interface ParkVoInfo {
  building: number | null;
  completed: number | null;
  installing: number | null;
}

export interface ComplaintVoInfo {
  exceptionName: string;
  processCount: number | null;
  processingCount: number | null;
  processedCount: number | null;
}

export interface Scale {
  ratioX: number;
  ratioY: number;
}

// 容量数据
export interface CapacityInfo {
  title: string;
  value: number;
  unit: string;
  key: string;
}
// 消费
export interface ConsumeItem {
  title: string;
  value: number | string;
  unit: string;
  key: string;
  type?: 'blue' | 'purple' | 'green' | 'pink';
}

// 二级菜单
export interface Level2MenuItem {
  title: string;
  key: string;
  path?: string;
  active?: boolean;
}

// 系统参数
export interface SysInfo {
  incomingInstalledCapacity: number; // 进线装机容量 单位kW
  totInstalledCapacity: number; // 光伏装机容量 单位kW
  energyStorageInstalledCapacity: number; // 储能装机容量 单位kWh
  loadCapacity: number; // 负荷容量 单位kW
}

// 节能减排
export interface ConsumeInfo {
  systemBenefits: number; // 系统收益 单位万元
  electricityConsumption: number; // 用电消费 单位万元
  standardCoalSaving: number; // 节约标准煤 单位吨
  carbonDioxideEmissionReduction: number; // 减排二氧化碳 单位吨
}

// 后端系统统计接口返回的数据
export type SysAndConsumeInfo = SysInfo & ConsumeInfo; // 合并类型

// 配电台区统计返回的数据
export interface CourtsStructInfo {
  powerDistributionAreaId: string; // 配电台区id
  powerDistributionAreaName: string; // 配电台区名称
  dailyChargeCapacity: number; // FCS当日充电量 单位kwh 当日并网电量
  dailyDischargeCapacity: number; // FCS当日放电量 单位kwh 当日取网电量
  accumulativeChargeCapacity: number; // FCS累计充电量 单位kwh
  accumulativeDischargeCapacity: number; // FCS累计放电量
  VDC: number; // FCS直流电压 单位V
  U: number; // 母线侧储能电表电压U
  I: number; // 母线侧储能电表电流I 单位A
  P: number; // 母线侧储能电表功率P 单位kw
  Ua: number; // 交流进线电表Ua 单位V
  Ub: number; // 交流进线电表Ub 单位V
  Uc: number; // 交流进线电表Uc 单位V
  Pa: number; // 交流进线电表A相有功功率 单位kw
  Pb: number; // 交流进线电表B相有功功率
  Pc: number; // 交流进线电表C相有功功率
  TotP: number; // 光伏总功率
}

// 用户曲线-用户列表数据
export interface UserCurveVO {
  userId: string; // 用户id
  userName: string; // 用户名称
}

// 用户曲线-用户直来电实时数据
export interface UserDirectCurrentVO {
  userId: string; // 用户名称
  userName: string; // 用户名称
  faultStatus: number; //故障状态
  inputVoltage: number; // 输入电压
  outputVoltage: number; // 输出电压
  moduleTemperature: number; // 模块温度
  outputPower: number; // 输出功率
  inputPower: number; // 输入功率
  currentDayElectricity: number; // 当日电量
  totalElectricity: number; //总电量
}

// 用户曲线-配电台区用户曲线直来电输出电压数据
export interface UserCurveChartVO {
  axisX: string[];
  series: {
    [propName: string]: string[];
  };
}

// Tab
export interface TebItem {
  title: string;
  key: string;
  path?: string;
  active?: boolean;
}

// 功率曲线
export interface SystemPower {
  busbarVoltage: number; // 母线电压
  synPower: number; // 并网功率
  eastBranchLine: number; // 东支线光伏
  westBranchLine: number; // 西支线光伏
  storedEnergy: number; // 储能充放电
  interconnectionArea: number; // 台区互联
}
