import 'package:comwell_key_app/domain/models/housekeeping.dart';
import 'package:comwell_key_app/services/api.dart';
import 'package:comwell_key_app/utils/locator.dart';
import 'package:comwell_key_app/utils/secure_storage.dart';
class HouseKeepingRepository {
final secureStorage = locator<SecureStorage>();
final api = Api();
Future<void> saveHouseKeepingOrdered(Housekeeping housekeeping) async {
await secureStorage.write(
houseKeepingLastOrderedKey(housekeeping.roomNumber),
DateTime.now().millisecondsSinceEpoch.toString());
await api.orderHousekeeping(housekeeping);
}
Future<bool> isHousesKeepingOrdered(String roomNumber) async {
final lastOrderedValue = await secureStorage
.read(HouseKeepingRepository.houseKeepingLastOrderedKey(roomNumber));
if (lastOrderedValue != null) {
final lastOrdered =
DateTime.fromMillisecondsSinceEpoch(int.parse(lastOrderedValue))
.copyWith(hour: 0, minute: 0, second: 0);
final isToday = DateTime.now().copyWith(hour: 0, minute: 0, second: 0);
final isNextDay = DateTime.now().isAfter(isToday) &&
DateTime.now().isAfter(lastOrdered);
final timeOfToday = DateTime.now().hour;
final isHouseKeepingAllowed = isNextDay &&
timeOfToday > 2; // If it's after 3am on the day after the order
return isHouseKeepingAllowed;
}
return false;
}
static String houseKeepingLastOrderedKey(String roomNumber) =>
'housekeeping_last_ordered_$roomNumber';
}