from django.db import models
from django.contrib.postgres.fields import ArrayField
from django.utils.translation import gettext_lazy as _

import os

def registration_logo_upload_to(instance, filename):
    ext = os.path.splitext(filename)[1]
    return f"logos/school_{instance.pk}/logo{ext}"

class StructureType(models.IntegerChoices):
    MATERNELLE = 1, _('Maternelle')
    PRIMAIRE = 2, _('Primaire')
    SECONDAIRE = 3, _('Secondaire')

class EvaluationFrequency(models.IntegerChoices):
    TRIMESTER = 1, _("Trimestre")
    SEMESTER = 2, _("Semestre")
    YEAR = 3, _("Année")

class Establishment(models.Model):
    name = models.CharField(max_length=255)
    address = models.CharField(max_length=255)
    total_capacity = models.IntegerField()
    establishment_type = ArrayField(models.IntegerField(choices=StructureType.choices))
    evaluation_frequency = models.IntegerField(choices=EvaluationFrequency.choices, default=EvaluationFrequency.TRIMESTER)
    licence_code = models.CharField(max_length=100, blank=True)
    is_active = models.BooleanField(default=True)
    created_at = models.DateTimeField(auto_now_add=True)
    logo = models.FileField(
        upload_to=registration_logo_upload_to,
        null=True,
        blank=True
    )

    def __str__(self):
        return self.name