from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import gettext_lazy as _
from django.conf import settings
from School.models import SchoolClass

from Establishment.models import Establishment

class RecursionType(models.IntegerChoices):
    RECURSION_NONE     = 0, _('Aucune')
    RECURSION_DAILY    = 1, _('Quotidienne')
    RECURSION_WEEKLY   = 2, _('Hebdomadaire')
    RECURSION_MONTHLY  = 3, _('Mensuel')
    RECURSION_CUSTOM   = 4, _('Personnalisé')

class Planning(models.Model):
    establishment = models.ForeignKey(Establishment, on_delete=models.CASCADE)
    school_class = models.ForeignKey(
        SchoolClass,
        on_delete=models.CASCADE,
        related_name="planning",
        null=True,  # Permet des valeurs nulles
        blank=True  # Rend le champ facultatif dans les formulaires
    )
    name = models.CharField(max_length=255)
    description = models.TextField(default="", blank=True, null=True)
    color= models.CharField(max_length=255, default="#000000")

    def __str__(self):
        return f'Planning {self.name}'


class Events(models.Model):
    planning = models.ForeignKey(Planning, on_delete=models.CASCADE)
    title = models.CharField(max_length=255)
    description = models.TextField(default="", blank=True, null=True)
    start = models.DateTimeField()
    end = models.DateTimeField()
    recursionType = models.IntegerField(choices=RecursionType, default=0)
    recursionEnd = models.DateTimeField(default=None, blank=True, null=True)
    color= models.CharField(max_length=255)
    location = models.CharField(max_length=255, default="", blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True)


    def __str__(self):
        return f'Event {self.title}'