aboutsummaryrefslogtreecommitdiff
path: root/watch/models.py
blob: 9b24a9ca0bdee4ba90b4b9cccf3253f6c8084303 (plain)
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
114
115
116
117
118
119
120
121
122
# from django.db import models
# from django.utils import timezone
# import datetime
# class AnimeGenre(models.Model):
#     genre_id = models.AutoField(primary_key=True)
#     name = models.CharField(max_length=255)

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

# class AnimeStudio(models.Model):
#     studio_id = models.AutoField(primary_key=True)
#     name = models.CharField(max_length=255)

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

# class AnimeTitle(models.Model):
#     title_id = models.AutoField(primary_key=True)
#     anime = models.OneToOneField('Anime', on_delete=models.CASCADE, related_name='title')
#     english = models.CharField(max_length=255, blank=True, null=True)
#     romaji = models.CharField(max_length=255, blank=True, null=True)
#     native = models.CharField(max_length=255, blank=True, null=True)

#     def __str__(self):
#         return self.english if self.english else self.romaji

# class AnimeTrailer(models.Model):
#     trailer_id = models.AutoField(primary_key=True)
#     anime = models.OneToOneField('Anime', on_delete=models.CASCADE, related_name='trailer')
#     id = models.CharField(max_length=255)
#     site = models.CharField(max_length=255)
#     thumbnail = models.URLField()

#     def __str__(self):
#         return self.id

# class Anime(models.Model):
#     anime_id = models.AutoField(primary_key=True)
#     id = models.CharField(max_length=255, unique=True)
#     malId = models.IntegerField(null=True)
#     z_anime_id = models.CharField(max_length=255, null=True)
#     description = models.TextField(null=True)
#     image = models.URLField()
#     cover = models.URLField()
#     countryOfOrigin = models.CharField(max_length=255, null=True)
#     popularity = models.IntegerField(null=True)
#     color = models.CharField(max_length=255, null=True)
#     releaseDate = models.IntegerField(null=True)
#     totalEpisodes = models.IntegerField(null=True)
#     currentEpisode = models.IntegerField(null=True)
#     dub = models.IntegerField(default=0)
#     sub = models.IntegerField(default=0)
#     rating = models.IntegerField(null=True)
#     duration = models.IntegerField(null=True)
#     genres = models.ManyToManyField('AnimeGenre', blank=True)
#     type = models.CharField(max_length=255, null=True)
#     season = models.CharField(max_length=255, null=True)
#     studios = models.ManyToManyField('AnimeStudio', blank=True)
#     status = models.CharField(max_length=255)
#     start_date = models.DateField(null=True)
#     end_date = models.DateField(null=True)
#     last_updated = models.DateTimeField(auto_now=True)

#     def __str__(self):
#         return self.title.english if self.title.english else self.title.romaji

#     def needs_update(self):
#         # Always update if the anime is ongoing and last updated was more than 12 hours ago
#         if self.status == "Ongoing" and (timezone.now() - self.last_updated) > datetime.timedelta(hours=12):
#             return True
        
#         if self.status == "Not yet aired":
#             return True
        
#         # Update if the current episode count doesn't match the total episodes for a completed anime
#         if self.status == "Completed" and self.currentEpisode != self.totalEpisodes:
#             return True
        
#         if not self.z_anime_id or not self.description or not self.image or not self.cover:
#             return True
        
#         # Otherwise, no update is needed
#         return False

#     def delete(self, *args, **kwargs):
#         # Delete the associated title
#         if self.title:
#             self.title.delete()
        
#         # Delete the associated trailer
#         if self.trailer:
#             self.trailer.delete()
        
#         # Call the "real" delete() method
#         super().delete(*args, **kwargs)

# class AnimeSeason(models.Model):
#     season_id = models.AutoField(primary_key=True)
#     id = models.CharField(max_length=255)
#     anime = models.ForeignKey(Anime, on_delete=models.CASCADE)
#     name = models.CharField(max_length=255)
#     title = models.CharField(max_length=255)
#     poster = models.URLField()
#     isCurrent = models.BooleanField(default=False)
    
#     def __str__(self):
#         return self.title

# class AnimeEpisode(models.Model):
#     episode_id = models.AutoField(primary_key=True)
#     anime = models.ForeignKey(Anime, on_delete=models.CASCADE)
#     zEpisodeId = models.CharField(max_length=255, null=True)
#     title = models.CharField(max_length=255)
#     number = models.IntegerField()
#     description = models.TextField()
#     air_date = models.DateField()
#     filler = models.BooleanField(default=False)
#     image = models.URLField()

#     def __str__(self):
#         return f"{self.anime.title} - {self.number}. {self.title}"