Add OrderTokens and shared order components, restore filter bar pills, list loading states, and role-specific card layouts with deposit badge mapping tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
Establish AppColor/AppFont/AppSpacing/AppRadius theming, shared components, and design-system docs so pilot screens align with Android while keeping iOS-native spacing and touch targets.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace per-VC activity indicators with a ref-counted GlobalLoadingManager, and resolve duplicate show/hide calls on Profile, Statistics, and Home tabs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Load role-permission on first visit to drive menus, role-based layout, store card, and location reporting with account-scoped persistence and unit tests.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align display name, icon, and launch screen with suixinkan_ios_new, and tolerate nested sale_user and empty travel objects in listv2 responses.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add role-based order/deposit lists, AVFoundation QR scanning, verify dialogs, and ViewModel tests so photographers, scenic admins, and store admins match Android behavior.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add role-based analyse APIs, summary/daily UI with date range sheet, and flexible parsing for string refund amounts from the backend.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use content-driven card height with safe area insets so the form no longer stretches to the screen bottom.
Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce APIClient/AuthAPI, complete login with multi-account selection, and polish the login card UI with shadow and keyboard dismiss.
Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate SnapKit and Kingfisher, add BaseViewController and NotificationName, and streamline AGENTS.md with Android-aligned conventions.
Co-authored-by: Cursor <cursoragent@cursor.com>