# -*- coding: utf-8 -*-

"""
uexcorpapi

This file was automatically generated by APIMATIC v3.0 (
 https://www.apimatic.io ).
"""
from uexcorpapi.api_helper import APIHelper


class Datum5(object):

    """Implementation of the 'Datum5' model.

    Attributes:
        city_name (str): The model property of type str.
        commodity_code (str): The model property of type str.
        commodity_name (str): The model property of type str.
        commodity_slug (str): The model property of type str.
        container_sizes (str): The model property of type str.
        date_added (str): The model property of type str.
        date_modified (str): The model property of type str.
        faction_affinity (str): The model property of type str.
        faction_name (str): The model property of type str.
        game_version (str): The model property of type str.
        id (str): The model property of type str.
        id_city (str): The model property of type str.
        id_commodity (str): The model property of type str.
        id_faction (str): The model property of type str.
        id_moon (str): The model property of type str.
        id_orbit (str): The model property of type str.
        id_outpost (str): The model property of type str.
        id_planet (str): The model property of type str.
        id_poi (str): The model property of type str.
        id_star_system (str): The model property of type str.
        id_terminal (str): The model property of type str.
        moon_name (Any): The model property of type Any.
        orbit_name (str): The model property of type str.
        outpost_name (Any): The model property of type Any.
        planet_name (str): The model property of type str.
        poi_name (Any): The model property of type Any.
        price_buy (str): The model property of type str.
        price_buy_avg (str): The model property of type str.
        price_buy_avg_month (str): The model property of type str.
        price_buy_avg_week (str): The model property of type str.
        price_buy_max (str): The model property of type str.
        price_buy_max_month (str): The model property of type str.
        price_buy_max_week (str): The model property of type str.
        price_buy_min (str): The model property of type str.
        price_buy_min_month (str): The model property of type str.
        price_buy_min_week (str): The model property of type str.
        price_buy_users (str): The model property of type str.
        price_buy_users_rows (str): The model property of type str.
        price_sell (str): The model property of type str.
        price_sell_avg (str): The model property of type str.
        price_sell_avg_month (str): The model property of type str.
        price_sell_avg_week (str): The model property of type str.
        price_sell_max (str): The model property of type str.
        price_sell_max_month (str): The model property of type str.
        price_sell_max_week (str): The model property of type str.
        price_sell_min (str): The model property of type str.
        price_sell_min_month (str): The model property of type str.
        price_sell_min_week (str): The model property of type str.
        price_sell_users (str): The model property of type str.
        price_sell_users_rows (str): The model property of type str.
        scu_buy (str): The model property of type str.
        scu_buy_avg (str): The model property of type str.
        scu_buy_avg_month (str): The model property of type str.
        scu_buy_avg_week (str): The model property of type str.
        scu_buy_max (str): The model property of type str.
        scu_buy_max_month (str): The model property of type str.
        scu_buy_max_week (str): The model property of type str.
        scu_buy_min (str): The model property of type str.
        scu_buy_min_month (str): The model property of type str.
        scu_buy_min_week (str): The model property of type str.
        scu_buy_users (str): The model property of type str.
        scu_buy_users_rows (str): The model property of type str.
        scu_sell (str): The model property of type str.
        scu_sell_avg (str): The model property of type str.
        scu_sell_avg_month (str): The model property of type str.
        scu_sell_avg_week (str): The model property of type str.
        scu_sell_max (str): The model property of type str.
        scu_sell_max_month (str): The model property of type str.
        scu_sell_max_week (str): The model property of type str.
        scu_sell_min (str): The model property of type str.
        scu_sell_min_month (str): The model property of type str.
        scu_sell_min_week (str): The model property of type str.
        scu_sell_stock (str): The model property of type str.
        scu_sell_stock_avg (str): The model property of type str.
        scu_sell_stock_avg_month (str): The model property of type str.
        scu_sell_stock_avg_week (str): The model property of type str.
        scu_sell_users (str): The model property of type str.
        scu_sell_users_rows (str): The model property of type str.
        space_station_name (Any): The model property of type Any.
        star_system_name (str): The model property of type str.
        status_buy (str): The model property of type str.
        status_buy_avg (str): The model property of type str.
        status_buy_avg_month (str): The model property of type str.
        status_buy_avg_week (str): The model property of type str.
        status_buy_max (str): The model property of type str.
        status_buy_max_month (str): The model property of type str.
        status_buy_max_week (str): The model property of type str.
        status_buy_min (str): The model property of type str.
        status_buy_min_month (str): The model property of type str.
        status_buy_min_week (str): The model property of type str.
        status_sell (str): The model property of type str.
        status_sell_avg (str): The model property of type str.
        status_sell_avg_month (str): The model property of type str.
        status_sell_avg_week (str): The model property of type str.
        status_sell_max (str): The model property of type str.
        status_sell_max_month (str): The model property of type str.
        status_sell_max_week (str): The model property of type str.
        status_sell_min (str): The model property of type str.
        status_sell_min_month (str): The model property of type str.
        status_sell_min_week (str): The model property of type str.
        terminal_code (str): The model property of type str.
        terminal_is_player_owned (str): The model property of type str.
        terminal_mcs (str): The model property of type str.
        terminal_name (str): The model property of type str.
        terminal_slug (str): The model property of type str.
        volatility_buy (str): The model property of type str.
        volatility_price_buy (str): The model property of type str.
        volatility_price_sell (str): The model property of type str.
        volatility_scu_buy (str): The model property of type str.
        volatility_scu_sell (str): The model property of type str.
        volatility_sell (str): The model property of type str.
        additional_properties (Dict[str, Any]): The additional properties for
            the model.

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "city_name": 'city_name',
        "commodity_code": 'commodity_code',
        "commodity_name": 'commodity_name',
        "commodity_slug": 'commodity_slug',
        "container_sizes": 'container_sizes',
        "date_added": 'date_added',
        "date_modified": 'date_modified',
        "faction_affinity": 'faction_affinity',
        "faction_name": 'faction_name',
        "game_version": 'game_version',
        "id": 'id',
        "id_city": 'id_city',
        "id_commodity": 'id_commodity',
        "id_faction": 'id_faction',
        "id_moon": 'id_moon',
        "id_orbit": 'id_orbit',
        "id_outpost": 'id_outpost',
        "id_planet": 'id_planet',
        "id_poi": 'id_poi',
        "id_star_system": 'id_star_system',
        "id_terminal": 'id_terminal',
        "moon_name": 'moon_name',
        "orbit_name": 'orbit_name',
        "outpost_name": 'outpost_name',
        "planet_name": 'planet_name',
        "poi_name": 'poi_name',
        "price_buy": 'price_buy',
        "price_buy_avg": 'price_buy_avg',
        "price_buy_avg_month": 'price_buy_avg_month',
        "price_buy_avg_week": 'price_buy_avg_week',
        "price_buy_max": 'price_buy_max',
        "price_buy_max_month": 'price_buy_max_month',
        "price_buy_max_week": 'price_buy_max_week',
        "price_buy_min": 'price_buy_min',
        "price_buy_min_month": 'price_buy_min_month',
        "price_buy_min_week": 'price_buy_min_week',
        "price_buy_users": 'price_buy_users',
        "price_buy_users_rows": 'price_buy_users_rows',
        "price_sell": 'price_sell',
        "price_sell_avg": 'price_sell_avg',
        "price_sell_avg_month": 'price_sell_avg_month',
        "price_sell_avg_week": 'price_sell_avg_week',
        "price_sell_max": 'price_sell_max',
        "price_sell_max_month": 'price_sell_max_month',
        "price_sell_max_week": 'price_sell_max_week',
        "price_sell_min": 'price_sell_min',
        "price_sell_min_month": 'price_sell_min_month',
        "price_sell_min_week": 'price_sell_min_week',
        "price_sell_users": 'price_sell_users',
        "price_sell_users_rows": 'price_sell_users_rows',
        "scu_buy": 'scu_buy',
        "scu_buy_avg": 'scu_buy_avg',
        "scu_buy_avg_month": 'scu_buy_avg_month',
        "scu_buy_avg_week": 'scu_buy_avg_week',
        "scu_buy_max": 'scu_buy_max',
        "scu_buy_max_month": 'scu_buy_max_month',
        "scu_buy_max_week": 'scu_buy_max_week',
        "scu_buy_min": 'scu_buy_min',
        "scu_buy_min_month": 'scu_buy_min_month',
        "scu_buy_min_week": 'scu_buy_min_week',
        "scu_buy_users": 'scu_buy_users',
        "scu_buy_users_rows": 'scu_buy_users_rows',
        "scu_sell": 'scu_sell',
        "scu_sell_avg": 'scu_sell_avg',
        "scu_sell_avg_month": 'scu_sell_avg_month',
        "scu_sell_avg_week": 'scu_sell_avg_week',
        "scu_sell_max": 'scu_sell_max',
        "scu_sell_max_month": 'scu_sell_max_month',
        "scu_sell_max_week": 'scu_sell_max_week',
        "scu_sell_min": 'scu_sell_min',
        "scu_sell_min_month": 'scu_sell_min_month',
        "scu_sell_min_week": 'scu_sell_min_week',
        "scu_sell_stock": 'scu_sell_stock',
        "scu_sell_stock_avg": 'scu_sell_stock_avg',
        "scu_sell_stock_avg_month": 'scu_sell_stock_avg_month',
        "scu_sell_stock_avg_week": 'scu_sell_stock_avg_week',
        "scu_sell_users": 'scu_sell_users',
        "scu_sell_users_rows": 'scu_sell_users_rows',
        "space_station_name": 'space_station_name',
        "star_system_name": 'star_system_name',
        "status_buy": 'status_buy',
        "status_buy_avg": 'status_buy_avg',
        "status_buy_avg_month": 'status_buy_avg_month',
        "status_buy_avg_week": 'status_buy_avg_week',
        "status_buy_max": 'status_buy_max',
        "status_buy_max_month": 'status_buy_max_month',
        "status_buy_max_week": 'status_buy_max_week',
        "status_buy_min": 'status_buy_min',
        "status_buy_min_month": 'status_buy_min_month',
        "status_buy_min_week": 'status_buy_min_week',
        "status_sell": 'status_sell',
        "status_sell_avg": 'status_sell_avg',
        "status_sell_avg_month": 'status_sell_avg_month',
        "status_sell_avg_week": 'status_sell_avg_week',
        "status_sell_max": 'status_sell_max',
        "status_sell_max_month": 'status_sell_max_month',
        "status_sell_max_week": 'status_sell_max_week',
        "status_sell_min": 'status_sell_min',
        "status_sell_min_month": 'status_sell_min_month',
        "status_sell_min_week": 'status_sell_min_week',
        "terminal_code": 'terminal_code',
        "terminal_is_player_owned": 'terminal_is_player_owned',
        "terminal_mcs": 'terminal_mcs',
        "terminal_name": 'terminal_name',
        "terminal_slug": 'terminal_slug',
        "volatility_buy": 'volatility_buy',
        "volatility_price_buy": 'volatility_price_buy',
        "volatility_price_sell": 'volatility_price_sell',
        "volatility_scu_buy": 'volatility_scu_buy',
        "volatility_scu_sell": 'volatility_scu_sell',
        "volatility_sell": 'volatility_sell'
    }

    def __init__(self,
                 city_name=None,
                 commodity_code=None,
                 commodity_name=None,
                 commodity_slug=None,
                 container_sizes=None,
                 date_added=None,
                 date_modified=None,
                 faction_affinity=None,
                 faction_name=None,
                 game_version=None,
                 id=None,
                 id_city=None,
                 id_commodity=None,
                 id_faction=None,
                 id_moon=None,
                 id_orbit=None,
                 id_outpost=None,
                 id_planet=None,
                 id_poi=None,
                 id_star_system=None,
                 id_terminal=None,
                 moon_name=None,
                 orbit_name=None,
                 outpost_name=None,
                 planet_name=None,
                 poi_name=None,
                 price_buy=None,
                 price_buy_avg=None,
                 price_buy_avg_month=None,
                 price_buy_avg_week=None,
                 price_buy_max=None,
                 price_buy_max_month=None,
                 price_buy_max_week=None,
                 price_buy_min=None,
                 price_buy_min_month=None,
                 price_buy_min_week=None,
                 price_buy_users=None,
                 price_buy_users_rows=None,
                 price_sell=None,
                 price_sell_avg=None,
                 price_sell_avg_month=None,
                 price_sell_avg_week=None,
                 price_sell_max=None,
                 price_sell_max_month=None,
                 price_sell_max_week=None,
                 price_sell_min=None,
                 price_sell_min_month=None,
                 price_sell_min_week=None,
                 price_sell_users=None,
                 price_sell_users_rows=None,
                 scu_buy=None,
                 scu_buy_avg=None,
                 scu_buy_avg_month=None,
                 scu_buy_avg_week=None,
                 scu_buy_max=None,
                 scu_buy_max_month=None,
                 scu_buy_max_week=None,
                 scu_buy_min=None,
                 scu_buy_min_month=None,
                 scu_buy_min_week=None,
                 scu_buy_users=None,
                 scu_buy_users_rows=None,
                 scu_sell=None,
                 scu_sell_avg=None,
                 scu_sell_avg_month=None,
                 scu_sell_avg_week=None,
                 scu_sell_max=None,
                 scu_sell_max_month=None,
                 scu_sell_max_week=None,
                 scu_sell_min=None,
                 scu_sell_min_month=None,
                 scu_sell_min_week=None,
                 scu_sell_stock=None,
                 scu_sell_stock_avg=None,
                 scu_sell_stock_avg_month=None,
                 scu_sell_stock_avg_week=None,
                 scu_sell_users=None,
                 scu_sell_users_rows=None,
                 space_station_name=None,
                 star_system_name=None,
                 status_buy=None,
                 status_buy_avg=None,
                 status_buy_avg_month=None,
                 status_buy_avg_week=None,
                 status_buy_max=None,
                 status_buy_max_month=None,
                 status_buy_max_week=None,
                 status_buy_min=None,
                 status_buy_min_month=None,
                 status_buy_min_week=None,
                 status_sell=None,
                 status_sell_avg=None,
                 status_sell_avg_month=None,
                 status_sell_avg_week=None,
                 status_sell_max=None,
                 status_sell_max_month=None,
                 status_sell_max_week=None,
                 status_sell_min=None,
                 status_sell_min_month=None,
                 status_sell_min_week=None,
                 terminal_code=None,
                 terminal_is_player_owned=None,
                 terminal_mcs=None,
                 terminal_name=None,
                 terminal_slug=None,
                 volatility_buy=None,
                 volatility_price_buy=None,
                 volatility_price_sell=None,
                 volatility_scu_buy=None,
                 volatility_scu_sell=None,
                 volatility_sell=None,
                 additional_properties=None):
        """Constructor for the Datum5 class"""

        # Initialize members of the class
        self.city_name = city_name 
        self.commodity_code = commodity_code 
        self.commodity_name = commodity_name 
        self.commodity_slug = commodity_slug 
        self.container_sizes = container_sizes 
        self.date_added = date_added 
        self.date_modified = date_modified 
        self.faction_affinity = faction_affinity 
        self.faction_name = faction_name 
        self.game_version = game_version 
        self.id = id 
        self.id_city = id_city 
        self.id_commodity = id_commodity 
        self.id_faction = id_faction 
        self.id_moon = id_moon 
        self.id_orbit = id_orbit 
        self.id_outpost = id_outpost 
        self.id_planet = id_planet 
        self.id_poi = id_poi 
        self.id_star_system = id_star_system 
        self.id_terminal = id_terminal 
        self.moon_name = moon_name 
        self.orbit_name = orbit_name 
        self.outpost_name = outpost_name 
        self.planet_name = planet_name 
        self.poi_name = poi_name 
        self.price_buy = price_buy 
        self.price_buy_avg = price_buy_avg 
        self.price_buy_avg_month = price_buy_avg_month 
        self.price_buy_avg_week = price_buy_avg_week 
        self.price_buy_max = price_buy_max 
        self.price_buy_max_month = price_buy_max_month 
        self.price_buy_max_week = price_buy_max_week 
        self.price_buy_min = price_buy_min 
        self.price_buy_min_month = price_buy_min_month 
        self.price_buy_min_week = price_buy_min_week 
        self.price_buy_users = price_buy_users 
        self.price_buy_users_rows = price_buy_users_rows 
        self.price_sell = price_sell 
        self.price_sell_avg = price_sell_avg 
        self.price_sell_avg_month = price_sell_avg_month 
        self.price_sell_avg_week = price_sell_avg_week 
        self.price_sell_max = price_sell_max 
        self.price_sell_max_month = price_sell_max_month 
        self.price_sell_max_week = price_sell_max_week 
        self.price_sell_min = price_sell_min 
        self.price_sell_min_month = price_sell_min_month 
        self.price_sell_min_week = price_sell_min_week 
        self.price_sell_users = price_sell_users 
        self.price_sell_users_rows = price_sell_users_rows 
        self.scu_buy = scu_buy 
        self.scu_buy_avg = scu_buy_avg 
        self.scu_buy_avg_month = scu_buy_avg_month 
        self.scu_buy_avg_week = scu_buy_avg_week 
        self.scu_buy_max = scu_buy_max 
        self.scu_buy_max_month = scu_buy_max_month 
        self.scu_buy_max_week = scu_buy_max_week 
        self.scu_buy_min = scu_buy_min 
        self.scu_buy_min_month = scu_buy_min_month 
        self.scu_buy_min_week = scu_buy_min_week 
        self.scu_buy_users = scu_buy_users 
        self.scu_buy_users_rows = scu_buy_users_rows 
        self.scu_sell = scu_sell 
        self.scu_sell_avg = scu_sell_avg 
        self.scu_sell_avg_month = scu_sell_avg_month 
        self.scu_sell_avg_week = scu_sell_avg_week 
        self.scu_sell_max = scu_sell_max 
        self.scu_sell_max_month = scu_sell_max_month 
        self.scu_sell_max_week = scu_sell_max_week 
        self.scu_sell_min = scu_sell_min 
        self.scu_sell_min_month = scu_sell_min_month 
        self.scu_sell_min_week = scu_sell_min_week 
        self.scu_sell_stock = scu_sell_stock 
        self.scu_sell_stock_avg = scu_sell_stock_avg 
        self.scu_sell_stock_avg_month = scu_sell_stock_avg_month 
        self.scu_sell_stock_avg_week = scu_sell_stock_avg_week 
        self.scu_sell_users = scu_sell_users 
        self.scu_sell_users_rows = scu_sell_users_rows 
        self.space_station_name = space_station_name 
        self.star_system_name = star_system_name 
        self.status_buy = status_buy 
        self.status_buy_avg = status_buy_avg 
        self.status_buy_avg_month = status_buy_avg_month 
        self.status_buy_avg_week = status_buy_avg_week 
        self.status_buy_max = status_buy_max 
        self.status_buy_max_month = status_buy_max_month 
        self.status_buy_max_week = status_buy_max_week 
        self.status_buy_min = status_buy_min 
        self.status_buy_min_month = status_buy_min_month 
        self.status_buy_min_week = status_buy_min_week 
        self.status_sell = status_sell 
        self.status_sell_avg = status_sell_avg 
        self.status_sell_avg_month = status_sell_avg_month 
        self.status_sell_avg_week = status_sell_avg_week 
        self.status_sell_max = status_sell_max 
        self.status_sell_max_month = status_sell_max_month 
        self.status_sell_max_week = status_sell_max_week 
        self.status_sell_min = status_sell_min 
        self.status_sell_min_month = status_sell_min_month 
        self.status_sell_min_week = status_sell_min_week 
        self.terminal_code = terminal_code 
        self.terminal_is_player_owned = terminal_is_player_owned 
        self.terminal_mcs = terminal_mcs 
        self.terminal_name = terminal_name 
        self.terminal_slug = terminal_slug 
        self.volatility_buy = volatility_buy 
        self.volatility_price_buy = volatility_price_buy 
        self.volatility_price_sell = volatility_price_sell 
        self.volatility_scu_buy = volatility_scu_buy 
        self.volatility_scu_sell = volatility_scu_sell 
        self.volatility_sell = volatility_sell 

        # Add additional model properties to the instance
        if additional_properties is None:
            additional_properties = {}
        self.additional_properties = additional_properties

    @classmethod
    def from_dictionary(cls,
                        dictionary):
        """Creates an instance of this model from a dictionary

        Args:
            dictionary (dictionary): A dictionary representation of the object
            as obtained from the deserialization of the server's response. The
            keys MUST match property names in the API description.

        Returns:
            object: An instance of this structure class.

        """

        if not isinstance(dictionary, dict) or dictionary is None:
            return None

        # Extract variables from the dictionary
        city_name = dictionary.get("city_name") if dictionary.get("city_name") else None
        commodity_code = dictionary.get("commodity_code") if dictionary.get("commodity_code") else None
        commodity_name = dictionary.get("commodity_name") if dictionary.get("commodity_name") else None
        commodity_slug = dictionary.get("commodity_slug") if dictionary.get("commodity_slug") else None
        container_sizes = dictionary.get("container_sizes") if dictionary.get("container_sizes") else None
        date_added = dictionary.get("date_added") if dictionary.get("date_added") else None
        date_modified = dictionary.get("date_modified") if dictionary.get("date_modified") else None
        faction_affinity = dictionary.get("faction_affinity") if dictionary.get("faction_affinity") else None
        faction_name = dictionary.get("faction_name") if dictionary.get("faction_name") else None
        game_version = dictionary.get("game_version") if dictionary.get("game_version") else None
        id = dictionary.get("id") if dictionary.get("id") else None
        id_city = dictionary.get("id_city") if dictionary.get("id_city") else None
        id_commodity = dictionary.get("id_commodity") if dictionary.get("id_commodity") else None
        id_faction = dictionary.get("id_faction") if dictionary.get("id_faction") else None
        id_moon = dictionary.get("id_moon") if dictionary.get("id_moon") else None
        id_orbit = dictionary.get("id_orbit") if dictionary.get("id_orbit") else None
        id_outpost = dictionary.get("id_outpost") if dictionary.get("id_outpost") else None
        id_planet = dictionary.get("id_planet") if dictionary.get("id_planet") else None
        id_poi = dictionary.get("id_poi") if dictionary.get("id_poi") else None
        id_star_system = dictionary.get("id_star_system") if dictionary.get("id_star_system") else None
        id_terminal = dictionary.get("id_terminal") if dictionary.get("id_terminal") else None
        moon_name = dictionary.get("moon_name") if dictionary.get("moon_name") else None
        orbit_name = dictionary.get("orbit_name") if dictionary.get("orbit_name") else None
        outpost_name = dictionary.get("outpost_name") if dictionary.get("outpost_name") else None
        planet_name = dictionary.get("planet_name") if dictionary.get("planet_name") else None
        poi_name = dictionary.get("poi_name") if dictionary.get("poi_name") else None
        price_buy = dictionary.get("price_buy") if dictionary.get("price_buy") else None
        price_buy_avg = dictionary.get("price_buy_avg") if dictionary.get("price_buy_avg") else None
        price_buy_avg_month = dictionary.get("price_buy_avg_month") if dictionary.get("price_buy_avg_month") else None
        price_buy_avg_week = dictionary.get("price_buy_avg_week") if dictionary.get("price_buy_avg_week") else None
        price_buy_max = dictionary.get("price_buy_max") if dictionary.get("price_buy_max") else None
        price_buy_max_month = dictionary.get("price_buy_max_month") if dictionary.get("price_buy_max_month") else None
        price_buy_max_week = dictionary.get("price_buy_max_week") if dictionary.get("price_buy_max_week") else None
        price_buy_min = dictionary.get("price_buy_min") if dictionary.get("price_buy_min") else None
        price_buy_min_month = dictionary.get("price_buy_min_month") if dictionary.get("price_buy_min_month") else None
        price_buy_min_week = dictionary.get("price_buy_min_week") if dictionary.get("price_buy_min_week") else None
        price_buy_users = dictionary.get("price_buy_users") if dictionary.get("price_buy_users") else None
        price_buy_users_rows = dictionary.get("price_buy_users_rows") if dictionary.get("price_buy_users_rows") else None
        price_sell = dictionary.get("price_sell") if dictionary.get("price_sell") else None
        price_sell_avg = dictionary.get("price_sell_avg") if dictionary.get("price_sell_avg") else None
        price_sell_avg_month = dictionary.get("price_sell_avg_month") if dictionary.get("price_sell_avg_month") else None
        price_sell_avg_week = dictionary.get("price_sell_avg_week") if dictionary.get("price_sell_avg_week") else None
        price_sell_max = dictionary.get("price_sell_max") if dictionary.get("price_sell_max") else None
        price_sell_max_month = dictionary.get("price_sell_max_month") if dictionary.get("price_sell_max_month") else None
        price_sell_max_week = dictionary.get("price_sell_max_week") if dictionary.get("price_sell_max_week") else None
        price_sell_min = dictionary.get("price_sell_min") if dictionary.get("price_sell_min") else None
        price_sell_min_month = dictionary.get("price_sell_min_month") if dictionary.get("price_sell_min_month") else None
        price_sell_min_week = dictionary.get("price_sell_min_week") if dictionary.get("price_sell_min_week") else None
        price_sell_users = dictionary.get("price_sell_users") if dictionary.get("price_sell_users") else None
        price_sell_users_rows = dictionary.get("price_sell_users_rows") if dictionary.get("price_sell_users_rows") else None
        scu_buy = dictionary.get("scu_buy") if dictionary.get("scu_buy") else None
        scu_buy_avg = dictionary.get("scu_buy_avg") if dictionary.get("scu_buy_avg") else None
        scu_buy_avg_month = dictionary.get("scu_buy_avg_month") if dictionary.get("scu_buy_avg_month") else None
        scu_buy_avg_week = dictionary.get("scu_buy_avg_week") if dictionary.get("scu_buy_avg_week") else None
        scu_buy_max = dictionary.get("scu_buy_max") if dictionary.get("scu_buy_max") else None
        scu_buy_max_month = dictionary.get("scu_buy_max_month") if dictionary.get("scu_buy_max_month") else None
        scu_buy_max_week = dictionary.get("scu_buy_max_week") if dictionary.get("scu_buy_max_week") else None
        scu_buy_min = dictionary.get("scu_buy_min") if dictionary.get("scu_buy_min") else None
        scu_buy_min_month = dictionary.get("scu_buy_min_month") if dictionary.get("scu_buy_min_month") else None
        scu_buy_min_week = dictionary.get("scu_buy_min_week") if dictionary.get("scu_buy_min_week") else None
        scu_buy_users = dictionary.get("scu_buy_users") if dictionary.get("scu_buy_users") else None
        scu_buy_users_rows = dictionary.get("scu_buy_users_rows") if dictionary.get("scu_buy_users_rows") else None
        scu_sell = dictionary.get("scu_sell") if dictionary.get("scu_sell") else None
        scu_sell_avg = dictionary.get("scu_sell_avg") if dictionary.get("scu_sell_avg") else None
        scu_sell_avg_month = dictionary.get("scu_sell_avg_month") if dictionary.get("scu_sell_avg_month") else None
        scu_sell_avg_week = dictionary.get("scu_sell_avg_week") if dictionary.get("scu_sell_avg_week") else None
        scu_sell_max = dictionary.get("scu_sell_max") if dictionary.get("scu_sell_max") else None
        scu_sell_max_month = dictionary.get("scu_sell_max_month") if dictionary.get("scu_sell_max_month") else None
        scu_sell_max_week = dictionary.get("scu_sell_max_week") if dictionary.get("scu_sell_max_week") else None
        scu_sell_min = dictionary.get("scu_sell_min") if dictionary.get("scu_sell_min") else None
        scu_sell_min_month = dictionary.get("scu_sell_min_month") if dictionary.get("scu_sell_min_month") else None
        scu_sell_min_week = dictionary.get("scu_sell_min_week") if dictionary.get("scu_sell_min_week") else None
        scu_sell_stock = dictionary.get("scu_sell_stock") if dictionary.get("scu_sell_stock") else None
        scu_sell_stock_avg = dictionary.get("scu_sell_stock_avg") if dictionary.get("scu_sell_stock_avg") else None
        scu_sell_stock_avg_month = dictionary.get("scu_sell_stock_avg_month") if dictionary.get("scu_sell_stock_avg_month") else None
        scu_sell_stock_avg_week = dictionary.get("scu_sell_stock_avg_week") if dictionary.get("scu_sell_stock_avg_week") else None
        scu_sell_users = dictionary.get("scu_sell_users") if dictionary.get("scu_sell_users") else None
        scu_sell_users_rows = dictionary.get("scu_sell_users_rows") if dictionary.get("scu_sell_users_rows") else None
        space_station_name = dictionary.get("space_station_name") if dictionary.get("space_station_name") else None
        star_system_name = dictionary.get("star_system_name") if dictionary.get("star_system_name") else None
        status_buy = dictionary.get("status_buy") if dictionary.get("status_buy") else None
        status_buy_avg = dictionary.get("status_buy_avg") if dictionary.get("status_buy_avg") else None
        status_buy_avg_month = dictionary.get("status_buy_avg_month") if dictionary.get("status_buy_avg_month") else None
        status_buy_avg_week = dictionary.get("status_buy_avg_week") if dictionary.get("status_buy_avg_week") else None
        status_buy_max = dictionary.get("status_buy_max") if dictionary.get("status_buy_max") else None
        status_buy_max_month = dictionary.get("status_buy_max_month") if dictionary.get("status_buy_max_month") else None
        status_buy_max_week = dictionary.get("status_buy_max_week") if dictionary.get("status_buy_max_week") else None
        status_buy_min = dictionary.get("status_buy_min") if dictionary.get("status_buy_min") else None
        status_buy_min_month = dictionary.get("status_buy_min_month") if dictionary.get("status_buy_min_month") else None
        status_buy_min_week = dictionary.get("status_buy_min_week") if dictionary.get("status_buy_min_week") else None
        status_sell = dictionary.get("status_sell") if dictionary.get("status_sell") else None
        status_sell_avg = dictionary.get("status_sell_avg") if dictionary.get("status_sell_avg") else None
        status_sell_avg_month = dictionary.get("status_sell_avg_month") if dictionary.get("status_sell_avg_month") else None
        status_sell_avg_week = dictionary.get("status_sell_avg_week") if dictionary.get("status_sell_avg_week") else None
        status_sell_max = dictionary.get("status_sell_max") if dictionary.get("status_sell_max") else None
        status_sell_max_month = dictionary.get("status_sell_max_month") if dictionary.get("status_sell_max_month") else None
        status_sell_max_week = dictionary.get("status_sell_max_week") if dictionary.get("status_sell_max_week") else None
        status_sell_min = dictionary.get("status_sell_min") if dictionary.get("status_sell_min") else None
        status_sell_min_month = dictionary.get("status_sell_min_month") if dictionary.get("status_sell_min_month") else None
        status_sell_min_week = dictionary.get("status_sell_min_week") if dictionary.get("status_sell_min_week") else None
        terminal_code = dictionary.get("terminal_code") if dictionary.get("terminal_code") else None
        terminal_is_player_owned = dictionary.get("terminal_is_player_owned") if dictionary.get("terminal_is_player_owned") else None
        terminal_mcs = dictionary.get("terminal_mcs") if dictionary.get("terminal_mcs") else None
        terminal_name = dictionary.get("terminal_name") if dictionary.get("terminal_name") else None
        terminal_slug = dictionary.get("terminal_slug") if dictionary.get("terminal_slug") else None
        volatility_buy = dictionary.get("volatility_buy") if dictionary.get("volatility_buy") else None
        volatility_price_buy = dictionary.get("volatility_price_buy") if dictionary.get("volatility_price_buy") else None
        volatility_price_sell = dictionary.get("volatility_price_sell") if dictionary.get("volatility_price_sell") else None
        volatility_scu_buy = dictionary.get("volatility_scu_buy") if dictionary.get("volatility_scu_buy") else None
        volatility_scu_sell = dictionary.get("volatility_scu_sell") if dictionary.get("volatility_scu_sell") else None
        volatility_sell = dictionary.get("volatility_sell") if dictionary.get("volatility_sell") else None
        additional_properties = APIHelper.get_additional_properties(
            dictionary={k: v for k, v in dictionary.items() if k not in cls._names.values()},
            unboxing_function=lambda value: value)
        # Return an object of this model
        return cls(city_name,
                   commodity_code,
                   commodity_name,
                   commodity_slug,
                   container_sizes,
                   date_added,
                   date_modified,
                   faction_affinity,
                   faction_name,
                   game_version,
                   id,
                   id_city,
                   id_commodity,
                   id_faction,
                   id_moon,
                   id_orbit,
                   id_outpost,
                   id_planet,
                   id_poi,
                   id_star_system,
                   id_terminal,
                   moon_name,
                   orbit_name,
                   outpost_name,
                   planet_name,
                   poi_name,
                   price_buy,
                   price_buy_avg,
                   price_buy_avg_month,
                   price_buy_avg_week,
                   price_buy_max,
                   price_buy_max_month,
                   price_buy_max_week,
                   price_buy_min,
                   price_buy_min_month,
                   price_buy_min_week,
                   price_buy_users,
                   price_buy_users_rows,
                   price_sell,
                   price_sell_avg,
                   price_sell_avg_month,
                   price_sell_avg_week,
                   price_sell_max,
                   price_sell_max_month,
                   price_sell_max_week,
                   price_sell_min,
                   price_sell_min_month,
                   price_sell_min_week,
                   price_sell_users,
                   price_sell_users_rows,
                   scu_buy,
                   scu_buy_avg,
                   scu_buy_avg_month,
                   scu_buy_avg_week,
                   scu_buy_max,
                   scu_buy_max_month,
                   scu_buy_max_week,
                   scu_buy_min,
                   scu_buy_min_month,
                   scu_buy_min_week,
                   scu_buy_users,
                   scu_buy_users_rows,
                   scu_sell,
                   scu_sell_avg,
                   scu_sell_avg_month,
                   scu_sell_avg_week,
                   scu_sell_max,
                   scu_sell_max_month,
                   scu_sell_max_week,
                   scu_sell_min,
                   scu_sell_min_month,
                   scu_sell_min_week,
                   scu_sell_stock,
                   scu_sell_stock_avg,
                   scu_sell_stock_avg_month,
                   scu_sell_stock_avg_week,
                   scu_sell_users,
                   scu_sell_users_rows,
                   space_station_name,
                   star_system_name,
                   status_buy,
                   status_buy_avg,
                   status_buy_avg_month,
                   status_buy_avg_week,
                   status_buy_max,
                   status_buy_max_month,
                   status_buy_max_week,
                   status_buy_min,
                   status_buy_min_month,
                   status_buy_min_week,
                   status_sell,
                   status_sell_avg,
                   status_sell_avg_month,
                   status_sell_avg_week,
                   status_sell_max,
                   status_sell_max_month,
                   status_sell_max_week,
                   status_sell_min,
                   status_sell_min_month,
                   status_sell_min_week,
                   terminal_code,
                   terminal_is_player_owned,
                   terminal_mcs,
                   terminal_name,
                   terminal_slug,
                   volatility_buy,
                   volatility_price_buy,
                   volatility_price_sell,
                   volatility_scu_buy,
                   volatility_scu_sell,
                   volatility_sell,
                   additional_properties)

    def __repr__(self):
        return (f'{self.__class__.__name__}('
                f'city_name={self.city_name!r}, '
                f'commodity_code={self.commodity_code!r}, '
                f'commodity_name={self.commodity_name!r}, '
                f'commodity_slug={self.commodity_slug!r}, '
                f'container_sizes={self.container_sizes!r}, '
                f'date_added={self.date_added!r}, '
                f'date_modified={self.date_modified!r}, '
                f'faction_affinity={self.faction_affinity!r}, '
                f'faction_name={self.faction_name!r}, '
                f'game_version={self.game_version!r}, '
                f'id={self.id!r}, '
                f'id_city={self.id_city!r}, '
                f'id_commodity={self.id_commodity!r}, '
                f'id_faction={self.id_faction!r}, '
                f'id_moon={self.id_moon!r}, '
                f'id_orbit={self.id_orbit!r}, '
                f'id_outpost={self.id_outpost!r}, '
                f'id_planet={self.id_planet!r}, '
                f'id_poi={self.id_poi!r}, '
                f'id_star_system={self.id_star_system!r}, '
                f'id_terminal={self.id_terminal!r}, '
                f'moon_name={self.moon_name!r}, '
                f'orbit_name={self.orbit_name!r}, '
                f'outpost_name={self.outpost_name!r}, '
                f'planet_name={self.planet_name!r}, '
                f'poi_name={self.poi_name!r}, '
                f'price_buy={self.price_buy!r}, '
                f'price_buy_avg={self.price_buy_avg!r}, '
                f'price_buy_avg_month={self.price_buy_avg_month!r}, '
                f'price_buy_avg_week={self.price_buy_avg_week!r}, '
                f'price_buy_max={self.price_buy_max!r}, '
                f'price_buy_max_month={self.price_buy_max_month!r}, '
                f'price_buy_max_week={self.price_buy_max_week!r}, '
                f'price_buy_min={self.price_buy_min!r}, '
                f'price_buy_min_month={self.price_buy_min_month!r}, '
                f'price_buy_min_week={self.price_buy_min_week!r}, '
                f'price_buy_users={self.price_buy_users!r}, '
                f'price_buy_users_rows={self.price_buy_users_rows!r}, '
                f'price_sell={self.price_sell!r}, '
                f'price_sell_avg={self.price_sell_avg!r}, '
                f'price_sell_avg_month={self.price_sell_avg_month!r}, '
                f'price_sell_avg_week={self.price_sell_avg_week!r}, '
                f'price_sell_max={self.price_sell_max!r}, '
                f'price_sell_max_month={self.price_sell_max_month!r}, '
                f'price_sell_max_week={self.price_sell_max_week!r}, '
                f'price_sell_min={self.price_sell_min!r}, '
                f'price_sell_min_month={self.price_sell_min_month!r}, '
                f'price_sell_min_week={self.price_sell_min_week!r}, '
                f'price_sell_users={self.price_sell_users!r}, '
                f'price_sell_users_rows={self.price_sell_users_rows!r}, '
                f'scu_buy={self.scu_buy!r}, '
                f'scu_buy_avg={self.scu_buy_avg!r}, '
                f'scu_buy_avg_month={self.scu_buy_avg_month!r}, '
                f'scu_buy_avg_week={self.scu_buy_avg_week!r}, '
                f'scu_buy_max={self.scu_buy_max!r}, '
                f'scu_buy_max_month={self.scu_buy_max_month!r}, '
                f'scu_buy_max_week={self.scu_buy_max_week!r}, '
                f'scu_buy_min={self.scu_buy_min!r}, '
                f'scu_buy_min_month={self.scu_buy_min_month!r}, '
                f'scu_buy_min_week={self.scu_buy_min_week!r}, '
                f'scu_buy_users={self.scu_buy_users!r}, '
                f'scu_buy_users_rows={self.scu_buy_users_rows!r}, '
                f'scu_sell={self.scu_sell!r}, '
                f'scu_sell_avg={self.scu_sell_avg!r}, '
                f'scu_sell_avg_month={self.scu_sell_avg_month!r}, '
                f'scu_sell_avg_week={self.scu_sell_avg_week!r}, '
                f'scu_sell_max={self.scu_sell_max!r}, '
                f'scu_sell_max_month={self.scu_sell_max_month!r}, '
                f'scu_sell_max_week={self.scu_sell_max_week!r}, '
                f'scu_sell_min={self.scu_sell_min!r}, '
                f'scu_sell_min_month={self.scu_sell_min_month!r}, '
                f'scu_sell_min_week={self.scu_sell_min_week!r}, '
                f'scu_sell_stock={self.scu_sell_stock!r}, '
                f'scu_sell_stock_avg={self.scu_sell_stock_avg!r}, '
                f'scu_sell_stock_avg_month={self.scu_sell_stock_avg_month!r}, '
                f'scu_sell_stock_avg_week={self.scu_sell_stock_avg_week!r}, '
                f'scu_sell_users={self.scu_sell_users!r}, '
                f'scu_sell_users_rows={self.scu_sell_users_rows!r}, '
                f'space_station_name={self.space_station_name!r}, '
                f'star_system_name={self.star_system_name!r}, '
                f'status_buy={self.status_buy!r}, '
                f'status_buy_avg={self.status_buy_avg!r}, '
                f'status_buy_avg_month={self.status_buy_avg_month!r}, '
                f'status_buy_avg_week={self.status_buy_avg_week!r}, '
                f'status_buy_max={self.status_buy_max!r}, '
                f'status_buy_max_month={self.status_buy_max_month!r}, '
                f'status_buy_max_week={self.status_buy_max_week!r}, '
                f'status_buy_min={self.status_buy_min!r}, '
                f'status_buy_min_month={self.status_buy_min_month!r}, '
                f'status_buy_min_week={self.status_buy_min_week!r}, '
                f'status_sell={self.status_sell!r}, '
                f'status_sell_avg={self.status_sell_avg!r}, '
                f'status_sell_avg_month={self.status_sell_avg_month!r}, '
                f'status_sell_avg_week={self.status_sell_avg_week!r}, '
                f'status_sell_max={self.status_sell_max!r}, '
                f'status_sell_max_month={self.status_sell_max_month!r}, '
                f'status_sell_max_week={self.status_sell_max_week!r}, '
                f'status_sell_min={self.status_sell_min!r}, '
                f'status_sell_min_month={self.status_sell_min_month!r}, '
                f'status_sell_min_week={self.status_sell_min_week!r}, '
                f'terminal_code={self.terminal_code!r}, '
                f'terminal_is_player_owned={self.terminal_is_player_owned!r}, '
                f'terminal_mcs={self.terminal_mcs!r}, '
                f'terminal_name={self.terminal_name!r}, '
                f'terminal_slug={self.terminal_slug!r}, '
                f'volatility_buy={self.volatility_buy!r}, '
                f'volatility_price_buy={self.volatility_price_buy!r}, '
                f'volatility_price_sell={self.volatility_price_sell!r}, '
                f'volatility_scu_buy={self.volatility_scu_buy!r}, '
                f'volatility_scu_sell={self.volatility_scu_sell!r}, '
                f'volatility_sell={self.volatility_sell!r}, '
                f'additional_properties={self.additional_properties!r})')

    def __str__(self):
        return (f'{self.__class__.__name__}('
                f'city_name={self.city_name!s}, '
                f'commodity_code={self.commodity_code!s}, '
                f'commodity_name={self.commodity_name!s}, '
                f'commodity_slug={self.commodity_slug!s}, '
                f'container_sizes={self.container_sizes!s}, '
                f'date_added={self.date_added!s}, '
                f'date_modified={self.date_modified!s}, '
                f'faction_affinity={self.faction_affinity!s}, '
                f'faction_name={self.faction_name!s}, '
                f'game_version={self.game_version!s}, '
                f'id={self.id!s}, '
                f'id_city={self.id_city!s}, '
                f'id_commodity={self.id_commodity!s}, '
                f'id_faction={self.id_faction!s}, '
                f'id_moon={self.id_moon!s}, '
                f'id_orbit={self.id_orbit!s}, '
                f'id_outpost={self.id_outpost!s}, '
                f'id_planet={self.id_planet!s}, '
                f'id_poi={self.id_poi!s}, '
                f'id_star_system={self.id_star_system!s}, '
                f'id_terminal={self.id_terminal!s}, '
                f'moon_name={self.moon_name!s}, '
                f'orbit_name={self.orbit_name!s}, '
                f'outpost_name={self.outpost_name!s}, '
                f'planet_name={self.planet_name!s}, '
                f'poi_name={self.poi_name!s}, '
                f'price_buy={self.price_buy!s}, '
                f'price_buy_avg={self.price_buy_avg!s}, '
                f'price_buy_avg_month={self.price_buy_avg_month!s}, '
                f'price_buy_avg_week={self.price_buy_avg_week!s}, '
                f'price_buy_max={self.price_buy_max!s}, '
                f'price_buy_max_month={self.price_buy_max_month!s}, '
                f'price_buy_max_week={self.price_buy_max_week!s}, '
                f'price_buy_min={self.price_buy_min!s}, '
                f'price_buy_min_month={self.price_buy_min_month!s}, '
                f'price_buy_min_week={self.price_buy_min_week!s}, '
                f'price_buy_users={self.price_buy_users!s}, '
                f'price_buy_users_rows={self.price_buy_users_rows!s}, '
                f'price_sell={self.price_sell!s}, '
                f'price_sell_avg={self.price_sell_avg!s}, '
                f'price_sell_avg_month={self.price_sell_avg_month!s}, '
                f'price_sell_avg_week={self.price_sell_avg_week!s}, '
                f'price_sell_max={self.price_sell_max!s}, '
                f'price_sell_max_month={self.price_sell_max_month!s}, '
                f'price_sell_max_week={self.price_sell_max_week!s}, '
                f'price_sell_min={self.price_sell_min!s}, '
                f'price_sell_min_month={self.price_sell_min_month!s}, '
                f'price_sell_min_week={self.price_sell_min_week!s}, '
                f'price_sell_users={self.price_sell_users!s}, '
                f'price_sell_users_rows={self.price_sell_users_rows!s}, '
                f'scu_buy={self.scu_buy!s}, '
                f'scu_buy_avg={self.scu_buy_avg!s}, '
                f'scu_buy_avg_month={self.scu_buy_avg_month!s}, '
                f'scu_buy_avg_week={self.scu_buy_avg_week!s}, '
                f'scu_buy_max={self.scu_buy_max!s}, '
                f'scu_buy_max_month={self.scu_buy_max_month!s}, '
                f'scu_buy_max_week={self.scu_buy_max_week!s}, '
                f'scu_buy_min={self.scu_buy_min!s}, '
                f'scu_buy_min_month={self.scu_buy_min_month!s}, '
                f'scu_buy_min_week={self.scu_buy_min_week!s}, '
                f'scu_buy_users={self.scu_buy_users!s}, '
                f'scu_buy_users_rows={self.scu_buy_users_rows!s}, '
                f'scu_sell={self.scu_sell!s}, '
                f'scu_sell_avg={self.scu_sell_avg!s}, '
                f'scu_sell_avg_month={self.scu_sell_avg_month!s}, '
                f'scu_sell_avg_week={self.scu_sell_avg_week!s}, '
                f'scu_sell_max={self.scu_sell_max!s}, '
                f'scu_sell_max_month={self.scu_sell_max_month!s}, '
                f'scu_sell_max_week={self.scu_sell_max_week!s}, '
                f'scu_sell_min={self.scu_sell_min!s}, '
                f'scu_sell_min_month={self.scu_sell_min_month!s}, '
                f'scu_sell_min_week={self.scu_sell_min_week!s}, '
                f'scu_sell_stock={self.scu_sell_stock!s}, '
                f'scu_sell_stock_avg={self.scu_sell_stock_avg!s}, '
                f'scu_sell_stock_avg_month={self.scu_sell_stock_avg_month!s}, '
                f'scu_sell_stock_avg_week={self.scu_sell_stock_avg_week!s}, '
                f'scu_sell_users={self.scu_sell_users!s}, '
                f'scu_sell_users_rows={self.scu_sell_users_rows!s}, '
                f'space_station_name={self.space_station_name!s}, '
                f'star_system_name={self.star_system_name!s}, '
                f'status_buy={self.status_buy!s}, '
                f'status_buy_avg={self.status_buy_avg!s}, '
                f'status_buy_avg_month={self.status_buy_avg_month!s}, '
                f'status_buy_avg_week={self.status_buy_avg_week!s}, '
                f'status_buy_max={self.status_buy_max!s}, '
                f'status_buy_max_month={self.status_buy_max_month!s}, '
                f'status_buy_max_week={self.status_buy_max_week!s}, '
                f'status_buy_min={self.status_buy_min!s}, '
                f'status_buy_min_month={self.status_buy_min_month!s}, '
                f'status_buy_min_week={self.status_buy_min_week!s}, '
                f'status_sell={self.status_sell!s}, '
                f'status_sell_avg={self.status_sell_avg!s}, '
                f'status_sell_avg_month={self.status_sell_avg_month!s}, '
                f'status_sell_avg_week={self.status_sell_avg_week!s}, '
                f'status_sell_max={self.status_sell_max!s}, '
                f'status_sell_max_month={self.status_sell_max_month!s}, '
                f'status_sell_max_week={self.status_sell_max_week!s}, '
                f'status_sell_min={self.status_sell_min!s}, '
                f'status_sell_min_month={self.status_sell_min_month!s}, '
                f'status_sell_min_week={self.status_sell_min_week!s}, '
                f'terminal_code={self.terminal_code!s}, '
                f'terminal_is_player_owned={self.terminal_is_player_owned!s}, '
                f'terminal_mcs={self.terminal_mcs!s}, '
                f'terminal_name={self.terminal_name!s}, '
                f'terminal_slug={self.terminal_slug!s}, '
                f'volatility_buy={self.volatility_buy!s}, '
                f'volatility_price_buy={self.volatility_price_buy!s}, '
                f'volatility_price_sell={self.volatility_price_sell!s}, '
                f'volatility_scu_buy={self.volatility_scu_buy!s}, '
                f'volatility_scu_sell={self.volatility_scu_sell!s}, '
                f'volatility_sell={self.volatility_sell!s}, '
                f'additional_properties={self.additional_properties!s})')
