import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:hive/hive.dart';
import '../models/food.dart';

final List<Food> emptyList = [];

Future<void> setupTodayBox()  async {
  final todayBoxExist = await Hive.boxExists(dotenv.env['TODAY_BOX']!);
  final todayBoxOpened = Hive.isBoxOpen(dotenv.env['TODAY_BOX']!);

  if (!todayBoxOpened && !todayBoxExist){
    Hive.openBox(dotenv.env['TODAY_BOX']!);
  }

  setupEatingKeys();
}

void setupEatingKeys() async {
  final todayBox = Hive.box(dotenv.env['TODAY_BOX']!);
  final breakfastExist = todayBox.containsKey(dotenv.env['BREAKFAST_FIELD']!);
  final lunchExist = todayBox.containsKey(dotenv.env['LUNCH_FIELD']!);
  final dinnerExist = todayBox.containsKey(dotenv.env['DINNER_FIELD']!);

  if (!breakfastExist){
    todayBox.put(dotenv.env['BREAKFAST_FIELD']!, emptyList);
  }

  if (!lunchExist){
    todayBox.put(dotenv.env['LUNCH_FIELD']!, emptyList);
  }

  if (!dinnerExist){
    todayBox.put(dotenv.env['DINNER_FIELD']!, emptyList);
  }

  setupDateField();
}

void setupDateField() async{
  final todayBox = Hive.box(dotenv.env['TODAY_BOX']!);
  final dateExist = todayBox.containsKey(dotenv.env['DATE_FIELD']!);

  if (!dateExist){
    todayBox.put(dotenv.env['DATE_FIELD']!, getFormatedTodayDate());
  }
}

void moveTodayBoxDataToYesterdayAndBefore() async{

}

String getFormatedTodayDate(){
  return DateTime.now().toString().substring(0,10);
}