# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util


class LearnerPreferences(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    def __init__(self, learner_id: str=None, bla: str=None, bla2: str=None, bla3: str=None):  # noqa: E501
        """LearnerPreferences - a model defined in Swagger

        :param learner_id: The learner_id of this LearnerPreferences.  # noqa: E501
        :type learner_id: str
        :param bla: The bla of this LearnerPreferences.  # noqa: E501
        :type bla: str
        :param bla2: The bla2 of this LearnerPreferences.  # noqa: E501
        :type bla2: str
        :param bla3: The bla3 of this LearnerPreferences.  # noqa: E501
        :type bla3: str
        """
        self.swagger_types = {
            'learner_id': str,
            'bla': str,
            'bla2': str,
            'bla3': str
        }

        self.attribute_map = {
            'learner_id': 'learnerId',
            'bla': 'bla',
            'bla2': 'bla2',
            'bla3': 'bla3'
        }

        self._learner_id = learner_id
        self._bla = bla
        self._bla2 = bla2
        self._bla3 = bla3

    @classmethod
    def from_dict(cls, dikt) -> 'LearnerPreferences':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The LearnerPreferences of this LearnerPreferences.  # noqa: E501
        :rtype: LearnerPreferences
        """
        return util.deserialize_model(dikt, cls)

    @property
    def learner_id(self) -> str:
        """Gets the learner_id of this LearnerPreferences.

        The mongo ID for the learner these preferences pertain to  # noqa: E501

        :return: The learner_id of this LearnerPreferences.
        :rtype: str
        """
        return self._learner_id

    @learner_id.setter
    def learner_id(self, learner_id: str):
        """Sets the learner_id of this LearnerPreferences.

        The mongo ID for the learner these preferences pertain to  # noqa: E501

        :param learner_id: The learner_id of this LearnerPreferences.
        :type learner_id: str
        """
        if learner_id is None:
            raise ValueError("Invalid value for `learner_id`, must not be `None`")  # noqa: E501

        self._learner_id = learner_id

    @property
    def bla(self) -> str:
        """Gets the bla of this LearnerPreferences.

        wow  # noqa: E501

        :return: The bla of this LearnerPreferences.
        :rtype: str
        """
        return self._bla

    @bla.setter
    def bla(self, bla: str):
        """Sets the bla of this LearnerPreferences.

        wow  # noqa: E501

        :param bla: The bla of this LearnerPreferences.
        :type bla: str
        """
        if bla is None:
            raise ValueError("Invalid value for `bla`, must not be `None`")  # noqa: E501

        self._bla = bla

    @property
    def bla2(self) -> str:
        """Gets the bla2 of this LearnerPreferences.

        wow2  # noqa: E501

        :return: The bla2 of this LearnerPreferences.
        :rtype: str
        """
        return self._bla2

    @bla2.setter
    def bla2(self, bla2: str):
        """Sets the bla2 of this LearnerPreferences.

        wow2  # noqa: E501

        :param bla2: The bla2 of this LearnerPreferences.
        :type bla2: str
        """
        if bla2 is None:
            raise ValueError("Invalid value for `bla2`, must not be `None`")  # noqa: E501

        self._bla2 = bla2

    @property
    def bla3(self) -> str:
        """Gets the bla3 of this LearnerPreferences.

        wow3  # noqa: E501

        :return: The bla3 of this LearnerPreferences.
        :rtype: str
        """
        return self._bla3

    @bla3.setter
    def bla3(self, bla3: str):
        """Sets the bla3 of this LearnerPreferences.

        wow3  # noqa: E501

        :param bla3: The bla3 of this LearnerPreferences.
        :type bla3: str
        """
        if bla3 is None:
            raise ValueError("Invalid value for `bla3`, must not be `None`")  # noqa: E501

        self._bla3 = bla3
