24 lines
1017 B
Python
24 lines
1017 B
Python
from sqlalchemy import Column, String, Integer, Boolean, DateTime, ForeignKey
|
|
from sqlalchemy.sql import func
|
|
from ..db.database import Base
|
|
|
|
class Playlist(Base):
|
|
__tablename__ = "playlists"
|
|
|
|
id = Column(String, primary_key=True, index=True)
|
|
name = Column(String, nullable=False)
|
|
description = Column(String, default="")
|
|
cover_art_path = Column(String)
|
|
created_at = Column(DateTime(timezone=True), server_default=func.now())
|
|
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
|
|
mood_category = Column(String)
|
|
is_shared = Column(Boolean, default=False)
|
|
share_token = Column(String, unique=True, index=True)
|
|
|
|
class PlaylistSong(Base):
|
|
__tablename__ = "playlist_songs"
|
|
|
|
playlist_id = Column(String, ForeignKey("playlists.id"), primary_key=True)
|
|
song_id = Column(String, ForeignKey("songs.id"), primary_key=True)
|
|
position = Column(Integer, default=0)
|
|
added_at = Column(DateTime(timezone=True), server_default=func.now()) |