# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from properly_model_python.models.base_model_ import Model
from properly_model_python import util


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

    Do not edit the class manually.
    """

    def __init__(self, id: str=None, property_ids: List[str]=None, created_at: int=None, modified_at: int=None):  # noqa: E501
        """ListingFavourites - a model defined in Swagger

        :param id: The id of this ListingFavourites.  # noqa: E501
        :type id: str
        :param property_ids: The property_ids of this ListingFavourites.  # noqa: E501
        :type property_ids: List[str]
        :param created_at: The created_at of this ListingFavourites.  # noqa: E501
        :type created_at: int
        :param modified_at: The modified_at of this ListingFavourites.  # noqa: E501
        :type modified_at: int
        """
        self.swagger_types = {
            'id': str,
            'property_ids': List[str],
            'created_at': int,
            'modified_at': int
        }

        self.attribute_map = {
            'id': 'id',
            'property_ids': 'propertyIds',
            'created_at': 'createdAt',
            'modified_at': 'modifiedAt'
        }

        self._id = id
        self._property_ids = property_ids
        self._created_at = created_at
        self._modified_at = modified_at

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

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

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


        :return: The id of this ListingFavourites.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id: str):
        """Sets the id of this ListingFavourites.


        :param id: The id of this ListingFavourites.
        :type id: str
        """

        self._id = id

    @property
    def property_ids(self) -> List[str]:
        """Gets the property_ids of this ListingFavourites.


        :return: The property_ids of this ListingFavourites.
        :rtype: List[str]
        """
        return self._property_ids

    @property_ids.setter
    def property_ids(self, property_ids: List[str]):
        """Sets the property_ids of this ListingFavourites.


        :param property_ids: The property_ids of this ListingFavourites.
        :type property_ids: List[str]
        """

        self._property_ids = property_ids

    @property
    def created_at(self) -> int:
        """Gets the created_at of this ListingFavourites.


        :return: The created_at of this ListingFavourites.
        :rtype: int
        """
        return self._created_at

    @created_at.setter
    def created_at(self, created_at: int):
        """Sets the created_at of this ListingFavourites.


        :param created_at: The created_at of this ListingFavourites.
        :type created_at: int
        """

        self._created_at = created_at

    @property
    def modified_at(self) -> int:
        """Gets the modified_at of this ListingFavourites.


        :return: The modified_at of this ListingFavourites.
        :rtype: int
        """
        return self._modified_at

    @modified_at.setter
    def modified_at(self, modified_at: int):
        """Sets the modified_at of this ListingFavourites.


        :param modified_at: The modified_at of this ListingFavourites.
        :type modified_at: int
        """

        self._modified_at = modified_at
