// ===================================================================
// commands.js — COMANDOS UNIVERSAIS DE VOZ
// Projeto: HEP Flashcards
// Descrição: Define comandos de voz universais e normalização de entrada.
// ===================================================================

// --------------------------------------------------------
// 1) COMANDOS DEFINIDOS PELO USUÁRIO
// --------------------------------------------------------

// FALAR O CARD ATUAL
window.CMD_CURRENT = [
    "ok", "okay"
];

// VOLTAR (CARD ANTERIOR)
window.CMD_BACK = [
    "bach", "bach.", "bac", "bac.",  "bec", "bec.", "beck", "back",
    "마켓", "마켓.",      // Coreano (STT costuma retornar "market")
    "バック", "バック。"  // Japonês (STT retorna para "back")
];

// PRÓXIMO CARD
window.CMD_NEXT = [
    "next", "next.",
    "ネクスト"  // Japonês (som de "next")
];

// --------------------------------------------------------
// 2) NORMALIZAÇÃO UNIVERSAL (remove acentos, pontuação, símbolos)
// --------------------------------------------------------
window.normCmd = function (s){
    if (!s) return "";

    return s
        .toLowerCase()
        .normalize("NFD").replace(/[\u0300-\u036f]/g, "")   // remove acentos
        .replace(/[^\p{L}\p{N}]/gu, "")                     // remove símbolos
        .trim();
};


// --------------------------------------------------------
// 3) DETECTOR UNIVERSAL DE COMANDOS
// --------------------------------------------------------
window.detectVoiceCommand = function (rawText){

    const txt = normCmd(rawText);

    // CURRENT
    if (window.CMD_CURRENT.map(normCmd).includes(txt))
        return "current";

    // BACK
    if (window.CMD_BACK.map(normCmd).includes(txt))
        return "back";

    // NEXT
    if (window.CMD_NEXT.map(normCmd).includes(txt))
        return "next";

    return null; // nenhum comando
};



// --------------------------------------------------------
// 4) 3 BEEPS AO ACEITAR COMANDO
// --------------------------------------------------------
window.playCommandBeep = function(){
    const beep = new Audio("beep.mp3");

    beep.play();
    setTimeout(() => beep.play(), 150);
    setTimeout(() => beep.play(), 300);
};
