from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey, CheckConstraint, Index, Boolean, Table, UniqueConstraint from sqlalchemy.orm import relationship from app.db.database import Base from sqlalchemy import event from sqlalchemy.orm import Session from sqlalchemy import func import logging logger = logging.getLogger(__name__) class PricingEvent(Base): __tablename__ = "pricing_events" id = Column(Integer, primary_key=True) inventory_item_id = Column(Integer, ForeignKey("inventory_items.id")) price = Column(Float) price_used = Column(String) price_reason = Column(String) free_shipping_adjustment = Column(Boolean, default=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now()) deleted_at = Column(DateTime(timezone=True), nullable=True) # Relationships inventory_item = relationship( "InventoryItem", primaryjoin="PricingEvent.inventory_item_id == foreign(InventoryItem.id)", viewonly=True )