101 / authentication /models.py
thejagstudio's picture
Upload 54 files
085ce5c verified
raw
history blame
3.03 kB
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)
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.IntegerField()
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