From 1c48f11af2414dfdfcb03ae36a48790331e1cdb2 Mon Sep 17 00:00:00 2001 From: jo Date: Wed, 29 Jun 2022 19:37:30 +0200 Subject: [PATCH] chore(api): rename playlist models fields --- api/libretime_api/schedule/models/playlist.py | 47 +++++--- api/schema.yml | 102 +++++++++--------- 2 files changed, 87 insertions(+), 62 deletions(-) diff --git a/api/libretime_api/schedule/models/playlist.py b/api/libretime_api/schedule/models/playlist.py index 40eb75a66..a5f2ceaf2 100644 --- a/api/libretime_api/schedule/models/playlist.py +++ b/api/libretime_api/schedule/models/playlist.py @@ -2,20 +2,23 @@ from django.db import models class Playlist(models.Model): + created_at = models.DateTimeField(blank=True, null=True, db_column="utime") + updated_at = models.DateTimeField(blank=True, null=True, db_column="mtime") + name = models.CharField(max_length=255) - mtime = models.DateTimeField(blank=True, null=True) - utime = models.DateTimeField(blank=True, null=True) - creator = models.ForeignKey( + description = models.CharField(max_length=512, blank=True, null=True) + length = models.DurationField(blank=True, null=True) + + owner = models.ForeignKey( "core.User", on_delete=models.DO_NOTHING, blank=True, null=True, + db_column="creator_id", ) - description = models.CharField(max_length=512, blank=True, null=True) - length = models.DurationField(blank=True, null=True) def get_owner(self): - return self.creator + return self.owner class Meta: managed = False @@ -29,27 +32,43 @@ class PlaylistContent(models.Model): blank=True, null=True, ) + + class Kind(models.IntegerChoices): + FILE = 0, "File" + STREAM = 1, "Stream" + BLOCK = 2, "Block" + + kind = models.SmallIntegerField( + choices=Kind.choices, + db_column="type", + ) + file = models.ForeignKey( "storage.File", on_delete=models.DO_NOTHING, blank=True, null=True, ) + stream = models.ForeignKey( + "schedule.Webstream", + on_delete=models.DO_NOTHING, + blank=True, + null=True, + ) block = models.ForeignKey( "schedule.SmartBlock", on_delete=models.DO_NOTHING, blank=True, null=True, ) - stream_id = models.IntegerField(blank=True, null=True) - type = models.SmallIntegerField() + position = models.IntegerField(blank=True, null=True) - trackoffset = models.FloatField() - cliplength = models.DurationField(blank=True, null=True) - cuein = models.DurationField(blank=True, null=True) - cueout = models.DurationField(blank=True, null=True) - fadein = models.TimeField(blank=True, null=True) - fadeout = models.TimeField(blank=True, null=True) + offset = models.FloatField(db_column="trackoffset") + length = models.DurationField(blank=True, null=True, db_column="cliplength") + cue_in = models.DurationField(blank=True, null=True, db_column="cuein") + cue_out = models.DurationField(blank=True, null=True, db_column="cueout") + fade_in = models.TimeField(blank=True, null=True, db_column="fadein") + fade_out = models.TimeField(blank=True, null=True, db_column="fadeout") def get_owner(self): return self.playlist.get_owner() diff --git a/api/schema.yml b/api/schema.yml index e9796b464..d6e454056 100644 --- a/api/schema.yml +++ b/api/schema.yml @@ -5794,6 +5794,12 @@ components: - item_url - override_album - podcast + KindEnum: + enum: + - 0 + - 1 + - 2 + type: integer Library: type: object properties: @@ -6273,17 +6279,17 @@ components: type: string format: uri readOnly: true + created_at: + type: string + format: date-time + nullable: true + updated_at: + type: string + format: date-time + nullable: true name: type: string maxLength: 255 - mtime: - type: string - format: date-time - nullable: true - utime: - type: string - format: date-time - nullable: true description: type: string nullable: true @@ -6291,7 +6297,7 @@ components: length: type: string nullable: true - creator: + owner: type: string format: uri nullable: true @@ -6302,37 +6308,33 @@ components: type: string format: uri readOnly: true - stream_id: - type: integer - maximum: 2147483647 - minimum: -2147483648 - nullable: true - type: - type: integer - maximum: 32767 + kind: + allOf: + - $ref: "#/components/schemas/KindEnum" minimum: -32768 + maximum: 32767 position: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true - trackoffset: + offset: type: number format: double - cliplength: + length: type: string nullable: true - cuein: + cue_in: type: string nullable: true - cueout: + cue_out: type: string nullable: true - fadein: + fade_in: type: string format: time nullable: true - fadeout: + fade_out: type: string format: time nullable: true @@ -6344,6 +6346,10 @@ components: type: string format: uri nullable: true + stream: + type: string + format: uri + nullable: true block: type: string format: uri @@ -7081,17 +7087,17 @@ components: type: string format: uri readOnly: true + created_at: + type: string + format: date-time + nullable: true + updated_at: + type: string + format: date-time + nullable: true name: type: string maxLength: 255 - mtime: - type: string - format: date-time - nullable: true - utime: - type: string - format: date-time - nullable: true description: type: string nullable: true @@ -7099,7 +7105,7 @@ components: length: type: string nullable: true - creator: + owner: type: string format: uri nullable: true @@ -7113,37 +7119,33 @@ components: type: string format: uri readOnly: true - stream_id: - type: integer - maximum: 2147483647 - minimum: -2147483648 - nullable: true - type: - type: integer - maximum: 32767 + kind: + allOf: + - $ref: "#/components/schemas/KindEnum" minimum: -32768 + maximum: 32767 position: type: integer maximum: 2147483647 minimum: -2147483648 nullable: true - trackoffset: + offset: type: number format: double - cliplength: + length: type: string nullable: true - cuein: + cue_in: type: string nullable: true - cueout: + cue_out: type: string nullable: true - fadein: + fade_in: type: string format: time nullable: true - fadeout: + fade_out: type: string format: time nullable: true @@ -7155,14 +7157,18 @@ components: type: string format: uri nullable: true + stream: + type: string + format: uri + nullable: true block: type: string format: uri nullable: true required: - item_url - - trackoffset - - type + - kind + - offset PlayoutHistory: type: object properties: