- Updated the `RejectPaymentRequestCommandHandler` to immediately suspend user configs if a payment request is rejected and no other pending subscription requests exist. - Introduced `SuspendIfStillUnpaidAsync` method to handle the logic for suspending configs based on the user's billing status. - Enhanced the `MarkPaymentSentCommandHandler` to protect configs during the payment confirmation process, ensuring users remain active while awaiting admin approval. - Refactored `BillingConfigResumer` to include methods for protecting and suspending configs, improving the overall billing management flow. - Updated tests to cover new behaviors and ensure proper functionality in various scenarios related to payment requests and config management.
PnvPanel — Документация
Документация описывает систему как она построена: архитектура, домен, конвенции кода, как запускать и как пользоваться.
Индекс. Читать в этом порядке для погружения:
- Product Vision & Scope — продукт, роли, пользовательские сценарии, функциональность.
- Architecture — Clean Architecture, слои, CQRS, интеграция с 3x-ui, realtime, безопасность, фоновые задачи.
- Domain Model — сущности, value objects, связи, инварианты, уведомления/аудит.
- Tech Stack — используемые технологии и ключевые решения по домену.
- Backend Conventions — структура решения, паттерны, соглашения по коду.
- Frontend — стек, структура, работа с API и realtime.
- Telegram Bot — бот: ссылка на сайт, просмотр конфигов, passwordless-вход через привязку Telegram.
- API Design — контракты REST и SignalR.