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

"""
zypev1

This file was automatically generated by APIMATIC v3.0 (
 https://www.apimatic.io ).
"""


class Consumer(object):

    """Implementation of the 'Consumer' model.

    TODO: type model description here.

    Attributes:
        email (string): TODO: type description here.
        name (string): TODO: type description here.
        sex (string): female
        birthday (string): 1997-07-17
        updates (bool): If the consumer has agreed to receive updates
        terms (bool): If consumer has agreed to the terms and services
        stripe_id (string): Unique ID assigned to the consumer in Stripe
        braintree_id (string): Unique ID assigned to the consumer in
            Braintree
        rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_
            kgz_x_qkt_z_0_k_jtqv_opcy_w (string): Unique token to identify a
            customer accessing your RSS feed
        password_token (string): The password token to use during password
            reset workflows
        remember_token (string): The password token to use during remember
            login workflows

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "email": 'email',
        "name": 'name',
        "sex": 'sex',
        "birthday": 'birthday',
        "updates": 'updates',
        "terms": 'terms',
        "stripe_id": 'stripe_id',
        "braintree_id": 'braintree_id',
        "rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_kgz_x_qkt_z_0_k_jtqv_opcy_w": 'rss_token: X0fLYNW9538DiPbqR74-6gMnTjmbpuFrShP-NeEgZtOKgzXQktZ0KJtqvOPCY_w_',
        "password_token": 'password_token',
        "remember_token": 'remember_token'
    }

    def __init__(self,
                 email=None,
                 name=None,
                 sex=None,
                 birthday=None,
                 updates=None,
                 terms=None,
                 stripe_id=None,
                 braintree_id=None,
                 rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_kgz_x_qkt_z_0_k_jtqv_opcy_w=None,
                 password_token=None,
                 remember_token=None):
        """Constructor for the Consumer class"""

        # Initialize members of the class
        self.email = email
        self.name = name
        self.sex = sex
        self.birthday = birthday
        self.updates = updates
        self.terms = terms
        self.stripe_id = stripe_id
        self.braintree_id = braintree_id
        self.rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_kgz_x_qkt_z_0_k_jtqv_opcy_w = rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_kgz_x_qkt_z_0_k_jtqv_opcy_w
        self.password_token = password_token
        self.remember_token = remember_token

    @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 dictionary is None:
            return None

        # Extract variables from the dictionary
        email = dictionary.get('email')
        name = dictionary.get('name')
        sex = dictionary.get('sex')
        birthday = dictionary.get('birthday')
        updates = dictionary.get('updates')
        terms = dictionary.get('terms')
        stripe_id = dictionary.get('stripe_id')
        braintree_id = dictionary.get('braintree_id')
        rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_kgz_x_qkt_z_0_k_jtqv_opcy_w = dictionary.get('rss_token: X0fLYNW9538DiPbqR74-6gMnTjmbpuFrShP-NeEgZtOKgzXQktZ0KJtqvOPCY_w_')
        password_token = dictionary.get('password_token')
        remember_token = dictionary.get('remember_token')

        # Return an object of this model
        return cls(email,
                   name,
                   sex,
                   birthday,
                   updates,
                   terms,
                   stripe_id,
                   braintree_id,
                   rss_token_x_0_f_lynw_9538_di_pbq_r_74_6_g_mn_tjmbpu_fr_sh_p_ne_eg_zt_o_kgz_x_qkt_z_0_k_jtqv_opcy_w,
                   password_token,
                   remember_token)
