from sqlalchemy import Column, String, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.dialects.postgresql import UUID from app.domain.models.base import BaseModel class Order(BaseModel): '''주문 모델''' __tablename__ = "orders" # 외래키들 user_id = Column(UUID(as_uuid=True), ForeignKey('users.id'), nullable=False) item_id = Column(UUID(as_uuid=True), ForeignKey('items.id'), nullable=True) # 주문 정보 status = Column(String, nullable=False) # 관계 설정 # ( orders --- N:1 --- users ) # ( orders --- N:1 --- items ) user = relationship("User", back_populates="orders") item = relationship("Item", back_populates="orders") # ( orders --- 1:N --- videos ) # ( orders --- 1:N --- musics ) # ( orders --- 1:N --- photos ) videos = relationship("Video", back_populates="order", cascade="all, delete-orphan") musics = relationship("Music", back_populates="order", cascade="all, delete-orphan") photos = relationship("Photo", back_populates="order", cascade="all, delete-orphan")