]> vgcfreebox.myrthtech.pt Git - ue-cc-donkeysponsor.git/blob - core/models.py
more content for webapp-due to commit blockage
[ue-cc-donkeysponsor.git] / core / models.py
1 from django.db import models
2 from django.contrib.auth.models import User
3
4
5 class Profile(models.Model):
6 name = models.CharField(max_length=100)
7 description = models.TextField()
8
9 def __str__(self):
10 return self.name
11
12 class UserExtension(models.Model):
13 user = models.OneToOneField(User, on_delete=models.CASCADE)
14 gender = models.CharField(max_length=10, blank=True, help_text="*SEXO")
15 date_of_birth = models.DateField(help_text="*DATA DE NASC.")
16 USER_TYPE_CHOICES = [
17 ('PRODUCER', 'Produtor'),
18 ('NORMAL', 'Normal (Sponsor)'),
19 ]
20 user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES, default='NORMAL')
21 profile = models.ForeignKey(Profile, on_delete=models.CASCADE, null=True, blank=True)
22
23 def __str__(self):
24 return f"{self.user.username} ({self.user_type})"
25
26 class Donkey(models.Model):
27 name = models.CharField(max_length=100)
28 race = models.CharField(max_length=100)
29 location = models.CharField(max_length=255)
30 date_of_birth = models.DateField(null=True, blank=True)
31 owner = models.ForeignKey(User, on_delete=models.CASCADE)
32 cover_image = models.ImageField(upload_to='donkey_covers/')
33
34 def __str__(self):
35 return self.name
36
37 class Sponsorship(models.Model):
38 type = models.CharField(max_length=50)
39 start_date = models.DateField()
40 amount = models.DecimalField(max_digits=10, decimal_places=2)
41 user = models.ForeignKey(User, on_delete=models.CASCADE)
42 donkey = models.ForeignKey(Donkey, on_delete=models.CASCADE)
43
44 class Post(models.Model):
45 donkey = models.ForeignKey(Donkey, on_delete=models.CASCADE)
46 date = models.DateTimeField(auto_now_add=True)
47 description = models.TextField()
48 image_url = models.ImageField(upload_to='posts/')