SellerTool.PhoneApp

0
README.md

SellerTool Mobile App - Интеграция с API

Обзор

Мобильное приложение SellerTool.PhoneApp интегрировано с серверным API SellerTool для получения и отображения данных дашборда в реальном времени.

Реализованные функции

1. Авторизация

  • LoginPage - страница входа с полями email и пароль
  • JWT токен сохраняется в
    Preferences
    для автоматического входа
  • При запуске приложения проверяется валидность токена

2. API Endpoints

Приложение использует следующие эндпоинты из

DashboardController
:

EndpointМетодОписание
/api/auth/login
POSTАвторизация пользователя
/api/auth/verify
GETПроверка валидности токена
/api/dashboard/name
GETПолучение названия организации
/api/dashboard/balance
GETПолучение баланса
/api/dashboard/limits
GETПолучение лимитов товаров (Current/Total)
/api/dashboard/quarantinecount
GETКоличество товаров в карантине
/api/dashboard/withoutdiscountcount
GETКоличество товаров без скидки

3. Отображаемые данные на главной странице

Верхние карточки:

  • Товары - текущее количество и лимит (Current/Total)
  • Карантин - количество товаров в карантине
  • Без скидки - количество товаров без скидки
  • В корзине - (заглушка, требуется эндпоинт)

Дополнительные секции (требуют реализации эндпоинтов):

  • Взаимодействия: отзывы, вопросы, заявки на скидки
  • Сообщения: непрочитанные, новые за сегодня
  • Отправления FBS: ожидает сборки, сортировано, готово к выдаче, доставлено
  • Возвраты FBS: отменено, отменено клиентом, бракованные

Баланс:

  • Отображается в нижней части экрана

Структура проекта

SellerTool.PhoneApp/ ├── DTOs/ │ └── ApiDTOs.cs # DTO для запросов/ответов API ├── Models/ │ └── DashboardData.cs # Модели данных дашборда ├── Services/ │ ├── IApiService.cs # Интерфейс API сервиса │ └── ApiService.cs # Реализация API сервиса ├── ViewModels/ │ └── MainViewModel.cs # ViewModel главной страницы ├── Views/ │ ├── LoginPage.xaml # Страница входа │ └── LoginPage.xaml.cs ├── MainPage.xaml # Главная страница ├── MainPage.xaml.cs ├── AppShell.xaml # Навигация ├── App.xaml.cs # Точка входа с проверкой аутентификации └── MauiProgram.cs # Dependency Injection

Конфигурация

Базовый URL API

В файле

ApiService.cs
:

Использование

1. Запуск приложения

При запуске приложение автоматически проверяет наличие сохраненного JWT токена:

  • Если токен валиден → переход на MainPage
  • Если токена нет или он невалиден → переход на LoginPage

2. Авторизация

  1. Введите email и пароль
  2. Нажмите "Войти"
  3. При успешной авторизации токен сохраняется и происходит переход на главную страницу

3. Главная страница

  • Данные загружаются автоматически при открытии страницы
  • Используйте pull-to-refresh для обновления данных

Dependency Injection

В

MauiProgram.cs
настроены следующие зависимости:

Требуется реализовать

Для полной функциональности требуются дополнительные эндпоинты на сервере:

  1. Взаимодействия:

    • /api/dashboard/reviews
      - количество отзывов
    • /api/dashboard/questions
      - количество вопросов
    • /api/dashboard/discountrequests
      - заявки на скидки
  2. Сообщения:

    • /api/dashboard/unreadmessages
      - непрочитанные сообщения
    • /api/dashboard/newmessagestoday
      - новые сообщения за сегодня
  3. FBS Отправления:

    • /api/dashboard/fbs/awaitingassembly
    • /api/dashboard/fbs/sorted
    • /api/dashboard/fbs/readyforpickup
    • /api/dashboard/fbs/delivered
  4. FBS Возвраты:

    • /api/dashboard/fbs/cancelled
    • /api/dashboard/fbs/cancelledbyclient
    • /api/dashboard/fbs/defective
  5. Корзина:

    • /api/dashboard/inbasket
      - товары в корзине

Безопасность

  • JWT токен сохраняется в
    Preferences
    (безопасное хранилище MAUI)
  • Токен автоматически добавляется к каждому запросу через
    HttpClient.DefaultRequestHeaders.Authorization
  • При ошибке авторизации пользователь перенаправляется на страницу входа

Обработка ошибок

  • Все методы API оборачиваются в try-catch блоки
  • Ошибки логируются в консоль
  • При ошибках возвращаются значения по умолчанию
  • Пользователю показываются понятные сообщения об ошибках

Следующие шаги

  1. ✅ Интегрировать основные эндпоинты (balance, limits, quarantine, withoutdiscount)
  2. ⏳ Добавить эндпоинты для остальных секций (взаимодействия, сообщения, FBS)
  3. ⏳ Добавить страницу профиля
  4. ⏳ Добавить страницу настроек
  5. ⏳ Реализовать push-уведомления
  6. ⏳ Добавить графики и аналитику