From 7ff2d2e3d599c405ed71297b0c37c3b0bbed179c Mon Sep 17 00:00:00 2001 From: Bastiaan Welmers Date: Thu, 3 Jan 2019 19:17:01 +0100 Subject: [PATCH] Excerpt of the model structure we need --- videodinges/models.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 videodinges/models.py 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()