﻿/* global window, firebase */

const KFC_FIREBASE_RUNTIME_CONFIG = window.KFC_FIREBASE_CONFIG || {
  apiKey: 'AIzaSyDssh29oknSJrAicJHM22sXQOBkVQiqx9k',
  authDomain: 'ardh-kfc.firebaseapp.com',
  projectId: 'ardh-kfc',
  storageBucket: 'ardh-kfc.firebasestorage.app',
  messagingSenderId: '253199959698',
  appId: '1:253199959698:web:b0bd3079c6b06e1a45884b',
  measurementId: 'G-QYTEPL88WG',
};

let kitchenFirebaseApp = null;

function getKitchenFirebaseApp() {
  if (!window.firebase) throw new Error('Required platform services are not loaded.');
  if (!kitchenFirebaseApp) {
    kitchenFirebaseApp = firebase.apps.length
      ? firebase.app()
      : firebase.initializeApp(KFC_FIREBASE_RUNTIME_CONFIG);
  }
  return kitchenFirebaseApp;
}

function getKitchenDb() {
  if (!firebase.firestore) throw new Error('Inventory service is not loaded.');
  return firebase.firestore(getKitchenFirebaseApp());
}

function getKitchenAuth() {
  if (!firebase.auth) throw new Error('Login service is not loaded.');
  return firebase.auth(getKitchenFirebaseApp());
}

function usernameToEmail(usernameOrEmail) {
  const value = String(usernameOrEmail || '').trim().toLowerCase();
  if (!value) return '';
  if (value.includes('@')) return value;
  return `${value.replace(/[^a-z0-9._-]+/g, '')}@local.kitchen`;
}

Object.assign(window, {
  KFC_FIREBASE_RUNTIME_CONFIG,
  getKitchenFirebaseApp,
  getKitchenDb,
  getKitchenAuth,
  usernameToEmail,
});
