movie-night-api/movie_manager/models.py

66 lines
2.3 KiB
Python
Raw Permalink Normal View History

2025-04-07 00:30:11 -05:00
from django.db import models
from django.contrib.auth.models import User
2025-04-13 01:47:22 -05:00
2025-04-07 00:30:11 -05:00
class Movie(models.Model):
title = models.CharField(max_length=100)
imdb_id = models.CharField(max_length=100)
year = models.IntegerField()
2025-04-13 01:47:22 -05:00
critic_score = models.CharField(max_length=500, null=True, blank=True)
2025-04-07 00:30:11 -05:00
genre = models.CharField(max_length=100)
director = models.CharField(max_length=500)
actors = models.CharField(max_length=500)
plot = models.CharField(max_length=500)
poster = models.CharField(max_length=500)
2025-04-08 17:04:32 -05:00
last_watched = models.DateTimeField(null=True, blank=True)
2025-04-07 21:05:05 -05:00
added_by = models.ForeignKey(User, on_delete=models.CASCADE)
2025-04-07 00:30:11 -05:00
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
deleted_at = models.DateTimeField(null=True, blank=True)
2025-04-07 21:05:05 -05:00
class Meta:
ordering = ["title"]
2025-04-07 00:30:11 -05:00
def __str__(self):
return self.title
class MovieList(models.Model):
name = models.CharField(max_length=100)
public = models.BooleanField(default=False)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
movies = models.ManyToManyField(Movie)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
deleted_at = models.DateTimeField(null=True, blank=True)
2025-04-07 21:05:05 -05:00
class Meta:
ordering = ["name"]
2025-04-07 00:30:11 -05:00
def __str__(self):
return self.name
2025-04-08 17:04:32 -05:00
2025-04-13 01:47:22 -05:00
2025-04-08 17:04:32 -05:00
class Schedule(models.Model):
name = models.CharField(max_length=100)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
public = models.BooleanField(default=False)
showings = models.ManyToManyField("Showing")
slug = models.SlugField(max_length=100, default="")
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
deleted_at = models.DateTimeField(null=True, blank=True)
2025-04-13 01:47:22 -05:00
2025-04-08 17:04:32 -05:00
class Showing(models.Model):
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
owner = models.ForeignKey(User, on_delete=models.CASCADE)
public = models.BooleanField(default=False)
showtime = models.DateTimeField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta:
ordering = ["showtime"]