From 4dc159963394a16d346370fe67cc0e810fbe42df Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Sun, 8 Jan 2023 16:51:50 -0500 Subject: [PATCH] Add uuid fields for slugs at some point --- .../0003_album_uuid_artist_uuid_track_uuid.py | 35 +++++++++++++++++++ vrobbler/apps/music/models.py | 8 +++-- .../migrations/0004_series_uuid_video_uuid.py | 28 +++++++++++++++ vrobbler/apps/videos/models.py | 12 +++++-- 4 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 vrobbler/apps/music/migrations/0003_album_uuid_artist_uuid_track_uuid.py create mode 100644 vrobbler/apps/videos/migrations/0004_series_uuid_video_uuid.py diff --git a/vrobbler/apps/music/migrations/0003_album_uuid_artist_uuid_track_uuid.py b/vrobbler/apps/music/migrations/0003_album_uuid_artist_uuid_track_uuid.py new file mode 100644 index 0000000..5bfb403 --- /dev/null +++ b/vrobbler/apps/music/migrations/0003_album_uuid_artist_uuid_track_uuid.py @@ -0,0 +1,35 @@ +# Generated by Django 4.1.5 on 2023-01-08 21:31 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('music', '0002_alter_album_year'), + ] + + operations = [ + migrations.AddField( + model_name='album', + name='uuid', + field=models.UUIDField( + blank=True, default=uuid.uuid4, editable=False, null=True + ), + ), + migrations.AddField( + model_name='artist', + name='uuid', + field=models.UUIDField( + blank=True, default=uuid.uuid4, editable=False, null=True + ), + ), + migrations.AddField( + model_name='track', + name='uuid', + field=models.UUIDField( + blank=True, default=uuid.uuid4, editable=False, null=True + ), + ), + ] diff --git a/vrobbler/apps/music/models.py b/vrobbler/apps/music/models.py index 31777ca..1481f72 100644 --- a/vrobbler/apps/music/models.py +++ b/vrobbler/apps/music/models.py @@ -1,15 +1,17 @@ import logging from typing import Dict, Optional +from uuid import uuid4 + from django.db import models -from django_extensions.db.models import TimeStampedModel from django.utils.translation import gettext_lazy as _ -from vrobbler.apps.music.constants import JELLYFIN_POST_KEYS as KEYS +from django_extensions.db.models import TimeStampedModel logger = logging.getLogger(__name__) BNULL = {"blank": True, "null": True} class Album(TimeStampedModel): + uuid = models.UUIDField(default=uuid4, editable=False, **BNULL) name = models.CharField(max_length=255) year = models.IntegerField(**BNULL) musicbrainz_id = models.CharField(max_length=255, **BNULL) @@ -25,6 +27,7 @@ class Album(TimeStampedModel): class Artist(TimeStampedModel): + uuid = models.UUIDField(default=uuid4, editable=False, **BNULL) name = models.CharField(max_length=255) musicbrainz_id = models.CharField(max_length=255, **BNULL) @@ -37,6 +40,7 @@ class Artist(TimeStampedModel): class Track(TimeStampedModel): + uuid = models.UUIDField(default=uuid4, editable=False, **BNULL) title = models.CharField(max_length=255, **BNULL) artist = models.ForeignKey(Artist, on_delete=models.DO_NOTHING) album = models.ForeignKey(Album, on_delete=models.DO_NOTHING, **BNULL) diff --git a/vrobbler/apps/videos/migrations/0004_series_uuid_video_uuid.py b/vrobbler/apps/videos/migrations/0004_series_uuid_video_uuid.py new file mode 100644 index 0000000..569f6d2 --- /dev/null +++ b/vrobbler/apps/videos/migrations/0004_series_uuid_video_uuid.py @@ -0,0 +1,28 @@ +# Generated by Django 4.1.5 on 2023-01-08 21:31 + +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('videos', '0003_alter_video_run_time_ticks'), + ] + + operations = [ + migrations.AddField( + model_name='series', + name='uuid', + field=models.UUIDField( + blank=True, default=uuid.uuid4, editable=False, null=True + ), + ), + migrations.AddField( + model_name='video', + name='uuid', + field=models.UUIDField( + blank=True, default=uuid.uuid4, editable=False, null=True + ), + ), + ] diff --git a/vrobbler/apps/videos/models.py b/vrobbler/apps/videos/models.py index f8a28e0..61be550 100644 --- a/vrobbler/apps/videos/models.py +++ b/vrobbler/apps/videos/models.py @@ -1,17 +1,22 @@ import logging -from typing import Dict, Tuple +from typing import Dict +from uuid import uuid4 + from django.db import models -from django_extensions.db.models import TimeStampedModel from django.utils.translation import gettext_lazy as _ +from django_extensions.db.models import TimeStampedModel logger = logging.getLogger(__name__) BNULL = {"blank": True, "null": True} class Series(TimeStampedModel): + uuid = models.UUIDField(default=uuid4, editable=False, **BNULL) name = models.CharField(max_length=255) overview = models.TextField(**BNULL) tagline = models.TextField(**BNULL) + # tvdb_id = models.CharField(max_length=20, **BNULL) + # imdb_id = models.CharField(max_length=20, **BNULL) def __str__(self): return self.name @@ -30,12 +35,13 @@ class Video(TimeStampedModel): MOVIE = 'M', _('Movie') # General fields + uuid = models.UUIDField(default=uuid4, editable=False, **BNULL) + title = models.CharField(max_length=255, **BNULL) video_type = models.CharField( max_length=1, choices=VideoType.choices, default=VideoType.UNKNOWN, ) - title = models.CharField(max_length=255, **BNULL) overview = models.TextField(**BNULL) tagline = models.TextField(**BNULL) run_time = models.CharField(max_length=8, **BNULL)