from django.contrib import admin
from django.db import models
from django.contrib.auth.models import User



class BaseModel(models.Model):
    created_at = models.DateTimeField(blank=True, null=True, auto_now_add=True)
    updated_at = models.DateTimeField(blank=True, null=True, auto_now=True)
    active = models.BooleanField(default=True)

    class Meta:
        abstract = True


class Event(BaseModel):
    id = models.AutoField(primary_key=True)
    name = models.TextField(blank=False, null=False)
    start_date = models.DateTimeField(blank=False, null=False)
    end_date = models.DateTimeField(blank=False, null=False)
    participants = models.IntegerField(blank=False)

    class Meta:
        db_table = 'events'


class EventAdmin(admin.ModelAdmin):
    list_display = ('name', 'start_date', 'end_date', 'active')


class Availability(BaseModel):
    id = models.AutoField(primary_key=True)
    event_id = models.ForeignKey(Event, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    time_table = models.JSONField()

    class Meta:
        db_table = 'availabilities'