async def update_item_list(self, db: Session, *, order_db: Order, order_update: OrderUpdate) -> Order: db.query(ItemOrder).filter(ItemOrder.order_id == order_db.id).delete() item_orders: List[ItemOrder] = [] for item in order_update.items_in_order: item_order = ItemOrder( tot_price=item.tot_price, quantity=item.quantity, order_id=order_db.id, item_id=item.item_id, ) item_orders.append(item_order) order_db.items = item_orders db.add(order_db) db.commit() db.flush(order_db) return order_db
async def create(self, db: Session, *, order_in: OrderCreate) -> Order: new_order = Order(business_id=order_in.business_id) db.add(new_order) db.commit() db.flush(new_order) item_orders: List[ItemOrder] = [] for item in order_in.items_in_order: item_db = await crud.item.get(db, id=item.item_id) if not item_db: raise HTTPException(status_code=404, detail=f"Item {item.item_id} not found") # Create a new relation ItemOrder item_order = ItemOrder( tot_price=item.tot_price, quantity=item.quantity, order_id=new_order.id, item_id=item_db.id, ) item_orders.append(item_order) new_order.items = item_orders db.add(new_order) db.commit() db.flush(new_order) return new_order