27 lines
986 B
Python
27 lines
986 B
Python
from sqlalchemy import Column, String, ForeignKey, Boolean, Integer
|
|
from sqlalchemy.dialects.postgresql import UUID
|
|
from sqlalchemy.orm import relationship
|
|
from app.domain.models.base import BaseModel
|
|
|
|
class Music(BaseModel):
|
|
'''음악 모델'''
|
|
__tablename__ = "musics"
|
|
|
|
# 외래키
|
|
order_id = Column(UUID(as_uuid=True), ForeignKey('orders.id'), nullable=False)
|
|
|
|
index = Column(Integer, nullable=False) # 번호
|
|
is_selected = Column(Boolean, nullable=False) # 선택 여부
|
|
|
|
title = Column(String, nullable=False) # 제목
|
|
url = Column(String, nullable=False) # 주소
|
|
duration = Column(Integer, nullable=False) # 재생 시간
|
|
lyrics = Column(String, nullable=False) # 가사
|
|
|
|
# 관계 설정
|
|
# ( musics --- N:1 --- orders )
|
|
order = relationship("Order", back_populates="musics")
|
|
|
|
# ( musics --- 1:1 --- videos )
|
|
video = relationship("Video", back_populates="music", uselist=False, cascade="all, delete-orphan")
|