from django.db import models


class TtWeekPattern(models.Model):
    id = models.BigAutoField(primary_key=True)
    code = models.CharField(max_length=150)
    name = models.CharField(max_length=255)
    status = models.SmallIntegerField()

    # These are Timetabler-side identifiers. We keep them as integers for this phase.
    # Conflict logic only needs the pattern -> week mapping.
    department_id = models.BigIntegerField(null=True)
    academic_term_id = models.BigIntegerField(null=True)

    week = models.ManyToManyField("api.TtWeek", through="api.TtWeekPatternWeek")

    STATUS_TO_CODE = {
        "active": 1,
        "inactive": 2,
    }

    class Meta:
        db_table = "tt_week_pattern"

    def __str__(self) -> str:
        return f"{self.code}"

