#!/bin/bash

# === Projekte hier pflegen: "Anzeigename" "skriptname" pro Zeile ===
PROJEKTE=(
  "Filter Müller"   "start-filtermueller"
  "Beckhuis"        "start-beckhuis"
  "Goldsilber"      "start-goldsilber"
  "Kochmesser"      "start-kochmesser"
  "Milku"           "start-milku"
  "Project-Starter" "start-project-starter"
  "MtoRagSystem"    "start-rag-system" 
  "Redmine Ki"      "start-redmine-ki"
  "Management"      "start-management"
  "Mmo"             "start-mmo"
  "KI Shop"         "start-ki-shop"
  "Guide"           "start-guides"
  "OnePager"        "start-one-pager"
)
# ===================================================================

declare -A PROJEKT_MAP
COMBO_VALUES=""
for ((i=0; i<${#PROJEKTE[@]}; i+=2)); do
  PROJEKT_MAP["${PROJEKTE[i]}"]="${PROJEKTE[i+1]}"
  COMBO_VALUES="${COMBO_VALUES}${PROJEKTE[i]}!"
done
COMBO_VALUES="${COMBO_VALUES%!}"

SEP=$'\x1f'
RESULT=$(yad --form \
  --title="Projekt starten" \
  --text="VS Code und alle Terminals werden geschlossen und neu gestartet." \
  --separator="$SEP" \
  --field="Projekt:CB" "$COMBO_VALUES" \
  --field="Ticket-Nr (optional)" "" \
  --field="Zusatzinfo an Claude:TXT" "" \
  --field="Firefox beenden:CHK" TRUE \
  --field="VS Code beenden:CHK" TRUE \
  --field="Terminals beenden:CHK" TRUE \
  --field="Obsidian beenden:CHK" TRUE \
  --width=600 --height=500 \
  --button="Abbrechen:1" --button="Starten:0")

[ -z "$RESULT" ] && exit 0

IFS="$SEP" read -r PROJEKT_NAME TICKET_NR INFO_ESCAPED \
  CHK_FF CHK_CODE CHK_TERM CHK_OBS _ <<< "$RESULT"
SKRIPT="${PROJEKT_MAP[$PROJEKT_NAME]}"

[ -z "$SKRIPT" ] && exit 0

if [ -n "$TICKET_NR" ]; then
  REDMINE_DATA=$(/home/arbeit/projects/project-starter/redmine-fetch "$TICKET_NR")
  echo "$REDMINE_DATA" > "/tmp/redmine-$TICKET_NR/data.json"
fi

INFO_FILE="/tmp/projekt-info.txt"
rm -f "$INFO_FILE"
if [ -n "$INFO_ESCAPED" ]; then
  printf '%b' "$INFO_ESCAPED" > "$INFO_FILE"
fi

KILL=()
[ "$CHK_FF"   = "TRUE" ] && KILL+=("firefox")
[ "$CHK_CODE" = "TRUE" ] && KILL+=("code")
[ "$CHK_TERM" = "TRUE" ] && KILL+=("gnome-terminal-server")
[ "$CHK_OBS"  = "TRUE" ] && KILL+=("obsidian")

/home/arbeit/projects/project-starter/reset-projekt "${KILL[@]}"

exec "/home/arbeit/projects/project-starter/$SKRIPT" "$TICKET_NR"
