import random
import string

from django.db import models


# from accounts.models import CompanyUser


def generate_short_uuid():
    return ''.join(random.choices(string.ascii_letters + string.digits, k=12))


class Category(models.Model):
    name = models.CharField(max_length=200)
    created_by = models.ForeignKey("accounts.CompanyUser", on_delete=models.CASCADE, related_name="created_by")
    is_deleted = models.BooleanField(default=False)
    deleted_by = models.ForeignKey("accounts.CompanyUser", on_delete=models.CASCADE, null=True, blank=True,
                                   related_name="deleted_by")
    deleted_date= models.DateTimeField(null=True, blank=True)

    is_active = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        verbose_name_plural = "QR Category"
    
    def __str__(self):
        return self.name


class Batch(models.Model):
    batch_number = models.CharField(max_length=13, unique=True, editable=False, default=generate_short_uuid)
    batch_name = models.CharField(max_length=255, null=True, blank=True)
    category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True)
    count = models.CharField(max_length=10, default=1)
    created_by = models.ForeignKey("accounts.CompanyUser", on_delete=models.CASCADE)
    color = models.CharField(max_length=256, default="black")
    bgcolor = models.CharField(max_length=256, default="transparent")
    created = models.DateTimeField(auto_now_add=True)
    qr_generation_price = models.IntegerField(null=True, blank=True)

    class Meta:
        verbose_name_plural = "Batches"


# class UserSettings(models.Model):
#     user = models.OneToOneField("accounts.CompanyUser", on_delete=models.CASCADE)
#     length = models.CharField(max_length=10, default=5)
#     count = models.CharField(max_length=10, default=1)
