"""
Dictionaries module saves all transformations of functions and usages to access the catalogs
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
"""

from hub.helpers.data.hft_function_to_hub_function import HftFunctionToHubFunction
from hub.helpers.data.montreal_function_to_hub_function import MontrealFunctionToHubFunction
from hub.helpers.data.alkis_function_to_hub_function import AlkisFunctionToHubFunction
from hub.helpers.data.pluto_function_to_hub_function import PlutoFunctionToHubFunction
from hub.helpers.data.hub_function_to_nrel_construction_function import HubFunctionToNrelConstructionFunction
from hub.helpers.data.hub_function_to_nrcan_construction_function import HubFunctionToNrcanConstructionFunction
from hub.helpers.data.hub_usage_to_comnet_usage import HubUsageToComnetUsage
from hub.helpers.data.hub_usage_to_hft_usage import HubUsageToHftUsage
from hub.helpers.data.hub_usage_to_nrcan_usage import HubUsageToNrcanUsage

class Dictionaries:
  """
  Dictionaries class
  """

  @property
  def hub_usage_to_hft_usage(self) -> dict:
    """
    Hub usage to HfT usage, transformation dictionary
    :return: dict
    """
    return HubUsageToHftUsage().dictionary

  @property
  def hub_usage_to_comnet_usage(self) -> dict:
    """
    Hub usage to Comnet usage, transformation dictionary
    :return: dict
    """
    return HubUsageToComnetUsage().dictionary

  @property
  def hub_usage_to_nrcan_usage(self) -> dict:
    """
    Get hub usage to NRCAN usage, transformation dictionary
    :return: dict
    """
    return HubUsageToNrcanUsage().dictionary

  @property
  def hub_function_to_nrcan_construction_function(self) -> dict:
    """
    Get hub function to NRCAN construction function, transformation dictionary
    :return: dict
    """
    return HubFunctionToNrcanConstructionFunction().dictionary

  @property
  def hub_function_to_nrel_construction_function(self) -> dict:
    """
    Get hub function to NREL construction function, transformation dictionary
    :return: dict
    """
    return HubFunctionToNrelConstructionFunction().dictionary

  @property
  def pluto_function_to_hub_function(self) -> dict:
    """
    Get Pluto function to hub function, transformation dictionary
    :return: dict
    """
    return PlutoFunctionToHubFunction().dictionary

  @property
  def hft_function_to_hub_function(self) -> dict:
    """
    Get Hft function to hub function, transformation dictionary
    :return: dict
    """
    return HftFunctionToHubFunction().dictionary

  @property
  def montreal_function_to_hub_function(self) -> dict:
    """
    Get Montreal function to hub function, transformation dictionary
    """
    return MontrealFunctionToHubFunction().dictionary

  @property
  def alkis_function_to_hub_function(self) -> dict:
    """
    Get Alkis function to hub function, transformation dictionary
    """
    return AlkisFunctionToHubFunction().dictionary

