from django.db import models

from teacher.models import Teacher
from module.models import Module
from level.models import Level
from venue.models import  Venue
from semester_block.models import Semester_block

# Create your models here.
class ClassSession(models.Model):
    session_day = models.CharField(max_length=255)
    period = models.IntegerField()
    duration = models.IntegerField()
    venue = models.ForeignKey(Venue,on_delete=models.CASCADE)
    module = models.ForeignKey(Module,on_delete=models.CASCADE, null=True, blank=True)
    teacher = models.ForeignKey(Teacher,on_delete=models.CASCADE, null=True, blank=True)
    level = models.ForeignKey(Level,on_delete=models.CASCADE, null=True, blank=True)
    semester_block = models.ForeignKey(Semester_block,on_delete=models.CASCADE)

    def __str__(self):
        return f"Id: {self.id}, {self.session_day} Period: {self.period} Venue: {self.venue} Level: {self.level}  Teacher: {self.teacher} Module: {self.module}"

    class Meta:
        unique_together = [
            #('session_day', 'period', 'venue', 'semester_block'),
            ('session_day', 'period', 'level', 'semester_block'),
            ('session_day', 'period', 'level'),
            #('session_day', 'period', 'teacher', 'semester_block'),
            #('module','teacher', 'level','semester_block'),
            ('module', 'level','semester_block'),
        ]

class ClassSessionView:
    def __init__(self, session_day, session_period, duration, venue_name, level_name,module_name,teacher_name):
        self.session_day = session_day
        self.session_period = session_period
        self.duration = duration
        self.venue_name = venue_name
        self.level_name = level_name
        self.module_name = module_name
        self.teacher_name = teacher_name

