diff --git a/package.json b/package.json index 7f2c64c..eabe50d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "telegram-shop-bot", - "version": "1.0.1", + "version": "1.0.2", "type": "module", "scripts": { "test": "vitest run", diff --git a/src/services/commissionService.js b/src/services/commissionService.js index 69d877c..3c55fab 100644 --- a/src/services/commissionService.js +++ b/src/services/commissionService.js @@ -55,7 +55,10 @@ export async function getCommissionWallets() { /** * Check if the shop is activated. - * Reads site_settings.shop_activated; falls back to env SHOP_ACTIVATED !== 'false' (default true). + * Приоритет: env SHOP_ACTIVATED (единый источник — панель Bbox) → БД site_settings. + * Раньше БД была первичной, и смена «Магазин активирован» в панели (env) не + * влияла на бота (в БД оставалось старое значение) — рассинхрон «пишет true, + * а бот говорит not activated». Теперь env главный; БД — зеркало-фоллбэк. * @returns {Promise} */ export async function getShopActivated() { @@ -64,25 +67,26 @@ export async function getShopActivated() { return shopActivatedCache; } - try { - const row = await db.getAsync( - "SELECT value FROM site_settings WHERE key = 'shop_activated'" - ); - - let activated; - if (row) { - activated = row.value !== 'false'; - } else { - activated = process.env.SHOP_ACTIVATED !== 'false'; + let activated; + // 1. env (панель Bbox / compose) — единый источник правды + if (process.env.SHOP_ACTIVATED !== undefined) { + activated = process.env.SHOP_ACTIVATED !== 'false'; + } else { + // 2. БД site_settings (админка магазина может вести туда же) + try { + const row = await db.getAsync( + "SELECT value FROM site_settings WHERE key = 'shop_activated'" + ); + activated = row ? row.value !== 'false' : true; + } catch (err) { + logger.error({ err }, 'Failed to read shop_activated from site_settings'); + activated = true; } - - shopActivatedCache = activated; - shopActivatedCachedAt = now; - return activated; - } catch (err) { - logger.error({ err }, 'Failed to read shop_activated from site_settings'); - return process.env.SHOP_ACTIVATED !== 'false'; } + + shopActivatedCache = activated; + shopActivatedCachedAt = now; + return activated; } /**