Обмеження кількості днів заморозки

Починаючи з версії 0.9.0 додано абсолютно кабалістичну можливість обмеження кількості днів заморозки, доступних для користувача, з наступним кулдауном протягом певного часу, протягом якого користувач неодмінно повинен бути активним, тобто - працювати.

Описується це все наступними опціями конфігу alter.ini ось у такому вигляді (для прикладу):

FREEZE_DAYS_CHARGE_ENABLED=1
FREEZE_DAYS_INITIAL_AMOUNT=365
FREEZE_DAYS_WORK_TO_RESTORE=120

Виходячи з описаних вище значень опцій: кількість днів заморозки, що доступна користувачеві спочатку - 365 (може бути встановлена індивідуально для кожного користувача в профілі), а кількість днів кулдауну - 120 (так само може бути встановлена індивідуально). Це означає, що протягом необмеженого часу користувач може заморожувати/розморожувати свою послугу, але лічильник, тим не менш, тікає кожного дня, доки активна заморозка послуги - зменшується кількість доступних днів заморозки. Коли ці самі доступні дні будуть вичерпані - заморозку у користувача буде відключено і ввімкнути її буде неможливо до тих пір, поки користувач не “відпрацює” 120 днів. При чому він повинен саме бути активним протягом зазначеної кількості днів - просто внести грошей >= кількості днів кулдауну - не вийде. Відповідно, якщо користувач неактивний - дні кулдауну не рахуються. Як тільки користувач чесно відпрацював 120 днів - йому повертається можливість заморожувати послугу і 365 доступних для заморожування днів. Ось якось так.

Вся обробка проводиться щоденним викликом відповідного action з Remote API - freezedayscharge. Бажано до нарахування абонплати.

Наприклад - ось так:

45 23 * * * /bin/ubapi "freezedayscharge" 


Також не забуваємо додати аналогічні опції в userstats.ini

FREEZE_DAYS_CHARGE_ENABLED=1
FREEZE_DAYS_INITIAL_AMOUNT=365
FREEZE_DAYS_WORK_TO_RESTORE=120

щоб хитрі користувачі не могли встановлювати собі заморозку з особистого кабінету в обхід системних налаштувань.

Як ви вже, напевно, зрозуміли, якщо якомусь конкретному користувачеві потрібно відключити обмеження кількості днів призупинення, можна легко “обійти” систему і поставити овер9000 незліченну кількість днів призупинення, або просто поставити значення днів кулдауну рівним 0.