24 lines
880 B
Python
24 lines
880 B
Python
from sqlalchemy import ForeignKey, String
|
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
|
from core.db import Base
|
|
|
|
|
|
class AudioPlaylist(Base):
|
|
__tablename__ = "audioplaylists"
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
title: Mapped[str] = mapped_column(String(64))
|
|
|
|
audios: Mapped[list["Audio"]] = relationship(back_populates="playlist")
|
|
|
|
|
|
class Audio(Base):
|
|
__tablename__ = "audios"
|
|
id: Mapped[int] = mapped_column(primary_key=True)
|
|
filename: Mapped[str] = mapped_column(String(255), unique=True)
|
|
path: Mapped[str] = mapped_column(String(512))
|
|
preview_path: Mapped[str] = mapped_column(String(256))
|
|
name: Mapped[str] = mapped_column(String(255))
|
|
|
|
playlist_id: Mapped[int | None] = mapped_column(ForeignKey("audioplaylists.id"))
|
|
playlist: Mapped[AudioPlaylist | None] = relationship(back_populates="audios") |