# Стратегия сброса WEEK_ROLLING (по аналогии с MONTH_ROLLING)

**URL:** https://f.docs.rw/t/topic/778
**Category:** Предложения
**Created:** 2026-09-24T17:27:16Z
**Posts:** 1

## Post 1 by @rightside — 2026-09-24T17:27:16Z

**Коротко.** Нужна скользящая неделя (`WEEK_ROLLING`) и возможность задать дату следующего сброса явно, как `expireAt`. Сейчас есть только общий понедельник.

**Окружение.** Панель 3.4.4. Бесплатный тариф вида «N ГБ в неделю». Сейчас стоит `NO_RESET`, а недельный сброс делает своим кроном бот, как раз потому, что в панели нет скользящей недели.

**Как сейчас.** `WEEK` сбрасывает всех разом в понедельник в 00:15 по времени сервера (`getNextTrafficResetAt`, ветка `WEEK`). Для недельного лимита это неудобно:

- кто пришёл в воскресенье, через сутки получает полный лимит ещё раз, а кто во вторник, ждёт шесть дней;
- в понедельник весь бесплатный парк одновременно выходит из LIMITED.

**Предложение.** Две вещи, которые дополняют друг друга.

1. **Стратегия `WEEK_ROLLING`** в списке рядом с остальными: сброс каждые 7 дней от даты пользователя. Лучший якорь — `firstConnectedAt`: окно начинается, когда человек реально начал пользоваться, а не когда его создал бот, и до первого подключения сброс не нужен вовсе. Если это сложно — от `createdAt`, как в `MONTH_ROLLING`.
2. **Поле `trafficResetAt`** — дата следующего сброса, редактируемая через API и UI, как `expireAt`. Стратегия задаёт период, поле задаёт якорь: панель заполняет его сама по стратегии, а при сбросе сдвигает на период вперёд. Бот или админ при необходимости переписывает дату руками — например, при переводе с платного тарифа на бесплатный окно должно начинаться с момента перевода, а не с даты регистрации.

`{{NEXT_TRAFFIC_RESET_AT}}` и `subscription-refill-date` тогда просто отдают `trafficResetAt`.

**Связано.** [Отправка хука при сбросе трафика у пользователя](https://f.docs.rw/t/topic/494) — событие о системном сбросе (массив `userIds` + стратегия). При скользящей стратегии оно особенно нужно: без него бот не узнает, у кого прошёл сброс, и не сможет уведомить пользователя. При `WEEK` это хотя бы предсказуемый понедельник, при `WEEK_ROLLING` у каждого своё время.
