diff --git a/videodinges/models.py b/videodinges/models.py new file mode 100644 index 0000000..92a2766 --- /dev/null +++ b/videodinges/models.py @@ -0,0 +1,32 @@ +from datetime import datetime +from collections import namedtuple +from django.db import models + +Quality = namedtuple('Quality', ['name', 'width', 'height', 'priority']) + +qualities = ( + Quality(name='360p', width=640, height=360, priority=1), + Quality(name='480p', width=853, height=480, priority=2), + Quality(name='480p', width=1280, height=720, priority=2), + Quality(name='1080p', width=1920, height=1080, priority=1), +) + + +class Video(models.Model): + id = models.AutoField(primary_key=True) + title = models.CharField() + slug = models.CharField() + description = models.TextField() + created_at = models.DateTimeField(default=datetime.now) + updated_at = models.DateTimeField(default=datetime.now) + + def save(self, force_insert=False, force_update=False, using=None, update_fields=None): + self.updated_at = datetime.now() + super().save(force_insert, force_update, using, update_fields) + + +class Transcoding(models.Model): + id = models.AutoField(primary_key=True) + video = models.ForeignKey(Video, on_delete=models.CASCADE) + quality = models.CharField(choices=(quality.name, quality.name) for quality in qualities) + file = models.FileField()