from sqlalchemy import Column, Integer, String, Date, ForeignKey, DateTime, func from sqlalchemy.orm import relationship from .database import Base class Collection(Base): __tablename__ = "collections" id = Column(Integer, primary_key=True, index=True, autoincrement=True) name = Column(String, nullable=False) short_code = Column(String, unique=True, nullable=True) created_at = Column(DateTime, server_default=func.now()) stocks = relationship( "CollectionStock", back_populates="collection", cascade="all, delete-orphan", ) class CollectionStock(Base): __tablename__ = "collection_stocks" id = Column(Integer, primary_key=True, index=True, autoincrement=True) collection_id = Column(Integer, ForeignKey("collections.id", ondelete="CASCADE"), nullable=False) stock_code = Column(String, nullable=False) stock_name = Column(String, nullable=False) added_date = Column(Date, nullable=False) collection = relationship("Collection", back_populates="stocks")