"""
Dictionaries module for Pluto function to hub function
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2022 Concordia CERC group
Project Coder Guille Gutierrez Guillermo.GutierrezMorote@concordia.ca
"""

import hub.helpers.constants as cte


class PlutoFunctionToHubFunction:
  """
  Pluto function to hub function class
  """
  def __init__(self):
    self._dictionary = {
      'A0': cte.SINGLE_FAMILY_HOUSE,
      'A1': cte.SINGLE_FAMILY_HOUSE,
      'A2': cte.SINGLE_FAMILY_HOUSE,
      'A3': cte.SINGLE_FAMILY_HOUSE,
      'A4': cte.SINGLE_FAMILY_HOUSE,
      'A5': cte.SINGLE_FAMILY_HOUSE,
      'A6': cte.SINGLE_FAMILY_HOUSE,
      'A7': cte.SINGLE_FAMILY_HOUSE,
      'A8': cte.SINGLE_FAMILY_HOUSE,
      'A9': cte.SINGLE_FAMILY_HOUSE,
      'B1': cte.MULTI_FAMILY_HOUSE,
      'B2': cte.MULTI_FAMILY_HOUSE,
      'B3': cte.MULTI_FAMILY_HOUSE,
      'B9': cte.MULTI_FAMILY_HOUSE,
      'C0': cte.RESIDENTIAL,
      'C1': cte.RESIDENTIAL,
      'C2': cte.RESIDENTIAL,
      'C3': cte.RESIDENTIAL,
      'C4': cte.RESIDENTIAL,
      'C5': cte.RESIDENTIAL,
      'C6': cte.RESIDENTIAL,
      'C7': cte.RESIDENTIAL,
      'C8': cte.RESIDENTIAL,
      'C9': cte.RESIDENTIAL,
      'D0': cte.RESIDENTIAL,
      'D1': cte.RESIDENTIAL,
      'D2': cte.RESIDENTIAL,
      'D3': cte.RESIDENTIAL,
      'D4': cte.RESIDENTIAL,
      'D5': cte.RESIDENTIAL,
      'D6': cte.RESIDENTIAL,
      'D7': cte.RESIDENTIAL,
      'D8': cte.RESIDENTIAL,
      'D9': cte.RESIDENTIAL,
      'E1': cte.WAREHOUSE,
      'E3': cte.WAREHOUSE,
      'E4': cte.WAREHOUSE,
      'E5': cte.WAREHOUSE,
      'E7': cte.WAREHOUSE,
      'E9': cte.WAREHOUSE,
      'F1': cte.WAREHOUSE,
      'F2': cte.WAREHOUSE,
      'F4': cte.WAREHOUSE,
      'F5': cte.WAREHOUSE,
      'F8': cte.WAREHOUSE,
      'F9': cte.WAREHOUSE,
      'G0': cte.SMALL_OFFICE,
      'G1': cte.SMALL_OFFICE,
      'G2': cte.SMALL_OFFICE,
      'G3': cte.SMALL_OFFICE,
      'G4': cte.SMALL_OFFICE,
      'G5': cte.SMALL_OFFICE,
      'G6': cte.SMALL_OFFICE,
      'G7': cte.SMALL_OFFICE,
      'G8': cte.SMALL_OFFICE,
      'G9': cte.SMALL_OFFICE,
      'H1': cte.HOTEL,
      'H2': cte.HOTEL,
      'H3': cte.HOTEL,
      'H4': cte.HOTEL,
      'H5': cte.HOTEL,
      'H6': cte.HOTEL,
      'H7': cte.HOTEL,
      'H8': cte.HOTEL,
      'H9': cte.HOTEL,
      'HB': cte.HOTEL,
      'HH': cte.HOTEL,
      'HR': cte.HOTEL,
      'HS': cte.HOTEL,
      'I1': cte.HOSPITAL,
      'I2': cte.OUT_PATIENT_HEALTH_CARE,
      'I3': cte.OUT_PATIENT_HEALTH_CARE,
      'I4': cte.RESIDENTIAL,
      'I5': cte.OUT_PATIENT_HEALTH_CARE,
      'I6': cte.OUT_PATIENT_HEALTH_CARE,
      'I7': cte.OUT_PATIENT_HEALTH_CARE,
      'I9': cte.OUT_PATIENT_HEALTH_CARE,
      'J1': cte.LARGE_OFFICE,
      'J2': cte.LARGE_OFFICE,
      'J3': cte.LARGE_OFFICE,
      'J4': cte.LARGE_OFFICE,
      'J5': cte.LARGE_OFFICE,
      'J6': cte.LARGE_OFFICE,
      'J7': cte.LARGE_OFFICE,
      'J8': cte.LARGE_OFFICE,
      'J9': cte.LARGE_OFFICE,
      'K1': cte.STRIP_MALL,
      'K2': cte.STRIP_MALL,
      'K3': cte.STRIP_MALL,
      'K4': cte.RESIDENTIAL,
      'K5': cte.RESTAURANT,
      'K6': cte.SUPERMARKET,
      'K7': cte.SUPERMARKET,
      'K8': cte.SUPERMARKET,
      'K9': cte.SUPERMARKET,
      'L1': cte.RESIDENTIAL,
      'L2': cte.RESIDENTIAL,
      'L3': cte.RESIDENTIAL,
      'L8': cte.RESIDENTIAL,
      'L9': cte.RESIDENTIAL,
      'M1': cte.LARGE_OFFICE,
      'M2': cte.LARGE_OFFICE,
      'M3': cte.LARGE_OFFICE,
      'M4': cte.LARGE_OFFICE,
      'M9': cte.LARGE_OFFICE,
      'N1': cte.RESIDENTIAL,
      'N2': cte.RESIDENTIAL,
      'N3': cte.RESIDENTIAL,
      'N4': cte.RESIDENTIAL,
      'N9': cte.RESIDENTIAL,
      'O1': cte.SMALL_OFFICE,
      'O2': cte.SMALL_OFFICE,
      'O3': cte.SMALL_OFFICE,
      'O4': cte.SMALL_OFFICE,
      'O5': cte.SMALL_OFFICE,
      'O6': cte.SMALL_OFFICE,
      'O7': cte.SMALL_OFFICE,
      'O8': cte.SMALL_OFFICE,
      'O9': cte.SMALL_OFFICE,
      'P1': cte.LARGE_OFFICE,
      'P2': cte.HOTEL,
      'P3': cte.SMALL_OFFICE,
      'P4': cte.SMALL_OFFICE,
      'P5': cte.SMALL_OFFICE,
      'P6': cte.SMALL_OFFICE,
      'P7': cte.LARGE_OFFICE,
      'P8': cte.LARGE_OFFICE,
      'P9': cte.SMALL_OFFICE,
      'Q0': cte.SMALL_OFFICE,
      'Q1': cte.SMALL_OFFICE,
      'Q2': cte.SMALL_OFFICE,
      'Q3': cte.SMALL_OFFICE,
      'Q4': cte.SMALL_OFFICE,
      'Q5': cte.SMALL_OFFICE,
      'Q6': cte.SMALL_OFFICE,
      'Q7': cte.SMALL_OFFICE,
      'Q8': cte.SMALL_OFFICE,
      'Q9': cte.SMALL_OFFICE,
      'R0': cte.RESIDENTIAL,
      'R1': cte.RESIDENTIAL,
      'R2': cte.RESIDENTIAL,
      'R3': cte.RESIDENTIAL,
      'R4': cte.RESIDENTIAL,
      'R5': cte.RESIDENTIAL,
      'R6': cte.RESIDENTIAL,
      'R7': cte.RESIDENTIAL,
      'R8': cte.RESIDENTIAL,
      'R9': cte.RESIDENTIAL,
      'RA': cte.RESIDENTIAL,
      'RB': cte.RESIDENTIAL,
      'RC': cte.RESIDENTIAL,
      'RD': cte.RESIDENTIAL,
      'RG': cte.RESIDENTIAL,
      'RH': cte.RESIDENTIAL,
      'RI': cte.RESIDENTIAL,
      'RK': cte.RESIDENTIAL,
      'RM': cte.RESIDENTIAL,
      'RR': cte.RESIDENTIAL,
      'RS': cte.RESIDENTIAL,
      'RW': cte.RESIDENTIAL,
      'RX': cte.RESIDENTIAL,
      'RZ': cte.RESIDENTIAL,
      'S0': cte.RESIDENTIAL,
      'S1': cte.RESIDENTIAL,
      'S2': cte.RESIDENTIAL,
      'S3': cte.RESIDENTIAL,
      'S4': cte.RESIDENTIAL,
      'S5': cte.RESIDENTIAL,
      'S9': cte.RESIDENTIAL,
      'U0': cte.WAREHOUSE,
      'U1': cte.WAREHOUSE,
      'U2': cte.WAREHOUSE,
      'U3': cte.WAREHOUSE,
      'U4': cte.WAREHOUSE,
      'U5': cte.WAREHOUSE,
      'U6': cte.WAREHOUSE,
      'U7': cte.WAREHOUSE,
      'U8': cte.WAREHOUSE,
      'U9': cte.WAREHOUSE,
      'W1': cte.PRIMARY_SCHOOL,
      'W2': cte.PRIMARY_SCHOOL,
      'W3': cte.SECONDARY_SCHOOL,
      'W4': cte.EDUCATION,
      'W5': cte.SECONDARY_SCHOOL,
      'W6': cte.SECONDARY_SCHOOL,
      'W7': cte.SECONDARY_SCHOOL,
      'W8': cte.PRIMARY_SCHOOL,
      'W9': cte.SECONDARY_SCHOOL,
      'Y1': cte.LARGE_OFFICE,
      'Y2': cte.LARGE_OFFICE,
      'Y3': cte.LARGE_OFFICE,
      'Y4': cte.LARGE_OFFICE,
      'Y5': cte.LARGE_OFFICE,
      'Y6': cte.LARGE_OFFICE,
      'Y7': cte.LARGE_OFFICE,
      'Y8': cte.LARGE_OFFICE,
      'Y9': cte.LARGE_OFFICE,
      'Z1': cte.LARGE_OFFICE
    }

  @property
  def dictionary(self) -> dict:
    """
    Get the dictionary
    :return: {}
    """
    return self._dictionary
