"""Playlist model.""" from enum import Enum from db import db from models.polymorphable import Polymorphable class PlaylistProvider(Enum): APPLE = "apple" SPOTIFY = "spotify" class Playlist(Polymorphable): """Artist model.""" __tablename__ = "Playlist" id = db.Column(db.Integer, db.ForeignKey(Polymorphable.id), primary_key=True) external_id = db.Column(db.String, nullable=False, unique=True) name = db.Column(db.String, nullable=False) owner_name = db.Column(db.String, nullable=True) provider = db.Column(db.String, nullable=False) images = db.relationship("Image", lazy="subquery") __mapper_args__ = {"polymorphic_identity": "Playlist", "polymorphic_load": "inline"} @property def gras_id(self): if self.provider and self.external_id: return "{}_{}".format(self.provider, self.external_id) return None