#!/bin/bash
# Полный e2e-прогон бота avtero через feed_update-харнесс на mac mini.
# Использование:
#   run.sh "Toyota Altezza 2003 GXE10-0088644" "cb:veh:ok" "шкив генератора проверка9"
#   run.sh "KNAGC4A87DA232516" "масляный фильтр проверка9"
# Шаги: 1-й = идентификатор (VIN / «Марка Модель Год [+кузов]» / госномер);
#       далее — работы (текст) или cb:<callback_data> (нажатие кнопки).
# Фрейм/текст-авто требует cb:veh:ok перед работой (см. SKILL.md). Меняй текст
# работы каждый раз (кэш API 5 мин переживает рестарт).
set -euo pipefail
MINI="ssh -p 2222 cebers_mini@100.84.177.25"

if [ "$#" -lt 2 ]; then
  echo "usage: run.sh <идентификатор> [cb:veh:ok] <работа> [ещё работы/cb:...]" >&2
  exit 2
fi

# соберём аргументы в безопасную строку (каждый в одинарных кавычках)
ARGS=""
for a in "$@"; do
  esc=$(printf "%s" "$a" | sed "s/'/'\\\\''/g")
  ARGS="$ARGS '$esc'"
done

# healthz перед прогоном
code=$($MINI "curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8201/healthz" || echo 000)
if [ "$code" != "200" ]; then
  echo "API :8201 не 200 (=$code) — подбор не пройдёт. Кикстарт: launchctl kickstart -k gui/\$(id -u)/local.avtero" >&2
fi

$MINI "cd ~/Services/avtero && set -a; . ./.env 2>/dev/null; set +a; \
  BOT_DB_PATH=/tmp/avtero_bot_e2e.db PYTHONPATH=. ~/Services/avtero-venv/bin/python3 \
  -m bot.tests.e2e_harness $ARGS; rm -f ':memory:' 2>/dev/null || true"
