# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util


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

    Do not edit the class manually.
    """

    def __init__(self, id: int=None, hardware: str=None, temperatura: float=None, humedad: str=None, presion: float=None, altitud: float=None, fecha: datetime=None):  # noqa: E501
        """Medicion - a model defined in Swagger

        :param id: The id of this Medicion.  # noqa: E501
        :type id: int
        :param hardware: The hardware of this Medicion.  # noqa: E501
        :type hardware: str
        :param temperatura: The temperatura of this Medicion.  # noqa: E501
        :type temperatura: float
        :param humedad: The humedad of this Medicion.  # noqa: E501
        :type humedad: str
        :param presion: The presion of this Medicion.  # noqa: E501
        :type presion: float
        :param altitud: The altitud of this Medicion.  # noqa: E501
        :type altitud: float
        :param fecha: The fecha of this Medicion.  # noqa: E501
        :type fecha: datetime
        """
        self.swagger_types = {
            'id': int,
            'hardware': str,
            'temperatura': float,
            'humedad': str,
            'presion': float,
            'altitud': float,
            'fecha': datetime
        }

        self.attribute_map = {
            'id': 'id',
            'hardware': 'hardware',
            'temperatura': 'temperatura',
            'humedad': 'humedad',
            'presion': 'presion',
            'altitud': 'altitud',
            'fecha': 'fecha'
        }

        self._id = id
        self._hardware = hardware
        self._temperatura = temperatura
        self._humedad = humedad
        self._presion = presion
        self._altitud = altitud
        self._fecha = fecha

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

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

    @property
    def id(self) -> int:
        """Gets the id of this Medicion.

        Clave primaria que identifica al registro.  # noqa: E501

        :return: The id of this Medicion.
        :rtype: int
        """
        return self._id

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

        Clave primaria que identifica al registro.  # noqa: E501

        :param id: The id of this Medicion.
        :type id: int
        """

        self._id = id

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

        Identificador alfanumerico del dispositivo físico de medición (estación).  # noqa: E501

        :return: The hardware of this Medicion.
        :rtype: str
        """
        return self._hardware

    @hardware.setter
    def hardware(self, hardware: str):
        """Sets the hardware of this Medicion.

        Identificador alfanumerico del dispositivo físico de medición (estación).  # noqa: E501

        :param hardware: The hardware of this Medicion.
        :type hardware: str
        """

        self._hardware = hardware

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

        Valor leido por el sensor expresado en grados celcius.  # noqa: E501

        :return: The temperatura of this Medicion.
        :rtype: float
        """
        return self._temperatura

    @temperatura.setter
    def temperatura(self, temperatura: float):
        """Sets the temperatura of this Medicion.

        Valor leido por el sensor expresado en grados celcius.  # noqa: E501

        :param temperatura: The temperatura of this Medicion.
        :type temperatura: float
        """

        self._temperatura = temperatura

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

        Cantidad de agua, vapor de agua o cualquier otro líquido que está presente en la superficie o el interior de un cuerpo o en el aire. La medida viene expresada en porcentaje.  # noqa: E501

        :return: The humedad of this Medicion.
        :rtype: str
        """
        return self._humedad

    @humedad.setter
    def humedad(self, humedad: str):
        """Sets the humedad of this Medicion.

        Cantidad de agua, vapor de agua o cualquier otro líquido que está presente en la superficie o el interior de un cuerpo o en el aire. La medida viene expresada en porcentaje.  # noqa: E501

        :param humedad: The humedad of this Medicion.
        :type humedad: str
        """

        self._humedad = humedad

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

        Fuerza por unidad de superficie que ejerce el aire que forma la atmósfera sobre la superficie terrestre, expresado en hPa (hectopascal)  # noqa: E501

        :return: The presion of this Medicion.
        :rtype: float
        """
        return self._presion

    @presion.setter
    def presion(self, presion: float):
        """Sets the presion of this Medicion.

        Fuerza por unidad de superficie que ejerce el aire que forma la atmósfera sobre la superficie terrestre, expresado en hPa (hectopascal)  # noqa: E501

        :param presion: The presion of this Medicion.
        :type presion: float
        """

        self._presion = presion

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

        Distancia vertical de un punto de la superficie terrestre respecto al nivel del mar, viene expresada en metros.  # noqa: E501

        :return: The altitud of this Medicion.
        :rtype: float
        """
        return self._altitud

    @altitud.setter
    def altitud(self, altitud: float):
        """Sets the altitud of this Medicion.

        Distancia vertical de un punto de la superficie terrestre respecto al nivel del mar, viene expresada en metros.  # noqa: E501

        :param altitud: The altitud of this Medicion.
        :type altitud: float
        """

        self._altitud = altitud

    @property
    def fecha(self) -> datetime:
        """Gets the fecha of this Medicion.

        Fecha y hora en la que se registro en la base de datos.  # noqa: E501

        :return: The fecha of this Medicion.
        :rtype: datetime
        """
        return self._fecha

    @fecha.setter
    def fecha(self, fecha: datetime):
        """Sets the fecha of this Medicion.

        Fecha y hora en la que se registro en la base de datos.  # noqa: E501

        :param fecha: The fecha of this Medicion.
        :type fecha: datetime
        """

        self._fecha = fecha
