Skip to content

Latest commit

 

History

History
59 lines (49 loc) · 2.83 KB

File metadata and controls

59 lines (49 loc) · 2.83 KB

TODO — LINKa Type: backend migration + dialog (iOS/Android, shared-first)

0. Контракт и окружение

  • Зафиксировать prod base URL: https://backend.linka.su
  • Зафиксировать auth flow: /v1/auth, /v1/auth/register, /v1/auth/reset, /v1/auth/refresh, /v1/auth/logout
  • Подтверждены форматы/лимиты: web (OGG Opus + WAV), Android (AAC/MP4 16k), лимит 8MB
  • Описаны требования к оффлайну и конфликтам (LWW по updated_at)

1. Shared Core (KMP)

  • Скелет модулей: api, sync, db
  • Общие модели (Category, Statement, UserState, Preferences, Dialog*)
  • Интерфейсы репозиториев (Auth/Categories/Statements/UserState/Dialog)
  • Ktor клиент + auth/refresh интерцептор
  • Secure storage expect/actual (Keystore/Keychain)
  • SQLDelight схема + миграции (стартовая)
  • Offline queue: типы операций + сериализация
  • Sync: flush при online + периодический (на старте + периодически в активном состоянии)
  • Realtime: long-poll /v1/changes (минимум)

2. Auth

  • AuthRepository: login/register/reset/refresh/logout
  • Сессия: access token in-memory, refresh token в secure storage
  • Авто refresh при 401 с одним retry

3. Банк фраз (Categories/Statements)

  • Repositories: CRUD + сортировка
  • Offline-first: локальный кеш, очередь операций (без явного резолва конфликтов)
  • Поддержка глобальных категорий (import)

4. UserState / Quickes / Preferences

  • get/put /v1/user/state
  • Нормализация quickes (6 слотов)
  • Синхронизация preferences через state

5. Dialog (текст + аудио)

  • DialogRepository: chats/messages/suggestions/apply/dismiss
  • Отправка текста и аудио multipart
  • Подсказки (pending, apply, dismiss)

6. Android интеграция

  • Заменить Firebase Auth/RTDB на shared
  • Подключить shared repos в UI/ViewModel
  • Экран диалога (чат-лист, сообщения, аудио)
  • Оставить Firebase Analytics

7. iOS интеграция

  • Удалить Firebase менеджеры
  • SwiftUI экраны на shared state
  • Диалог + запись аудио

8. Тесты

  • shared/commonTest: MockEngine + SQLDelight in-memory
  • Android unit (обновлены под shared)
  • Android instrumentation
  • iOS XCTest

9. Роллаут

  • Cohort/feature flag read source
  • Метрики синка/ошибок