from sqlalchemy import Column, Integer, String, ForeignKey, DateTime from sqlalchemy.orm import relationship from datetime import datetime from app.database.database import Base class Cart(Base): __tablename__ = "cart" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("user.id"), unique=True) created_at = Column(DateTime, default=datetime.utcnow) user = relationship("User", back_populates="cart") items = relationship("CartItem", back_populates="cart", cascade="all, delete-orphan") class CartItem(Base): __tablename__ = "cart_item" id = Column(Integer, primary_key=True, index=True) cart_id = Column(Integer, ForeignKey("cart.id")) product_id = Column(Integer, ForeignKey("product.id")) quantity = Column(Integer, default=1) size = Column(String, nullable=True) color = Column(String, nullable=True) cart = relationship("Cart", back_populates="items") product = relationship("Product", back_populates="cart_items")