videoflix/backend/video_app/models.py

39 lines
No EOL
1.3 KiB
Python

from django.db import models
from django.conf import settings
from datetime import date
from .class_assets import VIDEO_GENRES
class Video(models.Model):
creator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,default=1)
created_at = models.DateField(default=date.today)
title = models.CharField(max_length=80)
description = models.CharField(max_length=500)
genre = models.CharField(max_length=20, choices=VIDEO_GENRES, blank=True, null=True)
file_path = models.FileField(upload_to='videos/', blank=True, null=True)
file_name = models.CharField(max_length=50, blank=True, null=True)
is_available = models.BooleanField(default=False)
def __str__(self):
return f'({self.id}) {self.title}'
class VideoProgress(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='video_progress'
)
video = models.ForeignKey(
'Video',
on_delete=models.CASCADE,
related_name='progress_entries'
)
position = models.FloatField(default=0.0)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
unique_together = ('user', 'video')
ordering = ['-updated_at']
def __str__(self):
return f'{self.user} - {self.video} @ {round(self.position, 1)}s'