File size: 6,195 Bytes
05dddec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
from django.db import models
from django.contrib.auth.models import User


class Profile(models.Model):
    def default_data():
        return {"data": []}

    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="User")
    profilePic = models.CharField(max_length=100, default="0001")
    location = models.CharField(max_length=100, blank=True)
    phone = models.CharField(max_length=10, blank=True)
    otp = models.CharField(max_length=6, blank=True)
    isVolunteer = models.BooleanField(default=False)
    isOrganiser = models.BooleanField(default=False)
    isAccountSetup = models.BooleanField(default=False)
    isCampainVolunteer = models.BooleanField(default=False)
    isVerified = models.BooleanField(default=False)    
    college = models.CharField(max_length=500, blank=True)

    def __str__(self):
        return str(self.user.username)


class Department(models.Model):
    name = models.CharField(max_length=500, unique=True)
    abbriviation = models.CharField(max_length=10, default="")
    coordinator1 = models.ForeignKey(
        Profile, on_delete=models.CASCADE, related_name='department_coordinator1')
    coordinator2 = models.ForeignKey(
        Profile, on_delete=models.CASCADE, blank=True, related_name='department_coordinator2')
    posterImage = models.CharField(max_length=1000)

    def __str__(self):
        return str(self.name)


class Event(models.Model):
    def default_images():
        return {"data": ["/static/event-images/1.jpg","/static/event-images/2.jpg","/static/event-images/3.jpg","/static/event-images/4.jpg"]}
    name = models.CharField(max_length=500, unique=True)
    department = models.ForeignKey(Department, on_delete=models.CASCADE)
    teamName = models.CharField(max_length=100)
    teamLeader = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="event_teamLeader")
    price = models.CharField(max_length=10, default="-")
    teamPrice = models.CharField(max_length=10, default="-")
    winnerPrice1 = models.CharField(max_length=10, null=True, blank=True)
    winnerPrice2 = models.CharField(max_length=10, null=True, blank=True)
    location = models.CharField(max_length=100)
    date = models.DateField()
    description = models.CharField(max_length=10000)
    rules = models.CharField(max_length=10000, null=True, blank=True)
    round1Title = models.CharField(max_length=200, null=True, blank=True)
    round1 = models.CharField(max_length=10000, null=True, blank=True)
    round2Title = models.CharField(max_length=200, null=True, blank=True)
    round2 = models.CharField(max_length=10000, null=True, blank=True)
    round3Title = models.CharField(max_length=200, null=True, blank=True)
    round3 = models.CharField(max_length=10000, null=True, blank=True)
    round4Title = models.CharField(max_length=200, null=True, blank=True)
    round4 = models.CharField(max_length=10000, null=True, blank=True)
    round5Title = models.CharField(max_length=200, null=True, blank=True)
    round5 = models.CharField(max_length=10000, null=True, blank=True)
    tagline = models.CharField(max_length=2000)
    posterImage = models.CharField(max_length=1000)
    winner1 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True, null=True, related_name="event_winner1")
    winner2 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True, null=True, related_name="event_winner2")
    winner3 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True, null=True, related_name="event_winner3")
    organisers = models.JSONField()
    volunteer = models.JSONField()
    organiser1 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True,null=True, related_name='organiser1_event')
    organiser2 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True,null=True, related_name='organiser2_event')
    organiser3 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True,null=True, related_name='organiser3_event')
    organiser4 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True,null=True, related_name='organiser4_event')
    organiser5 = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True,null=True, related_name='organiser5_event')
    teamParticapantCount = models.PositiveIntegerField(default=1)
    teamParticapantCountMin = models.PositiveIntegerField(default=1)
    isTeamEvent = models.BooleanField()
    isTeamPriceFull  = models.BooleanField(default=False)
    isClosed = models.BooleanField()
    status = models.CharField(max_length=100)
    images = models.JSONField(default=default_images)

    def __str__(self):
        return str(self.name)


class Ticket(models.Model):
    owner = models.ForeignKey(Profile, on_delete=models.CASCADE)
    owner1 = models.ForeignKey(Profile,on_delete=models.CASCADE,null=True,blank=True,related_name="owner1_ticket")
    owner2 = models.ForeignKey(Profile,on_delete=models.CASCADE,null=True,blank=True,related_name="owner2_ticket")
    owner3 = models.ForeignKey(Profile,on_delete=models.CASCADE,null=True,blank=True,related_name="owner3_ticket")
    owner4 = models.ForeignKey(Profile,on_delete=models.CASCADE,null=True,blank=True,related_name="owner4_ticket")
    event = models.ForeignKey(Event, on_delete=models.CASCADE)
    comments = models.CharField(max_length=200,null=True,blank=True)
    date = models.DateField(auto_now_add=True)
    qrCodeData = models.CharField(max_length=64)
    userCount = models.PositiveIntegerField(default=1)
    paymentMethod = models.CharField(max_length=100,null=True,blank=True)
    isScanned = models.BooleanField(default=False)
    isPaid = models.BooleanField(default=False)
    acceptedBy = models.ForeignKey(Profile, on_delete=models.CASCADE,null=True,blank=True,related_name="name_acceptedBy") 
    def __str__(self):
        return str(self.owner) and str(self.event)


class Notifications(models.Model):
    user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="notification_user")
    event = models.ForeignKey(Event, on_delete=models.CASCADE)
    dateTime = models.DateTimeField()
    isRead = models.BooleanField()

class Gallery(models.Model):
    path = models.CharField(max_length=1000)