from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from grader_service.api.models.base_model import Model
from grader_service.api import util


class SubmissionPeriod(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, period=None, scaling=None):  # noqa: E501
        """SubmissionPeriod - a model defined in OpenAPI

        :param period: The period of this SubmissionPeriod.  # noqa: E501
        :type period: str
        :param scaling: The scaling of this SubmissionPeriod.  # noqa: E501
        :type scaling: float
        """
        self.openapi_types = {
            'period': str,
            'scaling': float
        }

        self.attribute_map = {
            'period': 'period',
            'scaling': 'scaling'
        }

        self._period = period
        self._scaling = scaling

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

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

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


        :return: The period of this SubmissionPeriod.
        :rtype: str
        """
        return self._period

    @period.setter
    def period(self, period: str):
        """Sets the period of this SubmissionPeriod.


        :param period: The period of this SubmissionPeriod.
        :type period: str
        """

        self._period = period

    @property
    def scaling(self) -> float:
        """Gets the scaling of this SubmissionPeriod.


        :return: The scaling of this SubmissionPeriod.
        :rtype: float
        """
        return self._scaling

    @scaling.setter
    def scaling(self, scaling: float):
        """Sets the scaling of this SubmissionPeriod.


        :param scaling: The scaling of this SubmissionPeriod.
        :type scaling: float
        """

        self._scaling = scaling
