--- name: V2 Profile Migration Status description: Staff profile sub-packages migrated from Data Connect to V2 REST API - entity mappings and patterns type: project --- ## Phase 2 Profile Migration (completed 2026-03-16) All staff profile read features migrated from Firebase Data Connect to V2 REST API. **Why:** Data Connect is being deprecated in favor of V2 REST API for all mobile backend access. **How to apply:** When working on any profile feature, use `ApiService.get(V2ApiEndpoints.staffXxx)` not Data Connect connectors. ### Entity Mappings (old -> V2) - `Staff` (old with name/avatar/totalShifts) -> `Staff` (V2 with fullName/metadata) + `StaffPersonalInfo` for profile form - `EmergencyContact` (old with name/phone/relationship enum) -> `EmergencyContact` (V2 with fullName/phone/relationshipType string) - `AttireItem` (removed) -> `AttireChecklist` (V2) - `StaffDocument` (removed) -> `ProfileDocument` (V2) - `StaffCertificate` (old with ComplianceType enum) -> `StaffCertificate` (V2 with certificateType string) - `TaxForm` (old with I9TaxForm/W4TaxForm subclasses) -> `TaxForm` (V2 with formType string + fields map) - `StaffBankAccount` (removed) -> `BankAccount` (V2) - `TimeCard` (removed) -> `TimeCardEntry` (V2 with minutesWorked/totalPayCents) - `PrivacySettings` (new V2 entity) ### Profile Main Page - Old: 7+ individual completion use cases from data_connect connectors - New: Single `ProfileRepositoryImpl.getProfileSections()` call returning `ProfileSectionStatus` - Stats fields (totalShifts, onTimeRate, etc.) no longer on V2 Staff entity -- hardcoded to 0 pending dashboard API ### DI Pattern - All repos inject `BaseApiService` from `CoreModule` (registered as `i.get()`) - Modules import `CoreModule()` instead of `DataConnectModule()`