# Изменить поведение эндпоинта /api/users/bulk/extend-expiration-date

**URL:** https://f.docs.rw/t/topic/98
**Category:** Предложения
**Created:** 2026-06-10T21:29:54Z
**Posts:** 1

## Post 1 by @godev — 2026-06-10T21:29:54Z

Сейчас `bulkExtendExpirationDateByUuids` делает **простое прибавление интервала к** `expire_at`:

`expire_at = expire_at + <days>`

Из-за этого, если подписка уже истекла, продление может вообще не “реанимировать” пользователя.

### **Пример (истекла давно)**

Допустим сейчас **2026-01-14 12:00**.

- `expire_at = 2026-01-07 12:00` (истекла **7 дней назад** )

- `extendDays = 1`

Текущее поведение:

- станет `expire_at = 2026-01-08 12:00` (то есть **6 дней назад** )

- по факту подписка всё равно просрочена

### **Пример (истекла недавно)**

Сейчас **2026-01-14 12:00**.

- `expire_at = 2026-01-13 12:00` (истекла **вчера** )

- `extendDays = 1`

Текущее поведение:

- станет `expire_at = 2026-01-14 12:00` (то есть **ровно сейчас** , без запаса)

* * *

### **Предложение по логике продления**

На мой взгляд корректнее продлевать “от текущего момента”, если подписка уже истекла:

- **Если** `expire_at < NOW()` → установить `expire_at = NOW() + <days>`

- **Если** `expire_at >= NOW()` → `expire_at = expire_at + <days>`

То есть по сути: `expire_at = GREATEST(expire_at, NOW()) + <days>`

Это ожидаемо для пользователя: продление всегда даёт активный период, даже если подписка была просрочена.
