From e627460cb18141a652a755b29610503ef64be739 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Tue, 29 Oct 2024 17:30:23 -0400
Subject: [PATCH] feat: replace default_playlist_id with default_playlist

---
 ...e_schedule_default_playlist_id_and_more.py | 44 +++++++++++++++++++
 program/models.py                             | 16 +++++--
 2 files changed, 56 insertions(+), 4 deletions(-)
 create mode 100644 program/migrations/0121_remove_schedule_default_playlist_id_and_more.py

diff --git a/program/migrations/0121_remove_schedule_default_playlist_id_and_more.py b/program/migrations/0121_remove_schedule_default_playlist_id_and_more.py
new file mode 100644
index 00000000..f6b9aff5
--- /dev/null
+++ b/program/migrations/0121_remove_schedule_default_playlist_id_and_more.py
@@ -0,0 +1,44 @@
+# Generated by Django 4.2.16 on 2024-10-29 21:28
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("program", "0120_playlistentry"),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name="schedule",
+            name="default_playlist_id",
+        ),
+        migrations.RemoveField(
+            model_name="show",
+            name="default_playlist_id",
+        ),
+        migrations.AddField(
+            model_name="schedule",
+            name="default_playlist",
+            field=models.ForeignKey(
+                help_text="Playlist in case a timeslot’s playlist_id of this schedule is empty.",
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="+",
+                to="program.playlist",
+            ),
+        ),
+        migrations.AddField(
+            model_name="show",
+            name="default_playlist",
+            field=models.ForeignKey(
+                help_text="Playlist in case a timeslot’s playlist_id of this show is empty.",
+                null=True,
+                on_delete=django.db.models.deletion.SET_NULL,
+                related_name="+",
+                to="program.playlist",
+            ),
+        ),
+    ]
diff --git a/program/models.py b/program/models.py
index 982796ea..ec4ce5fc 100644
--- a/program/models.py
+++ b/program/models.py
@@ -238,7 +238,13 @@ class Show(models.Model):
     cba_series_id = models.IntegerField(blank=True, null=True)
     created_at = models.DateTimeField(auto_now_add=True)
     created_by = models.CharField(max_length=150)
-    default_playlist_id = models.IntegerField(blank=True, null=True)
+    default_playlist = models.ForeignKey(
+        "Playlist",
+        help_text="Playlist in case a timeslot’s playlist_id of this show is empty.",
+        null=True,
+        on_delete=models.SET_NULL,
+        related_name="+",
+    )
     description = models.TextField(blank=True, help_text="Description of this show.")
     email = models.EmailField(blank=True, null=True, help_text="Email address of this show.")
     funding_category = models.ForeignKey(
@@ -404,10 +410,12 @@ class Schedule(models.Model):
         ],
         null=True,
     )
-    default_playlist_id = models.IntegerField(
-        blank=True,
+    default_playlist = models.ForeignKey(
+        "Playlist",
+        help_text="Playlist in case a timeslot’s playlist_id of this schedule is empty.",
         null=True,
-        help_text="A tank ID in case the timeslot's playlist_id is empty.",
+        on_delete=models.SET_NULL,
+        related_name="+",
     )
     end_time = models.TimeField(null=True, help_text="End time of schedule.")
     first_date = models.DateField(help_text="Start date of schedule.")
-- 
GitLab