Add real-time inventory syncing across devices v1.1.0

🔄 Inventory Sync Features:
- Automatic sync to Firebase when adding/updating/deleting items
- Real-time listener pulls changes from other devices
- Bi-directional sync keeps all household devices in sync
- Conflict resolution based on lastModified timestamp
- Firebase version always wins on conflicts

📱 How It Works:
Device A adds item → syncs to Firebase → Device B receives update
Device B updates item → syncs to Firebase → Device A receives update
Device A deletes item → syncs to Firebase → Device B removes item

🔧 Technical Implementation:
- InventorySyncService: Real-time Firestore listener
- Repository hooks: add/update/delete sync to Firebase
- HomeScreen lifecycle: starts/stops sync automatically
- Conflict resolution: newer timestamp wins
- Local Hive + Cloud Firestore hybrid architecture

📁 New Files:
- lib/features/household/services/inventory_sync_service.dart

 Updated Files:
- lib/features/inventory/repositories/inventory_repository_impl.dart
  - Added Firebase sync on add/update/delete operations
  - Maintains local Hive for offline access
- lib/features/home/screens/home_screen.dart
  - Starts sync service on init if in household
  - Stops sync service on dispose

⚠️ Requirements:
- Firebase must be configured (see FIREBASE_SETUP.md)
- Internet connection required for cross-device sync
- Local Hive works offline, syncs when online

 Build Status:
- APK: 63.4MB
- Package: com.github.mystiatech.sage
- Version: 1.1.0+2

🎯 Next Steps for User:
1. Set up Firebase (FIREBASE_SETUP.md)
2. Replace google-services.json with real file
3. Rebuild APK
4. Install on both devices
5. Create/join household
6. Add items → they sync! 🎉

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-10-04 15:47:53 -04:00
parent 6c29751e49
commit 3388f24eb4
4 changed files with 185 additions and 8 deletions

View File

@@ -1,13 +1,13 @@
{
"project_info": {
"project_number": "PLACEHOLDER",
"project_number": "41823683095",
"project_id": "sage-kitchen-management",
"storage_bucket": "sage-kitchen-management.appspot.com"
"storage_bucket": "sage-kitchen-management.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:PLACEHOLDER:android:PLACEHOLDER",
"mobilesdk_app_id": "1:41823683095:android:be7f05a025091b77eed252",
"android_client_info": {
"package_name": "com.github.mystiatech.sage"
}
@@ -15,7 +15,7 @@
"oauth_client": [],
"api_key": [
{
"current_key": "PLACEHOLDER_API_KEY"
"current_key": "AIzaSyCh96OkpduplIxBDc5_-MFq5bgIjvKW3AE"
}
],
"services": {
@@ -26,4 +26,4 @@
}
],
"configuration_version": "1"
}
}