1.3 User Stories & Use Cases
Документ описывает ключевые пользовательские флоу платформы PSP Aggregator. Каждый процесс привязан к матрице ролей и жизненному циклу сделки.
Документ описывает ключевые пользовательские флоу платформы PSP Aggregator. Каждый процесс привязан к матрице ролей и жизненному циклу сделки.
Статусы сделки в MVP: Draft, Negotiation, Agreed, Declined, Revoked, Terminated, Archived. Истечение срока Secure-ссылки (1 неделя) переводит сделку в Revoked.
1. Flow: Agent Outbound
Агент собирает Proposal из офферов, задаёт Agent Margin и отправляет Secure-ссылку мерчанту.
sequenceDiagram
participant Agent as Агент
participant Admin as Платформа (Admin)
participant Merchant as Мерчант
Note over Agent: Сборка Proposal (Draft)
Agent->>Merchant: Нажатие Generate Secure Link (Assignee: Merchant)
Note over Agent, Merchant: Статус: Negotiation
Merchant-->>Agent: Запрос скидки вне системы (Assignee: Agent)
alt Скидка в рамках Agent Margin
Agent->>Merchant: Агент снижает свою маржу (Assignee: Merchant)
else Скидка требует изменения Base Rate
Agent->>Admin: Request Special Terms с комментарием (Assignee: Admin)
Admin->>Agent: Admin снижает Base Rate (Assignee: Agent)
Agent->>Merchant: Передача новых условий (Assignee: Merchant)
end
Merchant->>Agent: Мерчант нажал Accept (Assignee: Agent)
Note over Admin, Agent: Сделка заблокирована (статус: Agreed)Шаги:
- Каталог (Agent): агент входит в систему и фильтрует офферы (GEO → метод оплаты).
- Формирование подборки (Agent): выбирает офферы и нажимает
Create Proposal. - Настройка Proposal (Agent): обязательно вводит название бренда мерчанта. Видит
Base Rate, задаётAgent Marginперсонально для каждого оффера. Опционально прикрепляет сопроводительный комментарий. НажимаетGenerate Secure Link. - Генерация ссылки: пре-аппрува Admin нет — агент не может снизить
Base Rate. Система генерирует Secure-ссылку со сроком жизни 1 неделя.- State machine: сделка переходит в
Negotiation,Assignee= Merchant.
- State machine: сделка переходит в
- Отправка ссылки: агент отправляет ссылку вне платформы (Telegram / email).
- Решение мерчанта: мерчант видит
Final Fee;Real Nameскрыт, виденAlias. Три пути:- Вариант А (согласие): нажимает
Accept & Leave Contacts. Точечный встречный комментарий —[Post-MVP]. - Вариант Б (отказ / отзыв / тайм-аут): отказ мерчанта →
Declined; отзыв участником или истечение 1 недели →Revoked. - Вариант В (запрос скидки): в MVP мерчант торгуется в Telegram, агент обновляет
Agent Marginв тикете и генерирует новую ссылку (Assignee= Merchant).
- Вариант А (согласие): нажимает
- Пинг Admin (
Request Special Terms): если нужна скидка наBase Rate, агент нажимаетRequest Special Termsи вводит текстовое обоснование. Событие пишется в Event Log,Assignee= Admin. После ответа мяч возвращается агенту. Точечные комментарии к цифрам —[Post-MVP]. - Финал: мерчант принимает условия → статус
Agreed.Real Nameоткрывается мерчанту. Admin получает уведомление для старта биллинга вне платформы.
2. Flow: Merchant Inbound
Мерчант, допущенный на платформу SuperAdmin, самостоятельно выбирает оффер из каталога или отправляет холодный запрос.
sequenceDiagram
actor Merchant as Мерчант
participant App as Платформа
actor Admin
Merchant->>App: Логин и фильтрация каталога
alt Вариант А: выбор офферов
Merchant->>App: Выбор офферов и Request Connection
else Вариант Б: холодный запрос
Merchant->>App: Contact Us (пустая заявка + комментарий)
end
Note over App: Сделка создана: Negotiation
App-->>Admin: Алерт: входящая заявка
Admin->>App: Подбор тарифов / уточнение с мерчантом
Merchant->>App: Accept
Note over App: Статус: Agreed
App-->>Merchant: Real Name провайдера открытШаги:
- Авторизация (Merchant): мерчант входит в кабинет.
- Каталог (Merchant): видит офферы. Ставки —
Final FeeприAgent Margin= 0, то естьBase Rate. ВиденAlias, неReal Name. - Заявка (Merchant): два пути:
- Вариант А: выбирает один или несколько офферов, нажимает
Request Connection. Опционально оставляет комментарий. - Вариант Б (холодный запрос): если ничего не подошло, нажимает
Contact Us / Request Custom Termsи отправляет текстовый запрос. Создаётся сделка без офферов. - State machine: статус
Negotiation,Assignee= Admin.
- Вариант А: выбирает один или несколько офферов, нажимает
- Обработка (Admin): если заявка пустая, Admin вручную подбирает офферы.
- Акцепт: мерчант принимает условия →
Agreed. - Деанонимизация: после
AgreedReal Nameпровайдера открывается мерчанту.
3. Flow: Admin Outbound
Admin собирает прямое предложение мерчанту, минуя агента. Agent Margin = 0.
sequenceDiagram
actor Admin
participant App as Платформа
actor Merchant as Мерчант
Admin->>App: Create Direct Proposal в каталоге
Admin->>App: Сборка офферов (Agent Margin = 0)
Note over App: Сделка: Draft, затем Negotiation
Admin->>Merchant: Отправка Secure-ссылки
Merchant->>App: Выбор тарифа и Accept
Note over App: Статус: Agreed
App-->>Admin: Алерт: успешный стартШаги:
- Инициирование (Admin): нажимает
Create Direct Proposalв каталоге. - Сборка (Admin): выбирает пул офферов.
Agent Marginне применяется (0%).- State machine: сборка в
Draft; после отправки ссылки —Negotiation,Assignee= Merchant.
- State machine: сборка в
- Отправка ссылки: Admin отправляет Secure-ссылку мерчанту.
- Акцепт (Merchant): мерчант выбирает тариф и нажимает Accept.
- Финал: статус
Agreed. Платформа уведомляет Admin.Real Nameоткрывается мерчанту.
4. Registration Flow (Closed Invite)
В MVP платформа — закрытый клуб. Кнопки Sign Up на лендинге нет. Роль назначает только SuperAdmin.
sequenceDiagram
actor SuperAdmin
participant App as Платформа
actor Guest as Гость
SuperAdmin->>App: Копирует статичную ссылку /registration
SuperAdmin->>Guest: Отправляет ссылку (Telegram / Email)
Guest->>App: Переходит по ссылке и заполняет данные
Note over App: Аккаунт: Pending (без роли)
App-->>SuperAdmin: Алерт: новая заявка на регистрацию
SuperAdmin->>App: Назначает роль (Merchant / Agent) или Reject
Note over App: Статус: Active
App-->>Guest: Доступ в каталог открытШаги:
- Приглашение (SuperAdmin): в разделе Users нажимает
Invite User, копирует статичную ссылку и отправляет её. - Регистрация (Guest): гость заполняет First Name, Last Name, Email, Telegram, Password.
- Карантин (система): аккаунт создаётся в статусе
Pendingбез роли. Пользователь видит экран ожидания проверки. Доступ к функционалу закрыт. - Модерация (SuperAdmin): в таблице Pending Users назначает роль (
AgentилиMerchant) либо отклоняет заявку (Rejected). - Активация: при назначении роли статус
Active, доступ в каталог открыт.
[Post-MVP]: автоматическая регистрация мерчанта по Secure-ссылке агента без ручной модерации SuperAdmin.
5. Flow: Provider & Offer Management
Admin заводит провайдера (скрытого) и формирует на его базе публичные офферы для каталога.
sequenceDiagram
actor Admin
participant App as Платформа
Admin->>App: Add Provider (детальный профиль)
Note over App: Провайдер сохранён (скрыт от агента и мерчанта)
Admin->>App: Create Offer
Admin->>App: Привязка к провайдеру + публичный Alias
Admin->>App: Raw Provider Rate + Platform Margin
Note over App: Платформа рассчитывает Base Rate
Admin->>App: Конструктор атрибутов
Admin->>App: Публикация
Note over App: Статус оффера: Active
App-->>Admin: Оффер появляется в каталогеШаги:
- Профиль провайдера (Admin): в закрытом разделе «Провайдеры» нажимает
Add Provider. ЗаполняетReal Name, описание, страны, валюты, методы интеграции, контакты. Карточка доступна только Admin / SuperAdmin. - Инициация оффера (Admin):
Create Offer, выбор провайдера из списка. - Анонимизация: задаёт публичный
Alias(напримерCard-EU-01). Это имя видят агенты и мерчанты в каталоге. - Ценообразование:
- вводит
Raw Provider Rate; - устанавливает
Platform Margin; - система рассчитывает
Base Rateдля каталога.
- вводит
- Конструктор атрибутов: пары «поле — значение» (GEO, методы, лимиты, холд и др.). На их основе работают фильтры каталога.
- Публикация: оффер со статусом
Activeсразу виден агентам (для Proposal) и прямым мерчантам (для inbound-заявок).
6. Flow: Availability Management
Каскадная пауза провайдера или точечная пауза оффера.
sequenceDiagram
actor Admin
participant App as Платформа
Admin->>App: Pause на провайдере
App-->>Admin: Модальное окно (связанные офферы и сделки)
Admin->>App: Подтверждение паузы
Note over App: Провайдер и все его офферы: Paused
App-->>Admin: Отметка в каталоге
Note over App: Агенты получают алерты по сделкам в NegotiationШаги:
- Инициация паузы (Admin): в профиле провайдера нажимает
Pause. - Предупреждение (система): модальное окно со списком связанных офферов и активных сделок.
- Анализ (Admin): может открыть отфильтрованный список сделок из модалки (impact analysis).
- Каскадная заморозка: провайдер и все его офферы переходят в
Paused. - Отображение в каталоге: офферы не удаляются, получают бейдж
Paused/ Temporarily Unavailable. - Точечная пауза: Admin может поставить на паузу отдельный оффер, не трогая провайдера целиком.
- Возобновление: кнопка
Resumeвозвращает провайдера или оффер вActive.