Files
Onsol-GO/lib/core/energy_manager.dart
2026-04-23 23:58:59 -05:00

31 lines
950 B
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
class VigorManager {
static const int maxVigor = 3;
static const int rechargeHours = 3;
static Future<int> getAvailableVigor(Map<String, dynamic> userData) async {
int currentVigor = userData['vigor'] ?? maxVigor;
Timestamp? lastVigorRefill = userData['lastVigorRefill'];
if (lastVigorRefill == null) return currentVigor;
// Calculate time since last refill
DateTime lastTime = lastVigorRefill.toDate();
Duration diff = DateTime.now().difference(lastTime);
// If more than 3 hours have passed, full refill
if (diff.inHours >= rechargeHours) {
return maxVigor;
}
return currentVigor;
}
static Future<void> consumeVigor(String uid, int currentVigor) async {
await FirebaseFirestore.instance.collection('users').doc(uid).update({
'vigor': currentVigor - 1,
'lastVigorRefill': FieldValue.serverTimestamp(),
});
}
}