models.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.db import models
  2. from django_extensions.db.models import TimeStampedModel
  3. from django.utils.translation import gettext_lazy as _
  4. BNULL = {"blank": True, "null": True}
  5. class Series(TimeStampedModel):
  6. name = models.CharField(max_length=255)
  7. overview = models.TextField(**BNULL)
  8. tagline = models.TextField(**BNULL)
  9. class Video(TimeStampedModel):
  10. class VideoType(models.TextChoices):
  11. UNKNOWN = 'U', _('Unknown')
  12. TV_EPISODE = 'E', _('TV Episode')
  13. MOVIE = 'M', _('Movie')
  14. # General fields
  15. video_type = models.CharField(
  16. max_length=1,
  17. choices=VideoType.choices,
  18. default=VideoType.UNKNOWN,
  19. )
  20. title = models.CharField(max_length=255, **BNULL)
  21. overview = models.TextField(**BNULL)
  22. tagline = models.TextField(**BNULL)
  23. run_time = models.CharField(max_length=8, **BNULL)
  24. run_time_ticks = models.BigIntegerField(**BNULL)
  25. year = models.IntegerField()
  26. # TV show specific fields
  27. tv_series = models.ForeignKey(Series, on_delete=models.DO_NOTHING, **BNULL)
  28. season_number = models.IntegerField(**BNULL)
  29. episode_number = models.IntegerField(**BNULL)
  30. tvdb_id = models.CharField(max_length=20, **BNULL)
  31. imdb_id = models.CharField(max_length=20, **BNULL)
  32. tvrage_id = models.CharField(max_length=20, **BNULL)