# coding: utf-8

"""
    Seeq REST API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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

from pprint import pformat
from six import iteritems
import re


class ColumnOverrideInputV1(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 = {
        'datum_id': 'str',
        'item_id': 'str',
        'override_uom': 'str',
        'override_value': 'str'
    }

    attribute_map = {
        'datum_id': 'datumId',
        'item_id': 'itemId',
        'override_uom': 'overrideUom',
        'override_value': 'overrideValue'
    }

    def __init__(self, datum_id=None, item_id=None, override_uom=None, override_value=None):
        """
        ColumnOverrideInputV1 - a model defined in Swagger
        """

        self._datum_id = None
        self._item_id = None
        self._override_uom = None
        self._override_value = None

        if datum_id is not None:
          self.datum_id = datum_id
        if item_id is not None:
          self.item_id = item_id
        if override_uom is not None:
          self.override_uom = override_uom
        if override_value is not None:
          self.override_value = override_value

    @property
    def datum_id(self):
        """
        Gets the datum_id of this ColumnOverrideInputV1.
        The row's datum id. Can be null.

        :return: The datum_id of this ColumnOverrideInputV1.
        :rtype: str
        """
        return self._datum_id

    @datum_id.setter
    def datum_id(self, datum_id):
        """
        Sets the datum_id of this ColumnOverrideInputV1.
        The row's datum id. Can be null.

        :param datum_id: The datum_id of this ColumnOverrideInputV1.
        :type: str
        """

        self._datum_id = datum_id

    @property
    def item_id(self):
        """
        Gets the item_id of this ColumnOverrideInputV1.
        The row's item id.

        :return: The item_id of this ColumnOverrideInputV1.
        :rtype: str
        """
        return self._item_id

    @item_id.setter
    def item_id(self, item_id):
        """
        Sets the item_id of this ColumnOverrideInputV1.
        The row's item id.

        :param item_id: The item_id of this ColumnOverrideInputV1.
        :type: str
        """
        if item_id is None:
            raise ValueError("Invalid value for `item_id`, must not be `None`")

        self._item_id = item_id

    @property
    def override_uom(self):
        """
        Gets the override_uom of this ColumnOverrideInputV1.
        The unit of measure for this override. This is only applicable to columns whose type is NUMERIC and whose column does not have a fixed unit.

        :return: The override_uom of this ColumnOverrideInputV1.
        :rtype: str
        """
        return self._override_uom

    @override_uom.setter
    def override_uom(self, override_uom):
        """
        Sets the override_uom of this ColumnOverrideInputV1.
        The unit of measure for this override. This is only applicable to columns whose type is NUMERIC and whose column does not have a fixed unit.

        :param override_uom: The override_uom of this ColumnOverrideInputV1.
        :type: str
        """

        self._override_uom = override_uom

    @property
    def override_value(self):
        """
        Gets the override_value of this ColumnOverrideInputV1.
        The value of the override for this table cell (in string form). This value will be applied to the cell via an Override Rule. The string value must be able to be converted to the column's type.

        :return: The override_value of this ColumnOverrideInputV1.
        :rtype: str
        """
        return self._override_value

    @override_value.setter
    def override_value(self, override_value):
        """
        Sets the override_value of this ColumnOverrideInputV1.
        The value of the override for this table cell (in string form). This value will be applied to the cell via an Override Rule. The string value must be able to be converted to the column's type.

        :param override_value: The override_value of this ColumnOverrideInputV1.
        :type: str
        """
        if override_value is None:
            raise ValueError("Invalid value for `override_value`, must not be `None`")

        self._override_value = override_value

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

        for attr, _ in 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

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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, ColumnOverrideInputV1):
            return False

        return self.__dict__ == other.__dict__

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