diff --git a/constants.py b/constants.py new file mode 100644 index 0000000..f9af533 --- /dev/null +++ b/constants.py @@ -0,0 +1,4 @@ +import os +import sys + +APP_PATH = os.path.dirname(sys.executable) if getattr(sys, "frozen", False) else os.path.dirname(__file__) diff --git a/database/sipro/models/general.py b/database/sipro/models/general.py index 0cfcff1..15e90de 100644 --- a/database/sipro/models/general.py +++ b/database/sipro/models/general.py @@ -53,6 +53,7 @@ class Marketplace(BaseSiproModel): sell_warehouse_products: Mapped[bool] = mapped_column() sell_from_price: Mapped[bool] = mapped_column() is_deleted: Mapped[bool] = mapped_column() + is_paused: Mapped[bool] = mapped_column() warehouses: Mapped[List["Warehouse"]] = relationship(secondary=marketplace_warehouses) warehouse_id: Mapped[str] = mapped_column() diff --git a/limiter/batch_limiter.py b/limiter/batch_limiter.py index 2415373..bc30dea 100644 --- a/limiter/batch_limiter.py +++ b/limiter/batch_limiter.py @@ -5,6 +5,7 @@ from datetime import datetime from redis import asyncio as aioredis import backend.config +from constants import APP_PATH class RedisConnectionManager: @@ -16,6 +17,13 @@ class RedisConnectionManager: async with cls._redis_lock: if cls._redis_connection is None: cls._redis_connection = await aioredis.from_url(backend.config.REDIS_URL) + path = APP_PATH + "/redis.log" + + with open(path, "a") as f: + current_datetime = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + line = f"[{current_datetime}] Created connection to redis\n" + f.write(line) + return cls._redis_connection diff --git a/queries/general.py b/queries/general.py index a0e4543..85e788d 100644 --- a/queries/general.py +++ b/queries/general.py @@ -49,7 +49,7 @@ async def get_stocks_data( sell_blocks: bool = marketplace.sell_blocks sell_warehouse_products: bool = marketplace.sell_warehouse_products sell_from_price: int = marketplace.sell_from_price - + is_paused = marketplace.is_paused supplier_stock_subquery = ( select( func.greatest( @@ -302,7 +302,7 @@ async def get_stocks_data( slaves_stock, price_recommended, is_archived) in marketplace_products: - if is_archived or (sell_from_price > price_recommended): + if is_archived or (sell_from_price > price_recommended) or is_paused: response.append({ 'article': denco_article, 'full_stock': 0, diff --git a/updaters/stocks_updater.py b/updaters/stocks_updater.py index 8d303f4..97f060b 100644 --- a/updaters/stocks_updater.py +++ b/updaters/stocks_updater.py @@ -46,6 +46,7 @@ class StocksUpdater: Company.is_deleted == False, Company.is_archived == False, Marketplace.is_deleted == False, + Marketplace.is_paused == False, Marketplace.base_marketplace.in_([ BaseMarketplace.OZON, BaseMarketplace.WILDBERRIES, @@ -115,7 +116,8 @@ class StocksUpdater: MarketplaceProduct.product_id == update.product_id, Marketplace.is_deleted == False, Company.is_deleted == False, - Company.is_archived == False + Company.is_archived == False, + Marketplace.is_paused == False, ) ) stmt_result = await self.session.execute(stmt)