# coding: utf-8

from __future__ import absolute_import
from .base_model_ import Model
from datetime import date, datetime
from typing import List, Dict
from ..util import deserialize_model


class Calificacion(Model):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, dni_alumno: int=None, id_asignatura: int=None, nota: float=None, nomb_alumno: str=None, apel_alumno: str=None, nomb_asignatura: str=None, departamento: str=None, nomb_profesor: str=None, comentarios: str=None):
        """
        Calificacion - a model defined in Swagger

        :param dni_alumno: The dni_alumno of this Calificacion.
        :type dni_alumno: int
        :param id_asignatura: The id_asignatura of this Calificacion.
        :type id_asignatura: int
        :param nota: The nota of this Calificacion.
        :type nota: float
        :param nomb_alumno: The nomb_alumno of this Calificacion.
        :type nomb_alumno: str
        :param apel_alumno: The apel_alumno of this Calificacion.
        :type apel_alumno: str
        :param nomb_asignatura: The nomb_asignatura of this Calificacion.
        :type nomb_asignatura: str
        :param departamento: The departamento of this Calificacion.
        :type departamento: str
        :param nomb_profesor: The nomb_profesor of this Calificacion.
        :type nomb_profesor: str
        :param comentarios: The comentarios of this Calificacion.
        :type comentarios: str
        """
        self.swagger_types = {
            'dni_alumno': int,
            'id_asignatura': int,
            'nota': float,
            'nomb_alumno': str,
            'apel_alumno': str,
            'nomb_asignatura': str,
            'departamento': str,
            'nomb_profesor': str,
            'comentarios': str
        }

        self.attribute_map = {
            'dni_alumno': 'dniAlumno',
            'id_asignatura': 'idAsignatura',
            'nota': 'nota',
            'nomb_alumno': 'nombAlumno',
            'apel_alumno': 'apelAlumno',
            'nomb_asignatura': 'nombAsignatura',
            'departamento': 'departamento',
            'nomb_profesor': 'nombProfesor',
            'comentarios': 'comentarios'
        }

        self._dni_alumno = dni_alumno
        self._id_asignatura = id_asignatura
        self._nota = nota
        self._nomb_alumno = nomb_alumno
        self._apel_alumno = apel_alumno
        self._nomb_asignatura = nomb_asignatura
        self._departamento = departamento
        self._nomb_profesor = nomb_profesor
        self._comentarios = comentarios

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

        :param dikt: A dict.
        :type: dict
        :return: The Calificacion of this Calificacion.
        :rtype: Calificacion
        """
        return deserialize_model(dikt, cls)

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

        :return: The dni_alumno of this Calificacion.
        :rtype: int
        """
        return self._dni_alumno

    @dni_alumno.setter
    def dni_alumno(self, dni_alumno: int):
        """
        Sets the dni_alumno of this Calificacion.

        :param dni_alumno: The dni_alumno of this Calificacion.
        :type dni_alumno: int
        """

        self._dni_alumno = dni_alumno

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

        :return: The id_asignatura of this Calificacion.
        :rtype: int
        """
        return self._id_asignatura

    @id_asignatura.setter
    def id_asignatura(self, id_asignatura: int):
        """
        Sets the id_asignatura of this Calificacion.

        :param id_asignatura: The id_asignatura of this Calificacion.
        :type id_asignatura: int
        """

        self._id_asignatura = id_asignatura

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

        :return: The nota of this Calificacion.
        :rtype: float
        """
        return self._nota

    @nota.setter
    def nota(self, nota: float):
        """
        Sets the nota of this Calificacion.

        :param nota: The nota of this Calificacion.
        :type nota: float
        """

        self._nota = nota

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

        :return: The nomb_alumno of this Calificacion.
        :rtype: str
        """
        return self._nomb_alumno

    @nomb_alumno.setter
    def nomb_alumno(self, nomb_alumno: str):
        """
        Sets the nomb_alumno of this Calificacion.

        :param nomb_alumno: The nomb_alumno of this Calificacion.
        :type nomb_alumno: str
        """

        self._nomb_alumno = nomb_alumno

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

        :return: The apel_alumno of this Calificacion.
        :rtype: str
        """
        return self._apel_alumno

    @apel_alumno.setter
    def apel_alumno(self, apel_alumno: str):
        """
        Sets the apel_alumno of this Calificacion.

        :param apel_alumno: The apel_alumno of this Calificacion.
        :type apel_alumno: str
        """

        self._apel_alumno = apel_alumno

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

        :return: The nomb_asignatura of this Calificacion.
        :rtype: str
        """
        return self._nomb_asignatura

    @nomb_asignatura.setter
    def nomb_asignatura(self, nomb_asignatura: str):
        """
        Sets the nomb_asignatura of this Calificacion.

        :param nomb_asignatura: The nomb_asignatura of this Calificacion.
        :type nomb_asignatura: str
        """

        self._nomb_asignatura = nomb_asignatura

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

        :return: The departamento of this Calificacion.
        :rtype: str
        """
        return self._departamento

    @departamento.setter
    def departamento(self, departamento: str):
        """
        Sets the departamento of this Calificacion.

        :param departamento: The departamento of this Calificacion.
        :type departamento: str
        """

        self._departamento = departamento

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

        :return: The nomb_profesor of this Calificacion.
        :rtype: str
        """
        return self._nomb_profesor

    @nomb_profesor.setter
    def nomb_profesor(self, nomb_profesor: str):
        """
        Sets the nomb_profesor of this Calificacion.

        :param nomb_profesor: The nomb_profesor of this Calificacion.
        :type nomb_profesor: str
        """

        self._nomb_profesor = nomb_profesor

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

        :return: The comentarios of this Calificacion.
        :rtype: str
        """
        return self._comentarios

    @comentarios.setter
    def comentarios(self, comentarios: str):
        """
        Sets the comentarios of this Calificacion.

        :param comentarios: The comentarios of this Calificacion.
        :type comentarios: str
        """

        self._comentarios = comentarios

