# coding: utf-8

"""
    farm API

    farm API documentation  # noqa: E501

    OpenAPI spec version: 0.0.1
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

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

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'adhoc_type': 'bool',
        'alert_plan_id': 'int',
        'batch_details': 'list[BatchDetailsDto]',
        'ca_status': 'str',
        'chemical_quanity': 'dict(str, object)',
        'client_id': 'str',
        'crop_unit_id': 'int',
        'crop_unit_name': 'str',
        'croppable_area_id': 'int',
        'croppable_area_name': 'str',
        'data': 'dict(str, object)',
        'deleted': 'bool',
        'description': 'str',
        'end_date': 'datetime',
        'executed_on': 'datetime',
        'execution_status': 'str',
        'exp_executed_on': 'datetime',
        'filled_by': 'str',
        'harvest_date': 'datetime',
        'id': 'int',
        'images': 'dict(str, object)',
        'land_id': 'int',
        'land_name': 'str',
        'last_modified_by': 'str',
        'name': 'str',
        'on_time': 'bool',
        'owner_first_name': 'str',
        'owner_id': 'int',
        'parent_plan_id': 'int',
        'parent_task': 'bool',
        'pinned': 'bool',
        'plan_id': 'int',
        'plan_type_id': 'int',
        'plan_type_name': 'str',
        'plan_version': 'int',
        'planned': 'bool',
        'project_id': 'int',
        'project_name': 'str',
        'refer_plan': 'str',
        'required_days': 'int',
        'schedule': 'Schedule',
        'sowing_date': 'datetime',
        'start_date': 'datetime',
        'status': 'str',
        'task_type': 'str'
    }

    attribute_map = {
        'adhoc_type': 'adhocType',
        'alert_plan_id': 'alertPlanId',
        'batch_details': 'batchDetails',
        'ca_status': 'caStatus',
        'chemical_quanity': 'chemicalQuanity',
        'client_id': 'clientId',
        'crop_unit_id': 'cropUnitId',
        'crop_unit_name': 'cropUnitName',
        'croppable_area_id': 'croppableAreaId',
        'croppable_area_name': 'croppableAreaName',
        'data': 'data',
        'deleted': 'deleted',
        'description': 'description',
        'end_date': 'endDate',
        'executed_on': 'executedOn',
        'execution_status': 'executionStatus',
        'exp_executed_on': 'expExecutedOn',
        'filled_by': 'filledBy',
        'harvest_date': 'harvestDate',
        'id': 'id',
        'images': 'images',
        'land_id': 'landId',
        'land_name': 'landName',
        'last_modified_by': 'lastModifiedBy',
        'name': 'name',
        'on_time': 'onTime',
        'owner_first_name': 'ownerFirstName',
        'owner_id': 'ownerId',
        'parent_plan_id': 'parentPlanId',
        'parent_task': 'parentTask',
        'pinned': 'pinned',
        'plan_id': 'planId',
        'plan_type_id': 'planTypeId',
        'plan_type_name': 'planTypeName',
        'plan_version': 'planVersion',
        'planned': 'planned',
        'project_id': 'projectId',
        'project_name': 'projectName',
        'refer_plan': 'referPlan',
        'required_days': 'requiredDays',
        'schedule': 'schedule',
        'sowing_date': 'sowingDate',
        'start_date': 'startDate',
        'status': 'status',
        'task_type': 'taskType'
    }

    def __init__(self, adhoc_type=None, alert_plan_id=None, batch_details=None, ca_status=None, chemical_quanity=None, client_id=None, crop_unit_id=None, crop_unit_name=None, croppable_area_id=None, croppable_area_name=None, data=None, deleted=None, description=None, end_date=None, executed_on=None, execution_status=None, exp_executed_on=None, filled_by=None, harvest_date=None, id=None, images=None, land_id=None, land_name=None, last_modified_by=None, name=None, on_time=None, owner_first_name=None, owner_id=None, parent_plan_id=None, parent_task=None, pinned=None, plan_id=None, plan_type_id=None, plan_type_name=None, plan_version=None, planned=None, project_id=None, project_name=None, refer_plan=None, required_days=None, schedule=None, sowing_date=None, start_date=None, status=None, task_type=None):  # noqa: E501
        """TaskDto - a model defined in Swagger"""  # noqa: E501
        self._adhoc_type = None
        self._alert_plan_id = None
        self._batch_details = None
        self._ca_status = None
        self._chemical_quanity = None
        self._client_id = None
        self._crop_unit_id = None
        self._crop_unit_name = None
        self._croppable_area_id = None
        self._croppable_area_name = None
        self._data = None
        self._deleted = None
        self._description = None
        self._end_date = None
        self._executed_on = None
        self._execution_status = None
        self._exp_executed_on = None
        self._filled_by = None
        self._harvest_date = None
        self._id = None
        self._images = None
        self._land_id = None
        self._land_name = None
        self._last_modified_by = None
        self._name = None
        self._on_time = None
        self._owner_first_name = None
        self._owner_id = None
        self._parent_plan_id = None
        self._parent_task = None
        self._pinned = None
        self._plan_id = None
        self._plan_type_id = None
        self._plan_type_name = None
        self._plan_version = None
        self._planned = None
        self._project_id = None
        self._project_name = None
        self._refer_plan = None
        self._required_days = None
        self._schedule = None
        self._sowing_date = None
        self._start_date = None
        self._status = None
        self._task_type = None
        self.discriminator = None
        if adhoc_type is not None:
            self.adhoc_type = adhoc_type
        if alert_plan_id is not None:
            self.alert_plan_id = alert_plan_id
        if batch_details is not None:
            self.batch_details = batch_details
        if ca_status is not None:
            self.ca_status = ca_status
        if chemical_quanity is not None:
            self.chemical_quanity = chemical_quanity
        if client_id is not None:
            self.client_id = client_id
        if crop_unit_id is not None:
            self.crop_unit_id = crop_unit_id
        if crop_unit_name is not None:
            self.crop_unit_name = crop_unit_name
        if croppable_area_id is not None:
            self.croppable_area_id = croppable_area_id
        if croppable_area_name is not None:
            self.croppable_area_name = croppable_area_name
        if data is not None:
            self.data = data
        if deleted is not None:
            self.deleted = deleted
        if description is not None:
            self.description = description
        if end_date is not None:
            self.end_date = end_date
        if executed_on is not None:
            self.executed_on = executed_on
        if execution_status is not None:
            self.execution_status = execution_status
        if exp_executed_on is not None:
            self.exp_executed_on = exp_executed_on
        if filled_by is not None:
            self.filled_by = filled_by
        if harvest_date is not None:
            self.harvest_date = harvest_date
        if id is not None:
            self.id = id
        if images is not None:
            self.images = images
        if land_id is not None:
            self.land_id = land_id
        if land_name is not None:
            self.land_name = land_name
        if last_modified_by is not None:
            self.last_modified_by = last_modified_by
        self.name = name
        if on_time is not None:
            self.on_time = on_time
        if owner_first_name is not None:
            self.owner_first_name = owner_first_name
        if owner_id is not None:
            self.owner_id = owner_id
        if parent_plan_id is not None:
            self.parent_plan_id = parent_plan_id
        if parent_task is not None:
            self.parent_task = parent_task
        if pinned is not None:
            self.pinned = pinned
        if plan_id is not None:
            self.plan_id = plan_id
        self.plan_type_id = plan_type_id
        if plan_type_name is not None:
            self.plan_type_name = plan_type_name
        if plan_version is not None:
            self.plan_version = plan_version
        if planned is not None:
            self.planned = planned
        if project_id is not None:
            self.project_id = project_id
        if project_name is not None:
            self.project_name = project_name
        if refer_plan is not None:
            self.refer_plan = refer_plan
        if required_days is not None:
            self.required_days = required_days
        if schedule is not None:
            self.schedule = schedule
        if sowing_date is not None:
            self.sowing_date = sowing_date
        if start_date is not None:
            self.start_date = start_date
        if status is not None:
            self.status = status
        if task_type is not None:
            self.task_type = task_type

    @property
    def adhoc_type(self):
        """Gets the adhoc_type of this TaskDto.  # noqa: E501


        :return: The adhoc_type of this TaskDto.  # noqa: E501
        :rtype: bool
        """
        return self._adhoc_type

    @adhoc_type.setter
    def adhoc_type(self, adhoc_type):
        """Sets the adhoc_type of this TaskDto.


        :param adhoc_type: The adhoc_type of this TaskDto.  # noqa: E501
        :type: bool
        """

        self._adhoc_type = adhoc_type

    @property
    def alert_plan_id(self):
        """Gets the alert_plan_id of this TaskDto.  # noqa: E501


        :return: The alert_plan_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._alert_plan_id

    @alert_plan_id.setter
    def alert_plan_id(self, alert_plan_id):
        """Sets the alert_plan_id of this TaskDto.


        :param alert_plan_id: The alert_plan_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._alert_plan_id = alert_plan_id

    @property
    def batch_details(self):
        """Gets the batch_details of this TaskDto.  # noqa: E501


        :return: The batch_details of this TaskDto.  # noqa: E501
        :rtype: list[BatchDetailsDto]
        """
        return self._batch_details

    @batch_details.setter
    def batch_details(self, batch_details):
        """Sets the batch_details of this TaskDto.


        :param batch_details: The batch_details of this TaskDto.  # noqa: E501
        :type: list[BatchDetailsDto]
        """

        self._batch_details = batch_details

    @property
    def ca_status(self):
        """Gets the ca_status of this TaskDto.  # noqa: E501


        :return: The ca_status of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._ca_status

    @ca_status.setter
    def ca_status(self, ca_status):
        """Sets the ca_status of this TaskDto.


        :param ca_status: The ca_status of this TaskDto.  # noqa: E501
        :type: str
        """

        self._ca_status = ca_status

    @property
    def chemical_quanity(self):
        """Gets the chemical_quanity of this TaskDto.  # noqa: E501


        :return: The chemical_quanity of this TaskDto.  # noqa: E501
        :rtype: dict(str, object)
        """
        return self._chemical_quanity

    @chemical_quanity.setter
    def chemical_quanity(self, chemical_quanity):
        """Sets the chemical_quanity of this TaskDto.


        :param chemical_quanity: The chemical_quanity of this TaskDto.  # noqa: E501
        :type: dict(str, object)
        """

        self._chemical_quanity = chemical_quanity

    @property
    def client_id(self):
        """Gets the client_id of this TaskDto.  # noqa: E501


        :return: The client_id of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._client_id

    @client_id.setter
    def client_id(self, client_id):
        """Sets the client_id of this TaskDto.


        :param client_id: The client_id of this TaskDto.  # noqa: E501
        :type: str
        """

        self._client_id = client_id

    @property
    def crop_unit_id(self):
        """Gets the crop_unit_id of this TaskDto.  # noqa: E501


        :return: The crop_unit_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._crop_unit_id

    @crop_unit_id.setter
    def crop_unit_id(self, crop_unit_id):
        """Sets the crop_unit_id of this TaskDto.


        :param crop_unit_id: The crop_unit_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._crop_unit_id = crop_unit_id

    @property
    def crop_unit_name(self):
        """Gets the crop_unit_name of this TaskDto.  # noqa: E501


        :return: The crop_unit_name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._crop_unit_name

    @crop_unit_name.setter
    def crop_unit_name(self, crop_unit_name):
        """Sets the crop_unit_name of this TaskDto.


        :param crop_unit_name: The crop_unit_name of this TaskDto.  # noqa: E501
        :type: str
        """

        self._crop_unit_name = crop_unit_name

    @property
    def croppable_area_id(self):
        """Gets the croppable_area_id of this TaskDto.  # noqa: E501


        :return: The croppable_area_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._croppable_area_id

    @croppable_area_id.setter
    def croppable_area_id(self, croppable_area_id):
        """Sets the croppable_area_id of this TaskDto.


        :param croppable_area_id: The croppable_area_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._croppable_area_id = croppable_area_id

    @property
    def croppable_area_name(self):
        """Gets the croppable_area_name of this TaskDto.  # noqa: E501


        :return: The croppable_area_name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._croppable_area_name

    @croppable_area_name.setter
    def croppable_area_name(self, croppable_area_name):
        """Sets the croppable_area_name of this TaskDto.


        :param croppable_area_name: The croppable_area_name of this TaskDto.  # noqa: E501
        :type: str
        """

        self._croppable_area_name = croppable_area_name

    @property
    def data(self):
        """Gets the data of this TaskDto.  # noqa: E501


        :return: The data of this TaskDto.  # noqa: E501
        :rtype: dict(str, object)
        """
        return self._data

    @data.setter
    def data(self, data):
        """Sets the data of this TaskDto.


        :param data: The data of this TaskDto.  # noqa: E501
        :type: dict(str, object)
        """

        self._data = data

    @property
    def deleted(self):
        """Gets the deleted of this TaskDto.  # noqa: E501


        :return: The deleted of this TaskDto.  # noqa: E501
        :rtype: bool
        """
        return self._deleted

    @deleted.setter
    def deleted(self, deleted):
        """Sets the deleted of this TaskDto.


        :param deleted: The deleted of this TaskDto.  # noqa: E501
        :type: bool
        """

        self._deleted = deleted

    @property
    def description(self):
        """Gets the description of this TaskDto.  # noqa: E501


        :return: The description of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._description

    @description.setter
    def description(self, description):
        """Sets the description of this TaskDto.


        :param description: The description of this TaskDto.  # noqa: E501
        :type: str
        """

        self._description = description

    @property
    def end_date(self):
        """Gets the end_date of this TaskDto.  # noqa: E501


        :return: The end_date of this TaskDto.  # noqa: E501
        :rtype: datetime
        """
        return self._end_date

    @end_date.setter
    def end_date(self, end_date):
        """Sets the end_date of this TaskDto.


        :param end_date: The end_date of this TaskDto.  # noqa: E501
        :type: datetime
        """

        self._end_date = end_date

    @property
    def executed_on(self):
        """Gets the executed_on of this TaskDto.  # noqa: E501


        :return: The executed_on of this TaskDto.  # noqa: E501
        :rtype: datetime
        """
        return self._executed_on

    @executed_on.setter
    def executed_on(self, executed_on):
        """Sets the executed_on of this TaskDto.


        :param executed_on: The executed_on of this TaskDto.  # noqa: E501
        :type: datetime
        """

        self._executed_on = executed_on

    @property
    def execution_status(self):
        """Gets the execution_status of this TaskDto.  # noqa: E501


        :return: The execution_status of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._execution_status

    @execution_status.setter
    def execution_status(self, execution_status):
        """Sets the execution_status of this TaskDto.


        :param execution_status: The execution_status of this TaskDto.  # noqa: E501
        :type: str
        """

        self._execution_status = execution_status

    @property
    def exp_executed_on(self):
        """Gets the exp_executed_on of this TaskDto.  # noqa: E501


        :return: The exp_executed_on of this TaskDto.  # noqa: E501
        :rtype: datetime
        """
        return self._exp_executed_on

    @exp_executed_on.setter
    def exp_executed_on(self, exp_executed_on):
        """Sets the exp_executed_on of this TaskDto.


        :param exp_executed_on: The exp_executed_on of this TaskDto.  # noqa: E501
        :type: datetime
        """

        self._exp_executed_on = exp_executed_on

    @property
    def filled_by(self):
        """Gets the filled_by of this TaskDto.  # noqa: E501


        :return: The filled_by of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._filled_by

    @filled_by.setter
    def filled_by(self, filled_by):
        """Sets the filled_by of this TaskDto.


        :param filled_by: The filled_by of this TaskDto.  # noqa: E501
        :type: str
        """

        self._filled_by = filled_by

    @property
    def harvest_date(self):
        """Gets the harvest_date of this TaskDto.  # noqa: E501


        :return: The harvest_date of this TaskDto.  # noqa: E501
        :rtype: datetime
        """
        return self._harvest_date

    @harvest_date.setter
    def harvest_date(self, harvest_date):
        """Sets the harvest_date of this TaskDto.


        :param harvest_date: The harvest_date of this TaskDto.  # noqa: E501
        :type: datetime
        """

        self._harvest_date = harvest_date

    @property
    def id(self):
        """Gets the id of this TaskDto.  # noqa: E501


        :return: The id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._id

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


        :param id: The id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._id = id

    @property
    def images(self):
        """Gets the images of this TaskDto.  # noqa: E501


        :return: The images of this TaskDto.  # noqa: E501
        :rtype: dict(str, object)
        """
        return self._images

    @images.setter
    def images(self, images):
        """Sets the images of this TaskDto.


        :param images: The images of this TaskDto.  # noqa: E501
        :type: dict(str, object)
        """

        self._images = images

    @property
    def land_id(self):
        """Gets the land_id of this TaskDto.  # noqa: E501


        :return: The land_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._land_id

    @land_id.setter
    def land_id(self, land_id):
        """Sets the land_id of this TaskDto.


        :param land_id: The land_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._land_id = land_id

    @property
    def land_name(self):
        """Gets the land_name of this TaskDto.  # noqa: E501


        :return: The land_name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._land_name

    @land_name.setter
    def land_name(self, land_name):
        """Sets the land_name of this TaskDto.


        :param land_name: The land_name of this TaskDto.  # noqa: E501
        :type: str
        """

        self._land_name = land_name

    @property
    def last_modified_by(self):
        """Gets the last_modified_by of this TaskDto.  # noqa: E501


        :return: The last_modified_by of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._last_modified_by

    @last_modified_by.setter
    def last_modified_by(self, last_modified_by):
        """Sets the last_modified_by of this TaskDto.


        :param last_modified_by: The last_modified_by of this TaskDto.  # noqa: E501
        :type: str
        """

        self._last_modified_by = last_modified_by

    @property
    def name(self):
        """Gets the name of this TaskDto.  # noqa: E501


        :return: The name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this TaskDto.


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

        self._name = name

    @property
    def on_time(self):
        """Gets the on_time of this TaskDto.  # noqa: E501


        :return: The on_time of this TaskDto.  # noqa: E501
        :rtype: bool
        """
        return self._on_time

    @on_time.setter
    def on_time(self, on_time):
        """Sets the on_time of this TaskDto.


        :param on_time: The on_time of this TaskDto.  # noqa: E501
        :type: bool
        """

        self._on_time = on_time

    @property
    def owner_first_name(self):
        """Gets the owner_first_name of this TaskDto.  # noqa: E501


        :return: The owner_first_name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._owner_first_name

    @owner_first_name.setter
    def owner_first_name(self, owner_first_name):
        """Sets the owner_first_name of this TaskDto.


        :param owner_first_name: The owner_first_name of this TaskDto.  # noqa: E501
        :type: str
        """

        self._owner_first_name = owner_first_name

    @property
    def owner_id(self):
        """Gets the owner_id of this TaskDto.  # noqa: E501


        :return: The owner_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._owner_id

    @owner_id.setter
    def owner_id(self, owner_id):
        """Sets the owner_id of this TaskDto.


        :param owner_id: The owner_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._owner_id = owner_id

    @property
    def parent_plan_id(self):
        """Gets the parent_plan_id of this TaskDto.  # noqa: E501


        :return: The parent_plan_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._parent_plan_id

    @parent_plan_id.setter
    def parent_plan_id(self, parent_plan_id):
        """Sets the parent_plan_id of this TaskDto.


        :param parent_plan_id: The parent_plan_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._parent_plan_id = parent_plan_id

    @property
    def parent_task(self):
        """Gets the parent_task of this TaskDto.  # noqa: E501


        :return: The parent_task of this TaskDto.  # noqa: E501
        :rtype: bool
        """
        return self._parent_task

    @parent_task.setter
    def parent_task(self, parent_task):
        """Sets the parent_task of this TaskDto.


        :param parent_task: The parent_task of this TaskDto.  # noqa: E501
        :type: bool
        """

        self._parent_task = parent_task

    @property
    def pinned(self):
        """Gets the pinned of this TaskDto.  # noqa: E501


        :return: The pinned of this TaskDto.  # noqa: E501
        :rtype: bool
        """
        return self._pinned

    @pinned.setter
    def pinned(self, pinned):
        """Sets the pinned of this TaskDto.


        :param pinned: The pinned of this TaskDto.  # noqa: E501
        :type: bool
        """

        self._pinned = pinned

    @property
    def plan_id(self):
        """Gets the plan_id of this TaskDto.  # noqa: E501


        :return: The plan_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._plan_id

    @plan_id.setter
    def plan_id(self, plan_id):
        """Sets the plan_id of this TaskDto.


        :param plan_id: The plan_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._plan_id = plan_id

    @property
    def plan_type_id(self):
        """Gets the plan_type_id of this TaskDto.  # noqa: E501


        :return: The plan_type_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._plan_type_id

    @plan_type_id.setter
    def plan_type_id(self, plan_type_id):
        """Sets the plan_type_id of this TaskDto.


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

        self._plan_type_id = plan_type_id

    @property
    def plan_type_name(self):
        """Gets the plan_type_name of this TaskDto.  # noqa: E501


        :return: The plan_type_name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._plan_type_name

    @plan_type_name.setter
    def plan_type_name(self, plan_type_name):
        """Sets the plan_type_name of this TaskDto.


        :param plan_type_name: The plan_type_name of this TaskDto.  # noqa: E501
        :type: str
        """

        self._plan_type_name = plan_type_name

    @property
    def plan_version(self):
        """Gets the plan_version of this TaskDto.  # noqa: E501


        :return: The plan_version of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._plan_version

    @plan_version.setter
    def plan_version(self, plan_version):
        """Sets the plan_version of this TaskDto.


        :param plan_version: The plan_version of this TaskDto.  # noqa: E501
        :type: int
        """

        self._plan_version = plan_version

    @property
    def planned(self):
        """Gets the planned of this TaskDto.  # noqa: E501


        :return: The planned of this TaskDto.  # noqa: E501
        :rtype: bool
        """
        return self._planned

    @planned.setter
    def planned(self, planned):
        """Sets the planned of this TaskDto.


        :param planned: The planned of this TaskDto.  # noqa: E501
        :type: bool
        """

        self._planned = planned

    @property
    def project_id(self):
        """Gets the project_id of this TaskDto.  # noqa: E501


        :return: The project_id of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._project_id

    @project_id.setter
    def project_id(self, project_id):
        """Sets the project_id of this TaskDto.


        :param project_id: The project_id of this TaskDto.  # noqa: E501
        :type: int
        """

        self._project_id = project_id

    @property
    def project_name(self):
        """Gets the project_name of this TaskDto.  # noqa: E501


        :return: The project_name of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._project_name

    @project_name.setter
    def project_name(self, project_name):
        """Sets the project_name of this TaskDto.


        :param project_name: The project_name of this TaskDto.  # noqa: E501
        :type: str
        """

        self._project_name = project_name

    @property
    def refer_plan(self):
        """Gets the refer_plan of this TaskDto.  # noqa: E501


        :return: The refer_plan of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._refer_plan

    @refer_plan.setter
    def refer_plan(self, refer_plan):
        """Sets the refer_plan of this TaskDto.


        :param refer_plan: The refer_plan of this TaskDto.  # noqa: E501
        :type: str
        """

        self._refer_plan = refer_plan

    @property
    def required_days(self):
        """Gets the required_days of this TaskDto.  # noqa: E501


        :return: The required_days of this TaskDto.  # noqa: E501
        :rtype: int
        """
        return self._required_days

    @required_days.setter
    def required_days(self, required_days):
        """Sets the required_days of this TaskDto.


        :param required_days: The required_days of this TaskDto.  # noqa: E501
        :type: int
        """

        self._required_days = required_days

    @property
    def schedule(self):
        """Gets the schedule of this TaskDto.  # noqa: E501


        :return: The schedule of this TaskDto.  # noqa: E501
        :rtype: Schedule
        """
        return self._schedule

    @schedule.setter
    def schedule(self, schedule):
        """Sets the schedule of this TaskDto.


        :param schedule: The schedule of this TaskDto.  # noqa: E501
        :type: Schedule
        """

        self._schedule = schedule

    @property
    def sowing_date(self):
        """Gets the sowing_date of this TaskDto.  # noqa: E501


        :return: The sowing_date of this TaskDto.  # noqa: E501
        :rtype: datetime
        """
        return self._sowing_date

    @sowing_date.setter
    def sowing_date(self, sowing_date):
        """Sets the sowing_date of this TaskDto.


        :param sowing_date: The sowing_date of this TaskDto.  # noqa: E501
        :type: datetime
        """

        self._sowing_date = sowing_date

    @property
    def start_date(self):
        """Gets the start_date of this TaskDto.  # noqa: E501


        :return: The start_date of this TaskDto.  # noqa: E501
        :rtype: datetime
        """
        return self._start_date

    @start_date.setter
    def start_date(self, start_date):
        """Sets the start_date of this TaskDto.


        :param start_date: The start_date of this TaskDto.  # noqa: E501
        :type: datetime
        """

        self._start_date = start_date

    @property
    def status(self):
        """Gets the status of this TaskDto.  # noqa: E501


        :return: The status of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this TaskDto.


        :param status: The status of this TaskDto.  # noqa: E501
        :type: str
        """

        self._status = status

    @property
    def task_type(self):
        """Gets the task_type of this TaskDto.  # noqa: E501


        :return: The task_type of this TaskDto.  # noqa: E501
        :rtype: str
        """
        return self._task_type

    @task_type.setter
    def task_type(self, task_type):
        """Sets the task_type of this TaskDto.


        :param task_type: The task_type of this TaskDto.  # noqa: E501
        :type: str
        """

        self._task_type = task_type

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(TaskDto, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, TaskDto):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
