Enum

enum SimulatorItemPeriodicity {
  MONTHLY
  ONE_SHOT
}

enum SimulatorItemOccurence {
  ONE_TIME
  TWO_TIME
  THREE_TIME
  FOUR_TIME
  FIVE_TIME
}

Static data types

class SimulatorSessionItemType {
  final SimulatorCategory category;
  final TagTheme? tagTheme;
  final String label;
  final int priorty;
  final String reference;
  final int? numbeoItemId;
}

Suggested value

Récupération de la suggested value : Si le Type contient un numbeoItemId -> aller chercher dans les Index (averageValue) du pays associé au contexte de la simulation.

Models sent to Riverpod

class SimulatorSessionViewModel {
  final int? hiveKey;
  final String name;
  final String destinationCountryId;
  final double duration;
  final bool isMainSimulation;
  final double totalResourcesAmount;
  final double totalCostsAmount;
  final double remainingCostAmount;
  final double confidence;
}

class SimulationSessionDetailsViewModel extends SimulatorSessionViewModel {
  final Map<SimulatorCategory, SimulationSessionDetailsGroupViewModel> groups;
}

class SimulationSessionDetailsGroupViewModel {
  // Key of this map: priority
  final Map<int, List<SimulatorSessionItemViewModel>> items;
  final int groupTotalAmount;
  final double groupConfidence;
}

class SimulatorSessionItemViewModel {
  final int? hiveKey;
  final SimulatorSessionItemType type;
  final double? amount;
  final double? suggestedValue;
  final SimulatorItemPeriodicity periodicity;
  final SimulatorItemOccurence? occurence;
}