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

"""
uexcorpapi

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


class Loaner(object):

    """Implementation of the 'Loaner' model.

    Attributes:
        company_name (str): The model property of type str.
        crew (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.
        game_version (str): The model property of type str.
        id (str): The model property of type str.
        id_company (str): The model property of type str.
        id_parent (str): The model property of type str.
        ids_vehicles_loaners (str): The model property of type str.
        is_addon (str): The model property of type str.
        is_boarding (str): The model property of type str.
        is_cargo (str): The model property of type str.
        is_carrier (str): The model property of type str.
        is_civilian (str): The model property of type str.
        is_concept (str): The model property of type str.
        is_construction (str): The model property of type str.
        is_datarunner (str): The model property of type str.
        is_emp (str): The model property of type str.
        is_exploration (str): The model property of type str.
        is_ground_vehicle (str): The model property of type str.
        is_industrial (str): The model property of type str.
        is_interdiction (str): The model property of type str.
        is_medical (str): The model property of type str.
        is_military (str): The model property of type str.
        is_mining (str): The model property of type str.
        is_passenger (str): The model property of type str.
        is_qed (str): The model property of type str.
        is_racing (str): The model property of type str.
        is_refinery (str): The model property of type str.
        is_refuel (str): The model property of type str.
        is_repair (str): The model property of type str.
        is_research (str): The model property of type str.
        is_salvage (str): The model property of type str.
        is_science (str): The model property of type str.
        is_showdown_winner (str): The model property of type str.
        is_spaceship (str): The model property of type str.
        is_stealth (str): The model property of type str.
        is_tractor_beam (str): The model property of type str.
        name (str): The model property of type str.
        name_full (str): The model property of type str.
        scu (str): The model property of type str.
        url_brochure (str): The model property of type str.
        url_hotsite (str): The model property of type str.
        url_photos (List[str]): The model property of type List[str].
        url_store (str): The model property of type str.
        url_video (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 = {
        "company_name": 'company_name',
        "crew": 'crew',
        "date_added": 'date_added',
        "date_modified": 'date_modified',
        "game_version": 'game_version',
        "id": 'id',
        "id_company": 'id_company',
        "id_parent": 'id_parent',
        "ids_vehicles_loaners": 'ids_vehicles_loaners',
        "is_addon": 'is_addon',
        "is_boarding": 'is_boarding',
        "is_cargo": 'is_cargo',
        "is_carrier": 'is_carrier',
        "is_civilian": 'is_civilian',
        "is_concept": 'is_concept',
        "is_construction": 'is_construction',
        "is_datarunner": 'is_datarunner',
        "is_emp": 'is_emp',
        "is_exploration": 'is_exploration',
        "is_ground_vehicle": 'is_ground_vehicle',
        "is_industrial": 'is_industrial',
        "is_interdiction": 'is_interdiction',
        "is_medical": 'is_medical',
        "is_military": 'is_military',
        "is_mining": 'is_mining',
        "is_passenger": 'is_passenger',
        "is_qed": 'is_qed',
        "is_racing": 'is_racing',
        "is_refinery": 'is_refinery',
        "is_refuel": 'is_refuel',
        "is_repair": 'is_repair',
        "is_research": 'is_research',
        "is_salvage": 'is_salvage',
        "is_science": 'is_science',
        "is_showdown_winner": 'is_showdown_winner',
        "is_spaceship": 'is_spaceship',
        "is_stealth": 'is_stealth',
        "is_tractor_beam": 'is_tractor_beam',
        "name": 'name',
        "name_full": 'name_full',
        "scu": 'scu',
        "url_brochure": 'url_brochure',
        "url_hotsite": 'url_hotsite',
        "url_photos": 'url_photos',
        "url_store": 'url_store',
        "url_video": 'url_video'
    }

    def __init__(self,
                 company_name=None,
                 crew=None,
                 date_added=None,
                 date_modified=None,
                 game_version=None,
                 id=None,
                 id_company=None,
                 id_parent=None,
                 ids_vehicles_loaners=None,
                 is_addon=None,
                 is_boarding=None,
                 is_cargo=None,
                 is_carrier=None,
                 is_civilian=None,
                 is_concept=None,
                 is_construction=None,
                 is_datarunner=None,
                 is_emp=None,
                 is_exploration=None,
                 is_ground_vehicle=None,
                 is_industrial=None,
                 is_interdiction=None,
                 is_medical=None,
                 is_military=None,
                 is_mining=None,
                 is_passenger=None,
                 is_qed=None,
                 is_racing=None,
                 is_refinery=None,
                 is_refuel=None,
                 is_repair=None,
                 is_research=None,
                 is_salvage=None,
                 is_science=None,
                 is_showdown_winner=None,
                 is_spaceship=None,
                 is_stealth=None,
                 is_tractor_beam=None,
                 name=None,
                 name_full=None,
                 scu=None,
                 url_brochure=None,
                 url_hotsite=None,
                 url_photos=None,
                 url_store=None,
                 url_video=None,
                 additional_properties=None):
        """Constructor for the Loaner class"""

        # Initialize members of the class
        self.company_name = company_name 
        self.crew = crew 
        self.date_added = date_added 
        self.date_modified = date_modified 
        self.game_version = game_version 
        self.id = id 
        self.id_company = id_company 
        self.id_parent = id_parent 
        self.ids_vehicles_loaners = ids_vehicles_loaners 
        self.is_addon = is_addon 
        self.is_boarding = is_boarding 
        self.is_cargo = is_cargo 
        self.is_carrier = is_carrier 
        self.is_civilian = is_civilian 
        self.is_concept = is_concept 
        self.is_construction = is_construction 
        self.is_datarunner = is_datarunner 
        self.is_emp = is_emp 
        self.is_exploration = is_exploration 
        self.is_ground_vehicle = is_ground_vehicle 
        self.is_industrial = is_industrial 
        self.is_interdiction = is_interdiction 
        self.is_medical = is_medical 
        self.is_military = is_military 
        self.is_mining = is_mining 
        self.is_passenger = is_passenger 
        self.is_qed = is_qed 
        self.is_racing = is_racing 
        self.is_refinery = is_refinery 
        self.is_refuel = is_refuel 
        self.is_repair = is_repair 
        self.is_research = is_research 
        self.is_salvage = is_salvage 
        self.is_science = is_science 
        self.is_showdown_winner = is_showdown_winner 
        self.is_spaceship = is_spaceship 
        self.is_stealth = is_stealth 
        self.is_tractor_beam = is_tractor_beam 
        self.name = name 
        self.name_full = name_full 
        self.scu = scu 
        self.url_brochure = url_brochure 
        self.url_hotsite = url_hotsite 
        self.url_photos = url_photos 
        self.url_store = url_store 
        self.url_video = url_video 

        # 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
        company_name = dictionary.get("company_name") if dictionary.get("company_name") else None
        crew = dictionary.get("crew") if dictionary.get("crew") 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
        game_version = dictionary.get("game_version") if dictionary.get("game_version") else None
        id = dictionary.get("id") if dictionary.get("id") else None
        id_company = dictionary.get("id_company") if dictionary.get("id_company") else None
        id_parent = dictionary.get("id_parent") if dictionary.get("id_parent") else None
        ids_vehicles_loaners = dictionary.get("ids_vehicles_loaners") if dictionary.get("ids_vehicles_loaners") else None
        is_addon = dictionary.get("is_addon") if dictionary.get("is_addon") else None
        is_boarding = dictionary.get("is_boarding") if dictionary.get("is_boarding") else None
        is_cargo = dictionary.get("is_cargo") if dictionary.get("is_cargo") else None
        is_carrier = dictionary.get("is_carrier") if dictionary.get("is_carrier") else None
        is_civilian = dictionary.get("is_civilian") if dictionary.get("is_civilian") else None
        is_concept = dictionary.get("is_concept") if dictionary.get("is_concept") else None
        is_construction = dictionary.get("is_construction") if dictionary.get("is_construction") else None
        is_datarunner = dictionary.get("is_datarunner") if dictionary.get("is_datarunner") else None
        is_emp = dictionary.get("is_emp") if dictionary.get("is_emp") else None
        is_exploration = dictionary.get("is_exploration") if dictionary.get("is_exploration") else None
        is_ground_vehicle = dictionary.get("is_ground_vehicle") if dictionary.get("is_ground_vehicle") else None
        is_industrial = dictionary.get("is_industrial") if dictionary.get("is_industrial") else None
        is_interdiction = dictionary.get("is_interdiction") if dictionary.get("is_interdiction") else None
        is_medical = dictionary.get("is_medical") if dictionary.get("is_medical") else None
        is_military = dictionary.get("is_military") if dictionary.get("is_military") else None
        is_mining = dictionary.get("is_mining") if dictionary.get("is_mining") else None
        is_passenger = dictionary.get("is_passenger") if dictionary.get("is_passenger") else None
        is_qed = dictionary.get("is_qed") if dictionary.get("is_qed") else None
        is_racing = dictionary.get("is_racing") if dictionary.get("is_racing") else None
        is_refinery = dictionary.get("is_refinery") if dictionary.get("is_refinery") else None
        is_refuel = dictionary.get("is_refuel") if dictionary.get("is_refuel") else None
        is_repair = dictionary.get("is_repair") if dictionary.get("is_repair") else None
        is_research = dictionary.get("is_research") if dictionary.get("is_research") else None
        is_salvage = dictionary.get("is_salvage") if dictionary.get("is_salvage") else None
        is_science = dictionary.get("is_science") if dictionary.get("is_science") else None
        is_showdown_winner = dictionary.get("is_showdown_winner") if dictionary.get("is_showdown_winner") else None
        is_spaceship = dictionary.get("is_spaceship") if dictionary.get("is_spaceship") else None
        is_stealth = dictionary.get("is_stealth") if dictionary.get("is_stealth") else None
        is_tractor_beam = dictionary.get("is_tractor_beam") if dictionary.get("is_tractor_beam") else None
        name = dictionary.get("name") if dictionary.get("name") else None
        name_full = dictionary.get("name_full") if dictionary.get("name_full") else None
        scu = dictionary.get("scu") if dictionary.get("scu") else None
        url_brochure = dictionary.get("url_brochure") if dictionary.get("url_brochure") else None
        url_hotsite = dictionary.get("url_hotsite") if dictionary.get("url_hotsite") else None
        url_photos = dictionary.get("url_photos") if dictionary.get("url_photos") else None
        url_store = dictionary.get("url_store") if dictionary.get("url_store") else None
        url_video = dictionary.get("url_video") if dictionary.get("url_video") 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(company_name,
                   crew,
                   date_added,
                   date_modified,
                   game_version,
                   id,
                   id_company,
                   id_parent,
                   ids_vehicles_loaners,
                   is_addon,
                   is_boarding,
                   is_cargo,
                   is_carrier,
                   is_civilian,
                   is_concept,
                   is_construction,
                   is_datarunner,
                   is_emp,
                   is_exploration,
                   is_ground_vehicle,
                   is_industrial,
                   is_interdiction,
                   is_medical,
                   is_military,
                   is_mining,
                   is_passenger,
                   is_qed,
                   is_racing,
                   is_refinery,
                   is_refuel,
                   is_repair,
                   is_research,
                   is_salvage,
                   is_science,
                   is_showdown_winner,
                   is_spaceship,
                   is_stealth,
                   is_tractor_beam,
                   name,
                   name_full,
                   scu,
                   url_brochure,
                   url_hotsite,
                   url_photos,
                   url_store,
                   url_video,
                   additional_properties)

    def __repr__(self):
        return (f'{self.__class__.__name__}('
                f'company_name={self.company_name!r}, '
                f'crew={self.crew!r}, '
                f'date_added={self.date_added!r}, '
                f'date_modified={self.date_modified!r}, '
                f'game_version={self.game_version!r}, '
                f'id={self.id!r}, '
                f'id_company={self.id_company!r}, '
                f'id_parent={self.id_parent!r}, '
                f'ids_vehicles_loaners={self.ids_vehicles_loaners!r}, '
                f'is_addon={self.is_addon!r}, '
                f'is_boarding={self.is_boarding!r}, '
                f'is_cargo={self.is_cargo!r}, '
                f'is_carrier={self.is_carrier!r}, '
                f'is_civilian={self.is_civilian!r}, '
                f'is_concept={self.is_concept!r}, '
                f'is_construction={self.is_construction!r}, '
                f'is_datarunner={self.is_datarunner!r}, '
                f'is_emp={self.is_emp!r}, '
                f'is_exploration={self.is_exploration!r}, '
                f'is_ground_vehicle={self.is_ground_vehicle!r}, '
                f'is_industrial={self.is_industrial!r}, '
                f'is_interdiction={self.is_interdiction!r}, '
                f'is_medical={self.is_medical!r}, '
                f'is_military={self.is_military!r}, '
                f'is_mining={self.is_mining!r}, '
                f'is_passenger={self.is_passenger!r}, '
                f'is_qed={self.is_qed!r}, '
                f'is_racing={self.is_racing!r}, '
                f'is_refinery={self.is_refinery!r}, '
                f'is_refuel={self.is_refuel!r}, '
                f'is_repair={self.is_repair!r}, '
                f'is_research={self.is_research!r}, '
                f'is_salvage={self.is_salvage!r}, '
                f'is_science={self.is_science!r}, '
                f'is_showdown_winner={self.is_showdown_winner!r}, '
                f'is_spaceship={self.is_spaceship!r}, '
                f'is_stealth={self.is_stealth!r}, '
                f'is_tractor_beam={self.is_tractor_beam!r}, '
                f'name={self.name!r}, '
                f'name_full={self.name_full!r}, '
                f'scu={self.scu!r}, '
                f'url_brochure={self.url_brochure!r}, '
                f'url_hotsite={self.url_hotsite!r}, '
                f'url_photos={self.url_photos!r}, '
                f'url_store={self.url_store!r}, '
                f'url_video={self.url_video!r}, '
                f'additional_properties={self.additional_properties!r})')

    def __str__(self):
        return (f'{self.__class__.__name__}('
                f'company_name={self.company_name!s}, '
                f'crew={self.crew!s}, '
                f'date_added={self.date_added!s}, '
                f'date_modified={self.date_modified!s}, '
                f'game_version={self.game_version!s}, '
                f'id={self.id!s}, '
                f'id_company={self.id_company!s}, '
                f'id_parent={self.id_parent!s}, '
                f'ids_vehicles_loaners={self.ids_vehicles_loaners!s}, '
                f'is_addon={self.is_addon!s}, '
                f'is_boarding={self.is_boarding!s}, '
                f'is_cargo={self.is_cargo!s}, '
                f'is_carrier={self.is_carrier!s}, '
                f'is_civilian={self.is_civilian!s}, '
                f'is_concept={self.is_concept!s}, '
                f'is_construction={self.is_construction!s}, '
                f'is_datarunner={self.is_datarunner!s}, '
                f'is_emp={self.is_emp!s}, '
                f'is_exploration={self.is_exploration!s}, '
                f'is_ground_vehicle={self.is_ground_vehicle!s}, '
                f'is_industrial={self.is_industrial!s}, '
                f'is_interdiction={self.is_interdiction!s}, '
                f'is_medical={self.is_medical!s}, '
                f'is_military={self.is_military!s}, '
                f'is_mining={self.is_mining!s}, '
                f'is_passenger={self.is_passenger!s}, '
                f'is_qed={self.is_qed!s}, '
                f'is_racing={self.is_racing!s}, '
                f'is_refinery={self.is_refinery!s}, '
                f'is_refuel={self.is_refuel!s}, '
                f'is_repair={self.is_repair!s}, '
                f'is_research={self.is_research!s}, '
                f'is_salvage={self.is_salvage!s}, '
                f'is_science={self.is_science!s}, '
                f'is_showdown_winner={self.is_showdown_winner!s}, '
                f'is_spaceship={self.is_spaceship!s}, '
                f'is_stealth={self.is_stealth!s}, '
                f'is_tractor_beam={self.is_tractor_beam!s}, '
                f'name={self.name!s}, '
                f'name_full={self.name_full!s}, '
                f'scu={self.scu!s}, '
                f'url_brochure={self.url_brochure!s}, '
                f'url_hotsite={self.url_hotsite!s}, '
                f'url_photos={self.url_photos!s}, '
                f'url_store={self.url_store!s}, '
                f'url_video={self.url_video!s}, '
                f'additional_properties={self.additional_properties!s})')
