import { createApp } from 'vue';
import App from './App.vue';
import store from './store';
import router from './router';
import './assets/styles.scss';
import i18n from './i18n';
import { createVuetify } from 'vuetify';
import * as components from 'vuetify/components';
import * as directives from 'vuetify/directives';

function getBrowserLanguage() {
    // Prüfe zuerst die bevorzugte Sprache
    const browserLanguage = navigator.language || navigator.languages[0];
    
    // Deutschsprachige Länder: Deutschland, Österreich, Schweiz, Liechtenstein
    const germanSpeakingCountries = ['de', 'at', 'ch', 'li'];
    
    // Prüfe ob die Sprache mit 'de' beginnt (deutsch)
    if (browserLanguage.startsWith('de')) {
        return 'de';
    }
    
    // Prüfe alle verfügbaren Sprachen für deutschsprachige Länder
    const allLanguages = navigator.languages || [navigator.language];
    for (const lang of allLanguages) {
        // Prüfe auf de-XX Format (z.B. de-DE, de-AT, de-CH, de-LI)
        if (lang.startsWith('de-')) {
            const countryCode = lang.split('-')[1]?.toLowerCase();
            if (germanSpeakingCountries.includes(countryCode)) {
                return 'de';
            }
        }
        // Prüfe auch auf direkte Länderkennung (z.B. de_AT, de_CH)
        if (lang.startsWith('de_')) {
            const countryCode = lang.split('_')[1]?.toLowerCase();
            if (germanSpeakingCountries.includes(countryCode)) {
                return 'de';
            }
        }
    }
    
    // Fallback: Englisch für alle anderen Sprachen
    return 'en';
}

const vuetify = createVuetify({
    components,
    directives,
});

store.dispatch('setLanguage', getBrowserLanguage());

const app = createApp(App);

app.use(store);
app.use(router);
app.use(i18n);
app.use(vuetify);

app.mount('#app');
