Заплановано
ЭТАП 2: Привязка к API E-Cards (Техническая логика бэкенда)
Заплановано⏱️ Время в статусах:
Главное правило этапа: Все данные по картам, балансам и транзакциям берутся из API E-Cards. Наша собственная база данных (БД) используется для хранения структуры компании (разделения на Баеров/Фармеров) и привязки карт к Внутренним Группам.
1. Страница «Главная / Дашборд»
Сводные карточки с общими балансами: Бэкенд делает запрос к API E-Cards, запрашивает балансы по всем активным счетам системы, суммирует их и отдает на фронтенд.
. Сводные карточки с общими балансами
Логика: Бэкенд делает агрегированный запрос к API E-Cards, собирает общие балансы по всей системе (сумму по всем доступным счетам и картам) и отдает на фронтенд для главных карточек дашборда.
Внизу должна быть написанна цикличность обновления данных
Клик по сервису и окно детализации (НОВОЕ)
Когда пользователь кликает на конкретный сервис в интерфейсе, фронтенд отправляет на бэкенд запрос с ID этого сервиса. Бэкенд должен обработать его следующим образом:
Запрос к API E-Cards: Бэкенд запрашивает детальную информацию по конкретному подключенному сервису/провайдеру.
2. Страница «Управление картами»
Кнопка «Выпустить карту» (Логика попапа):
Когда юзер выбирает BIN, количество, лимиты, группу и жмет подтверждение — бэкенд отправляет в API E-Cards команду на выпуск карт: Запрос(BIN, Кол-во, Лимиты).
Получив от API успешный ответ с номерами выпущенных карт, бэкенд записывает эти карты в нашу БД и жестко привязывает их к выбранной в дропдауне Группе.
Кнопка «Закрыть карту» (Логика текстового поля / CSV):
Бэкенд принимает список номеров карт (введенный руками или распарсенный из CSV).
По каждому номеру бэкенд ищет карту в нашей системе.
Если карта НЕ найдена в системе — её номер заносится в массив ошибок для фронтенда (чтобы вывести уведомление «Карты Х, Y не найдены»).
Если карты найдены — бэкенд отправляет в API E-Cards команду на их закрытие/деактивацию. В нашей БД статус карт меняется на «Закрыта».
Кнопка «Сменить группу» (Логика текстового поля / CSV + Дропдаун):
Бэкенд принимает список номеров карт (введенный вручную или распарсенный из CSV) и ID новой группы, которую юзер выбрал в нижнем дропдауне.
По каждому номеру карты бэкенд отправляет запрос в API E-Cards с командой обновить группу (или тег/категорию) карты на стороне сервиса.
Если API E-Cards возвращает ошибку, что карта не найдена на их стороне, бэкенд заносит этот номер в массив для фронтенда, чтобы вывести пользователю уведомление: «Карты Х, Y не найдены в E-Cards».
Для всех успешно измененных в API карт бэкенд также обновляет статус группы в нашей локальной базе данных (чтобы данные в интерфейсе мгновенно синхронизировались), и фронтенд обновляет отображение.
Кнопка «Передать карты»:
На бэкенде под эту кнопку создается пустой роут (заглушка), который просто возвращает статус Success: true без отправки реальных запросов.
3. РАЗДЕЛ: СТАТИСТИКАВ кладка «Отчеты» (Экран «Детали отчетов»)
Чтобы этот экран работал, бэкенд должен постоянно знать дату последней транзакции по каждой карте (эти данные берутся из API E-Cards через вебхуки или регулярный скрипт обновления).
Обработка кнопки «Настройки отчета» (НОВОЕ):
Когда пользователь нажимает «Применить», фронтенд отправляет на бэкенд массивы данных: ID исключенных групп и ID исключенных держателей. Бэкенд сохраняет эти фильтры для текущей сессии пользователя.
Глобальный фильтр: Бэкенд обязан внедрить эти исключения во все последующие запросы данных для этой страницы. Если группа или баер добавлены в исключения, их карты полностью игнорируются при любых расчетах на этом экране.
Распределение по окнам (30 дней / 7 дней):
Бэкенд фильтрует карты из базы. Если у карты не было операций более 30 дней — она идет в первый отчет. Если от 7 до 30 дней — во второй отчет.
Общая стата окна и 4 рабочие группы:
Система берет карты из нужного отчета неактивности, смотрит на валюту карты (USD/EUR в API E-Cards) и на тип пользователя в нашей системе (Баер/Фармер). На основе этого бэкенд распределяет карты по 4 категориям и считает общее количество для шапки.
Кнопка «Закрыть карты» (Логика двух попапов):
Попап 1: Бэкенд отдает массив карт для выбранной категории (например, Баеры — USD, неактивные > 30 дней).
Попап 2 (Удаление): Когда пользователь отметил галочками карты (или нажал «Выбрать все») и подтвердил удаление во втором попапе — фронтенд шлет массив ID карт на бэкенд. Бэкенд отправляет в API E-Cards команду на массовое закрытие этих карт.
Кнопка «Детальнее»:
Бэкенд делает запрос в БД, группируя неактивные карты этой категории по конкретным пользователям (владельцам).
Для каждого пользователя высчитывается: имя (Пользователь), сколько у него таких карт (Кол-во карт), и сумма текущих балансов этих карт (данные балансов берутся из кэша API E-Cards). Данные отдаются строго строкой на фронт.
Вкладка «Ретроспектива»
Дропдаун с выбором сервиса: Бэкенд отдает список доступных для интеграции сервисов (пока в списке будет только E-Cards).
Блок графиков (Заглушка): Бэкенд на этот запрос отправляет статичные фейковые (mock) данные по месяцам, чтобы фронтенд мог просто красиво отобразить заглушку графика на этапе MVP.
4. Страница «Транзакции»
Таблица платежей: Бэкенд делает запрос в API E-Cards к разделу истории транзакций (Transactions/Payload).
Календарь (Выбор периода): Дата "С" и "По" передаются как параметры (query params) в запрос к API E-Cards, чтобы не качать лишние данные, а получить транзакции только за указанный срок.
Текстовый поиск по ID: Бэкенд фильтрует полученный от API E-Cards массив транзакций по совпадению с введенным ID.
Кнопка «Выгрузить отчет» (CSV): Бэкенд берет отфильтрованный список транзакций из таблицы, конвертирует этот массив данных в текстовый формат CSV и отдаёт фронтенду в виде файла для автоматического скачивания в браузере.
История изменений
Backlog
Заплановано
Дмитрий техлид
Backlog