diff --git a/tickets/migrations/0007_auto_20240111_0149.py b/tickets/migrations/0007_auto_20240111_0149.py new file mode 100644 index 0000000..c061526 --- /dev/null +++ b/tickets/migrations/0007_auto_20240111_0149.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.20 on 2024-01-10 16:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tickets', '0006_generalticket_payment'), + ] + + operations = [ + migrations.AddField( + model_name='freshmanticket', + name='count', + field=models.PositiveBigIntegerField(default=0), + ), + migrations.AddField( + model_name='generalticket', + name='count', + field=models.PositiveBigIntegerField(default=0), + ), + ] diff --git a/tickets/models.py b/tickets/models.py index 4f9632e..230ef4e 100644 --- a/tickets/models.py +++ b/tickets/models.py @@ -30,10 +30,17 @@ class GeneralTicket(TimeStampedModel): #일반 티켓 price = models.PositiveIntegerField(default=0) status = models.BooleanField(default=False) # 결제 상태 (True: 결제 완료, False: 입금 대기) payment = models.CharField(max_length=6, default='') # 결제 수단 (계좌이체/카카오페이) + count = models.PositiveBigIntegerField(default=0) # 예매자 count def __str__(self): return 'Order {}/{}'.format(self.buyer, self.id) + def save(self, *args, **kwargs): + if not self.pk: + latest_ticket = GeneralTicket.objects.order_by('-created').first() + self.count = latest_ticket.count + 1 if latest_ticket else 1 + super().save(*args, **kwargs) + class Meta: ordering = ['-created'] @@ -44,9 +51,17 @@ class FreshmanTicket(TimeStampedModel): #신입생 티켓 student_id = models.CharField(max_length=10, unique=True) meeting = models.BooleanField(default=False) reservation_id = models.CharField(max_length=10, unique=True, null=True) # 주문번호(예약번호) + count = models.PositiveBigIntegerField(default=0) # 예매자 count + def __str__(self): return 'Order {}.{}'.format(self.buyer, self.id) + + def save(self, *args, **kwargs): + if not self.pk: + latest_ticket = FreshmanTicket.objects.order_by('-created').first() + self.count = latest_ticket.count + 1 if latest_ticket else 1 + super().save(*args, **kwargs) class OrderTransactionManager(models.Manager): diff --git a/tickets/serializers.py b/tickets/serializers.py index c1b8745..23dbe20 100644 --- a/tickets/serializers.py +++ b/tickets/serializers.py @@ -18,6 +18,7 @@ class Meta: 'price', 'status', 'payment', + 'count', ] def create(self, validated_data):