from asignatura import Asignatura

class Alumno:
    UV_MAXIMA = 25

    def __init__(self, nombre, numero_cuenta, carrera):
        self.nombre = nombre
        self.numero_cuenta = numero_cuenta
        self.carrera = carrera
        self.uv_tomadas = 0
        self.secciones = []


    def adicionar(self, seccion):
        diferencia = Alumno.UV_MAXIMA - self.uv_tomadas - seccion.asignatura.uv

        if diferencia >= 0 and seccion not in self.secciones:
            self.secciones.append(seccion)
            self.uv_tomadas += seccion.asignatura.uv


    def cancelar(self, codigo_seccion, codigo_asignatura):
        temp = self.get_seccion(codigo_seccion, codigo_asignatura)

        if temp is not False:
            self.secciones.remove(temp)
            self.uv_tomadas -= temp.asignatura.uv


    def get_seccion(self, codigo_seccion, codigo_asignatura):
        for item in self.secciones:
            if (item.codigo == codigo_seccion and item.asignatura.codigo == codigo_asignatura):
                return item
        return False


    def get_uv(self):
        return self.uv_tomadas
