name: client_app
description: Halo Bestie - Client App

publish_to: 'none'
version: 1.0.0+1

environment:
  sdk: '>=3.0.0 <4.0.0'

dependencies:
  flutter:
    sdk: flutter

  # Firebase (Messaging only — Auth dropped in Phase 3.4, self-managed JWT now)
  firebase_core: ^3.12.1
  firebase_messaging: ^15.2.5

  # Social login (kept — buttons gated server-side via /api/shared/auth-providers
  # until the corresponding OAuth env vars are set on the backend)
  google_sign_in: ^6.2.1
  sign_in_with_apple: ^6.1.0

  # HTTP & WebSocket
  dio: ^5.4.3
  web_socket_channel: ^3.0.3

  # State management
  flutter_riverpod: ^2.6.1
  hooks_riverpod: ^2.6.1
  riverpod_annotation: ^2.6.1
  flutter_hooks: ^0.20.5

  # Storage
  shared_preferences: ^2.2.3      # onboarding flag, non-sensitive
  flutter_secure_storage: ^9.2.2  # refresh token (encrypted)

  # Navigation
  go_router: ^13.2.1
  flutter_local_notifications: ^21.0.0

  # QR code rendering — used by the waiting-payment screen as a placeholder
  # (mock mode encodes payment_session_id; real QR will come from Xendit later).
  qr_flutter: ^4.1.0

  # OS notification permission — used by the post-payment notif gate
  # (Phase 4 Stage 4) and the home banner.
  permission_handler: ^11.3.1

  # External URL launching — Tanya Admin sheet (Phase 4 Stage 8) opens
  # WhatsApp / Telegram via https deeplinks from CC-config-driven handles.
  url_launcher: ^6.3.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^3.0.0
  riverpod_generator: ^2.6.2
  build_runner: ^2.4.13
  custom_lint: ^0.7.0
  riverpod_lint: ^2.6.2
  # In-repo lint rules — lives at the repo root so client_app + mitra_app
  # share the same set. Adds `no_ref_in_dispose` and any future repo-wide
  # guardrails. See halo_lints/lib/halo_lints.dart.
  halo_lints:
    path: ../halo_lints

flutter:
  uses-material-design: true
  assets:
    - assets/images/
    - assets/images/splash/
    - assets/fonts/

  fonts:
    - family: BricolageGrotesque
      fonts:
        - asset: assets/fonts/BricolageGrotesque-Variable.ttf
    - family: Poppins
      fonts:
        - asset: assets/fonts/Poppins-Regular.ttf
        - asset: assets/fonts/Poppins-Medium.ttf
          weight: 500
        - asset: assets/fonts/Poppins-SemiBold.ttf
          weight: 600
        - asset: assets/fonts/Poppins-Bold.ttf
          weight: 700
    - family: JetBrainsMono
      fonts:
        - asset: assets/fonts/JetBrainsMono-Variable.ttf
