from parallels.core.utils.entity import Entity


class ScheduledTask(Entity):
    def __init__(
        self, scheduled_task_id, service_node_id, sys_user_id, is_active, scheduled_task_type, php_handler_id, command,
        arguments, description, notify, email_type, email, minute, hour, day_of_month, month, day_of_week, period
    ):
        self._scheduled_task_id = scheduled_task_id
        self._service_node_id = service_node_id
        self._sys_user_id = sys_user_id
        self._is_active = is_active
        self._scheduled_task_type = scheduled_task_type
        self._php_handler_id = php_handler_id
        self._command = command
        self._arguments = arguments
        self._description = description
        self._notify = notify
        self._email_type = email_type
        self._email = email
        self._minute = minute
        self._hour = hour
        self._day_of_month = day_of_month
        self._month = month
        self._day_of_week = day_of_week
        self._period = period

    @property
    def scheduled_task_id(self):
        """
        :rtype: str | unicode
        """
        return self._scheduled_task_id

    @property
    def service_node_id(self):
        """
        :rtype: str | unicode
        """
        return self._service_node_id

    @property
    def sys_user_id(self):
        """
        :rtype: str | unicode
        """
        return self._sys_user_id

    @property
    def is_active(self):
        """
        :rtype: str | unicode
        """
        return self._is_active

    @property
    def scheduled_task_type(self):
        """
        :rtype: str | unicode
        """
        return self._scheduled_task_type

    @property
    def php_handler_id(self):
        """
        :rtype: str | unicode
        """
        return self._php_handler_id

    @property
    def command(self):
        """
        :rtype: str | unicode
        """
        return self._command

    @property
    def arguments(self):
        """
        :rtype: str | unicode
        """
        return self._arguments

    @property
    def description(self):
        """
        :rtype: str | unicode
        """
        return self._description

    @property
    def notify(self):
        """
        :rtype: str | unicode
        """
        return self._notify

    @property
    def email_type(self):
        """
        :rtype: str | unicode
        """
        return self._email_type

    @property
    def email(self):
        """
        :rtype: str | unicode
        """
        return self._email

    @property
    def minute(self):
        """
        :rtype: str | unicode
        """
        return self._minute

    @property
    def hour(self):
        """
        :rtype: str | unicode
        """
        return self._hour

    @property
    def day_of_month(self):
        """
        :rtype: str | unicode
        """
        return self._day_of_month

    @property
    def month(self):
        """
        :rtype: str | unicode
        """
        return self._month

    @property
    def day_of_week(self):
        """
        :rtype: str | unicode
        """
        return self._day_of_week

    @property
    def period(self):
        """
        :rtype: str | unicode
        """
        return self._period
