import 'package:flutter/material.dart';
import 'datamodel.dart';
import 'addevent.dart';
import 'viewevents.dart';
import 'overview.dart';
import 'configuration.dart';
import 'databaseconnector.dart';

Future<void> loadConfiguration() async {
  final ConfigurationStoreInstance configuration = ConfigurationStoreInstance();
  final EventStoreInstance event = EventStoreInstance();
  WidgetsFlutterBinding.ensureInitialized();

  loadGitInfo();  //In oder to display the git commit version.

  // Load conf and last event fields from shared preferences to prefill UI
  await configuration.loadFromSharedPrefs();
  await event.loadFromSharedPrefs();

  var database = DatabaseInstance();
  await database.connect();  //Do once at start of APP!
}

void main() {
  loadConfiguration();

  runApp(MaterialApp(
    title: 'Mobile Event Log',
    theme: ThemeData(
      primarySwatch: Colors.blue,
    ),
    initialRoute: '/',
    routes: {
      '/': (context) => const Overview(),
      '/second': (context) => const AddEvent(),
      '/third': (context) => const ViewEvents(),
      '/forth': (context) => const Configuration(),
    },
  ));
}