# coding: utf-8

from __future__ import absolute_import
from swagger_server.models.scholix_data_model import ScholixDataModel
from .base_model_ import Model
from datetime import date, datetime
from typing import List, Dict
from ..util import deserialize_model


class ScholixLinksModel(Model):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, total_pages=None, current_page=None, total_links=None, result=None):
        """
        ScholixLinksModel - a model defined in Swagger

        :param total_pages: The total_pages of this ScholixLinksModel.
        :type total_pages: int
        :param current_page: The current_page of this ScholixLinksModel.
        :type current_page: int
        :param total_links: The total_links of this ScholixLinksModel.
        :type total_links: int
        :param result: The result of this ScholixLinksModel.
        :type result: List[ScholixDataModel]
        """
        self.swagger_types = {
            'total_pages': int,
            'current_page': int,
            'total_links': int,
            'result': List[ScholixDataModel]
        }

        self.attribute_map = {
            'total_pages': 'totalPages',
            'current_page': 'currentPage',
            'total_links': 'totalLinks',
            'result': 'result'
        }

        self._total_pages = total_pages
        self._current_page = current_page
        self._total_links = total_links
        self._result = result

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

        :param dikt: A dict.
        :type: dict
        :return: The Scholix Links  Model of this ScholixLinksModel.
        :rtype: ScholixLinksModel
        """
        return deserialize_model(dikt, cls)

    @property
    def total_pages(self):
        """
        Gets the total_pages of this ScholixLinksModel.

        :return: The total_pages of this ScholixLinksModel.
        :rtype: int
        """
        return self._total_pages

    @total_pages.setter
    def total_pages(self, total_pages):
        """
        Sets the total_pages of this ScholixLinksModel.

        :param total_pages: The total_pages of this ScholixLinksModel.
        :type total_pages: int
        """

        self._total_pages = total_pages

    @property
    def current_page(self):
        """
        Gets the current_page of this ScholixLinksModel.

        :return: The current_page of this ScholixLinksModel.
        :rtype: int
        """
        return self._current_page

    @current_page.setter
    def current_page(self, current_page):
        """
        Sets the current_page of this ScholixLinksModel.

        :param current_page: The current_page of this ScholixLinksModel.
        :type current_page: int
        """

        self._current_page = current_page

    @property
    def total_links(self):
        """
        Gets the total_links of this ScholixLinksModel.

        :return: The total_links of this ScholixLinksModel.
        :rtype: int
        """
        return self._total_links

    @total_links.setter
    def total_links(self, total_links):
        """
        Sets the total_links of this ScholixLinksModel.

        :param total_links: The total_links of this ScholixLinksModel.
        :type total_links: int
        """

        self._total_links = total_links

    @property
    def result(self):
        """
        Gets the result of this ScholixLinksModel.

        :return: The result of this ScholixLinksModel.
        :rtype: List[ScholixDataModel]
        """
        return self._result

    @result.setter
    def result(self, result):
        """
        Sets the result of this ScholixLinksModel.

        :param result: The result of this ScholixLinksModel.
        :type result: List[ScholixDataModel]
        """

        self._result = result

