"""Model for OrderProduct.""" from sqlalchemy import BIGINT, Column, ForeignKey, Integer from sqlalchemy.dialects.mysql import MEDIUMINT from ows_product_physical.connector.mysql import DeliveryBaseModel class OrderProduct(DeliveryBaseModel): """OrderProduct Model.""" __tablename__ = 'order_products' order_product_id = Column( 'id', BIGINT().with_variant(Integer, 'sqlite'), primary_key=True, autoincrement=True) order_id = Column(ForeignKey('orders.id'), nullable=False, index=True) product_id = Column( MEDIUMINT().with_variant(Integer, 'sqlite'), nullable=False) def to_dict(self, with_order=False): """Dictionary representation of OrderProduct.""" if with_order: return { 'id': self.order_product_id, 'product_id': self.product_id, 'order_id': self.order_id, } return {'id': self.order_product_id, 'product_id': self.product_id, } def get_order_products_by_order_id(order_id, session): """Returns OrderProduct entries by order_id.""" return session.query(OrderProduct) \ .filter(OrderProduct.order_id == order_id) \ .all()