export interface WebUser {
  id: number;
  name: string;
  email: string;
  password: string;
  isAdmin: boolean;
  isWharfManager: boolean;
  webUserWharves?: (WebUserWharvesEntity)[] | null;
}
export interface WebUserWharvesEntity {
  id: number;
  wharfID: number;
  webUserID: number;
  webUser: string;
  wharf: Wharf;
}
export interface Wharf {
  id: number;
  name: string;
  address: string;
  startDate: string;
  endDate: string;
  flowRates?: (FlowRatesEntity)[] | null;
  logs?: (LogsEntity)[] | null;
  pumps?: (PumpsEntity)[] | null;
  sensors?: (SensorsEntity)[] | null;
  webUserWharves?: (string)[] | null;
}
export interface FlowRatesEntity {
  id: number;
  timestamp: string;
  value: number;
  wharfID: number;
  wharf: string;
}
export interface LogsEntity {
  id: number;
  description: string;
  wharfID: number;
  wharf: string;
}
export interface PumpsEntity {
  id: number;
  pumpModelID: number;
  position: string;
  wharfID: number;
  sensorPumps?: (SensorPumpsEntity)[] | null;
  pumpEnergyConsumptions?: (PumpEnergyConsumptionsEntity)[] | null;
  pumpDatas?: (PumpDatasEntity)[] | null;
  wharf: string;
  pumpModel: PumpModel;
}
export interface SensorPumpsEntity {
  id: number;
  sensorID: number;
  pumpID: number;
  priority: number;
  sensor: string;
  pump: string;
}
export interface PumpEnergyConsumptionsEntity {
  id: number;
  percentage: number;
  value: number;
  timestamp: string;
  isDefault: boolean;
  pumpID: number;
  pump: string;
}
export interface PumpDatasEntity {
  id: number;
  value: number;
  pumpID: number;
  timestamp: string;
  pump: string;
}
export interface PumpModel {
  id: number;
  model: string;
  pump?: (string)[] | null;
}
export interface SensorsEntity {
  id: number;
  position: string;
  batteryPercentage: number;
  wharfID: number;
  wharf: string;
  sensorDatas?: (SensorDatasEntity)[] | null;
  defaultWaterLevelChanges?: (DefaultWaterLevelChangesEntity)[] | null;
  sensorPumps?: (SensorPumpsEntity)[] | null;
  sensorEnergyConsumptions?: (SensorEnergyConsumptionsEntity)[] | null;
}
export interface SensorDatasEntity {
  id: number;
  waterLevel: number;
  timestamp: string;
  sensorID: number;
  sensor: string;
}
export interface DefaultWaterLevelChangesEntity {
  id: number;
  percentage: number;
  waterLevelPerHour: number;
  timestamp: string;
  sensorID: number;
  sensor: string;
}
export interface SensorEnergyConsumptionsEntity {
  id: number;
  value: number;
  timestamp: string;
  isDefault: boolean;
  sensorID: number;
  sensor: string;
}
