from sqlalchemy.orm import relationship from sqlalchemy import Column, String, ForeignKey from sqlalchemy.dialects.postgresql import UUID from app.domain.models.base import BaseModel from sqlalchemy.dialects.postgresql import ARRAY class Item(BaseModel): '''업체 모델''' __tablename__ = "items" # 외래키 - users 테이블의 id 참조 user_id = Column(UUID(as_uuid=True), ForeignKey('users.id'), nullable=False) # 업체 정보 name = Column(String, nullable=False) address = Column(String, nullable=False) url = Column(String, nullable=False) phone_number = Column(String, nullable=True) thumbnail_url = Column(String, nullable=True) hashtags = Column(ARRAY(String(30)), nullable=True) description = Column(String, nullable=True) # 관계 설정 # ( items --- N:1 --- users ) # ( items --- 1:N --- orders ) user = relationship("User", back_populates="items") orders = relationship("Order", back_populates="item", cascade="all, delete-orphan")