from django.db import models from accounts.models import User class RegistrationCode(models.Model): code = models.CharField(max_length=32, unique=True, verbose_name="注册码") manager = models.ForeignKey( User, on_delete=models.CASCADE, limit_choices_to={"role": "manager"}, verbose_name="对应分管理" ) description = models.CharField(max_length=100, blank=True, verbose_name="说明") usage_limit = models.IntegerField(default=1, verbose_name="最多使用次数") used_count = models.IntegerField(default=0, verbose_name="已使用次数") created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") class Meta: verbose_name = "注册码申请" verbose_name_plural = "注册码申请" def __str__(self): return f"{self.code} ({self.used_count}/{self.usage_limit})" def is_available(self): return self.used_count < self.usage_limit