#!/bin/bash
#
# Kompiliert den BlacklistBlock für den STARFACE Module Designer
#

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

echo "========================================"
echo " BlacklistBlock Kompilierung"
echo "========================================"
echo ""

# STARFACE JARs finden.
# Standard: ./libs/starface  -  Fallback: das mail2fax-Modul (gleiches STARFACE-API).
LIB_DIR="${STARFACE_LIBS:-libs/starface}"
if [ ! "$(ls -A "$LIB_DIR" 2>/dev/null)" ]; then
    ALT="../../mail2fax/v8-9-10/libs/starface"
    if [ "$(ls -A "$ALT" 2>/dev/null)" ]; then
        echo "Keine JARs in $LIB_DIR - verwende $ALT"
        LIB_DIR="$ALT"
    fi
fi

CLASSPATH=""
for jar in "$LIB_DIR"/*.jar; do
    if [ -f "$jar" ]; then
        CLASSPATH="$CLASSPATH:$jar"
    fi
done
CLASSPATH="${CLASSPATH:1}"

if [ -z "$CLASSPATH" ]; then
    echo "FEHLER: Keine STARFACE JARs gefunden."
    echo "Lege die STARFACE-API-JARs in $LIB_DIR ab oder setze STARFACE_LIBS=<pfad>."
    echo "(Die JARs liegen bereits im mail2fax-Modul unter v8-9-10/libs/starface/)"
    exit 1
fi

echo "Klassenpfad: $LIB_DIR"
echo "Kompiliere BlacklistBlock.java..."
javac -source 21 -target 21 \
    -cp "$CLASSPATH" \
    -proc:none \
    BlacklistBlock.java

if [ -f "BlacklistBlock.class" ]; then
    echo ""
    echo "========================================"
    echo " Erfolgreich!"
    echo "========================================"
    echo ""
    ls -lh BlacklistBlock.class
    echo ""
    echo "Nächste Schritte:"
    echo "1. STARFACE Admin -> Module -> Module Designer -> Neues Modul"
    echo "2. Unter 'Ressourcen' BlacklistBlock.class hochladen"
    echo "   (optional: Ansage-WAV-Datei für die Aktion ANNOUNCE)"
    echo "3. Eine Funktion 'Blacklist' anlegen und den Block hinzufügen"
    echo "4. GUI-Felder anlegen und mit den @InputVar-Feldern verknüpfen"
    echo "5. Modultyp 'Call-Processing', Aktivierung 'bei allen eingehenden Anrufen'"
    echo "Details siehe INSTALLATION.md"
    echo ""
else
    echo "FEHLER: Kompilierung fehlgeschlagen"
    exit 1
fi
