← К списку версий
v0.35.1
19.08.2026
PATCH
Тариф Free
Что сделано
- Добавлено поле `is_free` (boolean, default false) в таблицу `tariffs`
- Создан тариф «IPD Free» (id=0, slug=ipd-free, level=0)
- Тариф не публичный (is_public=false) — нельзя подключить вручную
- Бесплатный: base_price=0, hourly_rate=0
- Описание: «Вы находитесь в системе IPD. Поддержка доступна по мере освобождения ресурсов.»
- Особенности: доступ к платформе, хранение проекта, базовая поддержка, возможность升级
- Добавлен `is_free` в fillable/casts
- Добавлен метод `isFree()` — возвращает true для тарифа Free
- Добавлен метод `isOnFreeTariff()` — проверяет, находится ли клиент на Free
- Добавлен метод `getEffectiveTariff()` — возвращает текущий тариф (платный или Free)
- `subscriptions:expire` — переводит клиентов с истёкшими подписками на Free
- `clients:ensure-tariffs` — устанавливает Free для всех клиентов без тарифа
- Обновлён `index()` — передаёт freeTariff и isOnFree в виджет
- Тарифы для подписки: исключён Free (только публичные, не-free)
- Новый блок «IPD Free» — показывает текущий бесплатный тариф с описанием и особенностями
- Бейдж «Текущий тариф: IPD Free» для клиентов без платной подписки
- Подсказки для升级 к платным тарифам
- Добавлена колонка «Тариф» в список пользователей
- Показывает название платного тарифа или «Free» для бесплатных
- Все существующие клиенты переведены на тариф Free (7 клиентов)
- Единственный платный клиент (Егор Савинский) остался на «Итеративная инкрементная поставка»
Результат
- Бесплатный тариф «IPD Free» для всех клиентов без платной подписки
- Клиент видит свой текущий тариф и варианты апгрейда
- Админ видит тариф в списке пользователей