from django.db import models # Create your models here. class ShopConfiguration(models.Model): name = models.CharField(max_length=100, default="Shop name", unique=True) logo = models.ImageField(upload_to='shop_logos/', blank=True, null=True) favicon = models.ImageField(upload_to='shop_favicons/', blank=True, null=True) contact_email = models.EmailField(max_length=254, blank=True, null=True) contact_phone = models.CharField(max_length=20, blank=True, null=True) contact_address = models.TextField(blank=True, null=True) opening_hours = models.JSONField(blank=True, null=True) #FIXME: vytvoř JSON tvar pro otvírací dobu, přes validátory #Social facebook_url = models.URLField(max_length=200, blank=True, null=True) instagram_url = models.URLField(max_length=200, blank=True, null=True) youtube_url = models.URLField(max_length=200, blank=True, null=True) tiktok_url = models.URLField(max_length=200, blank=True, null=True) whatsapp_number = models.CharField(max_length=20, blank=True, null=True) #zasilkovna settings zasilkovna_shipping_price = models.DecimalField(max_digits=10, decimal_places=2, default=50) zasilkovna_address_id = models.CharField(max_length=100, blank=True, null=True, help_text="ID výdejního místa Zásilkovny pro odesílání zásilek") free_shipping_over = models.DecimalField(max_digits=10, decimal_places=2, default=2000) #coupon settings multiplying_coupons = models.BooleanField(default=True, help_text="Násobení kupónů v objednávce (ano/ne), pokud ne tak se použije pouze nejvyšší slevový kupón") addition_of_coupons_amount = models.BooleanField(default=False, help_text="Sčítání slevových kupónů v objednávce (ano/ne), pokud ne tak se použije pouze nejvyšší slevový kupón") class CURRENCY(models.TextChoices): CZK = "CZK", "cz#Czech Koruna" EUR = "EUR", "cz#Euro" currency = models.CharField(max_length=10, default=CURRENCY.CZK, choices=CURRENCY.choices) class Meta: verbose_name = "Shop Configuration" verbose_name_plural = "Shop Configuration" def save(self, *args, **kwargs): # zajištění singletonu self.pk = 1 super().save(*args, **kwargs) @classmethod def get_solo(cls): obj, _ = cls.objects.get_or_create(pk=1) return obj