restructure
This commit is contained in:
@@ -1,26 +1,35 @@
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from app.database import Base
|
||||
|
||||
from sqlalchemy import Integer, ForeignKey
|
||||
from sqlalchemy.sql import func
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
|
||||
class GoogleFile(BaseModel):
|
||||
file_id: str
|
||||
file_name: str
|
||||
|
||||
class Genre(BaseModel):
|
||||
genre_id: Optional[int]
|
||||
genre_name: str
|
||||
class Song(Base):
|
||||
__tablename__ = 'songs'
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
og_artist: Mapped[Optional[str]]
|
||||
aca_artist: Mapped[Optional[str]]
|
||||
title: Mapped[Optional[str]]
|
||||
url: Mapped[Optional[str]]
|
||||
yt_id: Mapped[Optional[str]]
|
||||
spfy_id: Mapped[Optional[str]]
|
||||
thumbnail: Mapped[Optional[str]]
|
||||
is_aca: Mapped[Optional[bool]]
|
||||
arng_url: Mapped[Optional[str]]
|
||||
categories: Mapped[Optional[dict[str, bool]]]
|
||||
main_category: Mapped[Optional[str]]
|
||||
singable: Mapped[Optional[bool]]
|
||||
|
||||
class Song(BaseModel):
|
||||
id: int
|
||||
og_artist: Optional[str]
|
||||
aca_artist: Optional[str]
|
||||
title: Optional[str]
|
||||
url: Optional[str]
|
||||
yt_id: Optional[str]
|
||||
spfy_id: Optional[str]
|
||||
thumbnail: Optional[str]
|
||||
is_aca: bool
|
||||
arng_url: Optional[str]
|
||||
categories: dict[str, bool]
|
||||
main_category: str
|
||||
singable: bool
|
||||
vote: Optional[int]
|
||||
|
||||
class Vote(Base):
|
||||
__tablename__ = 'votes'
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
song_id: Mapped[int] = mapped_column(Integer, ForeignKey("songs.id"))
|
||||
user_id: Mapped[int]
|
||||
vote: Mapped[Optional[int]]
|
||||
time_created: Mapped[datetime] = mapped_column(server_default=func.now())
|
||||
time_updated: Mapped[Optional[datetime]
|
||||
] = mapped_column(onupdate=func.now())
|
||||
|
||||
Reference in New Issue
Block a user