from typing import TYPE_CHECKING from sqlalchemy import UniqueConstraint, ForeignKey from sqlalchemy.orm import mapped_column, Mapped, relationship from .base import BaseSiproModel if TYPE_CHECKING: from .products import MarketplaceProduct class FboMarketplaceWarehouse(BaseSiproModel): __tablename__ = 'fbo_marketplace_warehouses' id: Mapped[int] = mapped_column(primary_key=True) name: Mapped[str] = mapped_column(nullable=False, index=True) base_marketplace: Mapped[int] = mapped_column(nullable=False) inner_id: Mapped[int] = mapped_column(nullable=False, index=True) __table_args__ = ( UniqueConstraint('inner_id', 'base_marketplace', name='uq_inner_id_base_marketplace'), ) class MarketplaceProductFboWarehouseStock(BaseSiproModel): __tablename__ = 'marketplace_product_fbo_warehouse_stocks' warehouse_id: Mapped[int] = mapped_column(primary_key=True) quantity: Mapped[int] = mapped_column() marketplace_product_id: Mapped[int] = mapped_column(ForeignKey("marketplace_products.id")) marketplace_product: Mapped["MarketplaceProduct"] = relationship()