Spaces:
Sleeping
Sleeping
| from django.db import models | |
| import random | |
| from django.contrib.auth.models import User | |
| import string | |
| class Coupon(models.Model): | |
| discount_functions = [(0,"CORE"), (1,"CUSTOMER"), (2,"LOYALTY"), (3,"GIFT_WITH_PURCHASE")] | |
| discount_methods = [(0,"POINT_REDEMPTION"), (1,"REDEEMED"), (2,"GIVE_AWAY"), (3,"BONUS_COUPON"), (4,"VOUCHER_GENERIC"), (5,"VOUCHER_LOYALTY"), (6,"VOUCHER_FUEL"), (7,"VOUCHER_THIRDPARTY")] | |
| discount_types = [(0,"AMOUNT"), (1,"PERCENT"), (2,"RE_PRICE"), (3,"ALT_PRICE")] | |
| how_often_apply = [(0,"ALL_APPLICABLE"), (1,"ONCE_PER_ORDER"), (2,"ONCE_PER_SELECTION")] | |
| qualification_types = [(0,"ALL"), (1,"ITEM"), (2,"ORDER")] | |
| rewards_types = [(0,"PURCHASES"), (1,"ITEMS"), (2,"VISIT")] | |
| def randomCouponCode(): | |
| return ''.join(random.choices(string.ascii_uppercase + string.digits, k=10)) | |
| def randomLoyaltyCode(): | |
| return ''.join(random.choices(string.digits, k=10)) | |
| name = models.CharField(max_length=50) | |
| discription = models.TextField(default="") | |
| pointsNeededForRedemption = models.IntegerField() | |
| couponCode = models.CharField(max_length=50, default=randomCouponCode) | |
| loyaltyCode = models.CharField(max_length=50, default=randomLoyaltyCode) | |
| discount = models.IntegerField() | |
| isExpired = models.BooleanField(default=False) | |
| expiryDate = models.DateTimeField(null=True, blank=True) | |
| discountFunction = models.IntegerField(choices=discount_functions, default=2) | |
| discountMethod = models.IntegerField(choices=discount_methods, default=0) | |
| discountType = models.IntegerField(choices=discount_types, default=0) | |
| howOftenApply = models.IntegerField(choices=how_often_apply, default=1) | |
| qualificationType = models.IntegerField(choices=qualification_types, default=2) | |
| rewardsType = models.IntegerField(choices=rewards_types, default=0) | |
| def __str__(self): | |
| return self.couponCode | |
| class UserData(models.Model): | |
| user = models.ForeignKey(User, on_delete=models.CASCADE) | |
| revelId = models.CharField(max_length=50, default="") | |
| refCode = models.CharField(max_length=50, default="") | |
| phone = models.CharField(max_length=15) | |
| birthDate = models.DateField() | |
| gender = models.CharField(max_length=10) | |
| streetName = models.CharField(max_length=50) | |
| city = models.CharField(max_length=50) | |
| state = models.CharField(max_length=50) | |
| country = models.CharField(max_length=50) | |
| pincode = models.CharField(max_length=10) | |
| otp = models.IntegerField(null=True, blank=True) | |
| rewardPoints = models.IntegerField(default=0) | |
| isVerified = models.BooleanField(default=False) | |
| isSubscribed = models.BooleanField(default=False) | |
| isBlocked = models.BooleanField(default=False) | |
| isDeleted = models.BooleanField(default=False) | |
| coupons = models.ManyToManyField(Coupon, blank=True, related_name='coupons') | |
| activatedCoupons = models.ManyToManyField(Coupon, blank=True, related_name='activatedCoupons') | |
| def __str__(self): | |
| return self.user.first_name + " " + self.user.last_name | |