// sc-db-mode.js
import {  showToast } from './utilities.js';

/**
 * @private {boolean} _isProdDBModeActive - Interner Status, ob der prodDB-Modus aktiv ist.
 */
let _isProdDBModeActive = false;

/**
 * Eine Funktion, die den Status des ProdDB-Modus zurückgibt.
 * Dies ist die Funktion, die an andere Module übergeben wird, die den Status abfragen müssen.
 * @returns {boolean} True, wenn ProdDB-Modus aktiv ist, sonst false.
 */
export function getprodDBStatus() {
    return _isProdDBModeActive;
}

class Tz2TapDetector {
    constructor(triggerElement, onProdDBActivate) {
        this._tapCount = 0;
        this._lastTapTime = 0;
        const TAP_THRESHOLD_MS = 500;
        const REQUIRED_TAPS = 5;

        if (!triggerElement) {
            console.warn("Tz2TapDetector: Trigger-Element nicht gefunden. ProdDB Modus-Trigger wird nicht aktiv sein.");
            return;
        }

        triggerElement.addEventListener('click', () => {
            const now = Date.now();
            if (now - this._lastTapTime < TAP_THRESHOLD_MS) {
                this._tapCount++;
            } else {
                this._tapCount = 1;
            }
            this._lastTapTime = now;

            console.debug(`DEBUG: Tap Count: ${this._tapCount}`);

            if (this._tapCount >= REQUIRED_TAPS) {
                this._tapCount = 0; // Zähler zurücksetzen
                if (onProdDBActivate && typeof onProdDBActivate === 'function') {
                    onProdDBActivate(); // Callback auslösen
                }
            }
        });
        console.log("Tz2TapDetector initialisiert.");
    }
}

/**
 * Initialisiert den prodDB-Modus-Erkenner (Tz2TapDetector).
 * @param {HTMLElement} triggerElement - Das DOM-Element, das für die Taps verwendet wird (z.B. das 'tz2'-Div).
 * @param {function(boolean): void} [onProdDBChange] - Optionaler Callback, der aufgerufen wird, wenn sich der prodDB-Modus-Status ändert.
 */
export function setupProdDBDetector(triggerElement, onProdDBChange = null) {
    if (triggerElement) {
        new Tz2TapDetector(triggerElement, () => {
            _isProdDBModeActive = true;
            showToast("prodDB Modus", "prodDB Modus aktiviert!");
            console.log("prodDB Modus aktiviert durch Taps!");
            if (onProdDBChange) {
                onProdDBChange(true);
            }
        });
    } else {
        console.warn("prodDBMode: Trigger-Element für prodDB nicht gefunden.");
    }
}

 

