from django.db import models
from users.models import User
from payments.models import Payment

STANDS = (
    ('STANDARD', 'STANDARD'),
    ('GOLD', 'GOLD'),
    ('PREMIUM', 'PREMIUM'),
    ('CULINAIRE', 'CULINAIRE'),
    ('ARTISANALE', 'ARTISANALE'),
)
# Create your models here.
class Event(models.Model):
    class Meta:
        db_table="evenements"

    title = models.CharField(max_length=255)
    cover = models.ImageField(upload_to='img/event_cover/')
    description = models.TextField()
    start_date = models.DateField(null=True, blank=True)
    end_date = models.DateField(null=True, blank=True)
    address = models.CharField(max_length=500, blank=True, null=True)

    def __str__(self):
        return self.title


class Stand(models.Model):
    type = models.CharField(max_length=255, choices=STANDS, default='STANDARD')
    description = models.TextField()
    cover = models.ImageField(upload_to='img/stand_cover/')
    event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='stands')
    price = models.IntegerField(default=True, blank=True, null=True)
    surface = models.IntegerField(default=True, blank=True, null=True)
    stock = models.IntegerField(default=True, blank=True, null=True)

    def __str__(self):
        return self.type


class Booking(models.Model):
    date = models.DateTimeField(auto_now_add=True)
    edited= models.DateTimeField(auto_now=True, null=True, blank=True)
    stripe_checkout_id = models.CharField(max_length=500,null=True, blank=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
    stand = models.ForeignKey(Stand, on_delete=models.CASCADE, related_name='bookings')
    event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='event')
    payment = models.ForeignKey(Payment, on_delete=models.CASCADE, related_name='payment', null=True)

    def __str__(self):
        return f"{self.user} - {self.event} - {self.stand}"
  