#!/bin/bash

# End-to-end test: Create complete hierarchy (pattern → dataset → location → cluster)
# Uses test.duckdb to preserve production data

DB_PATH="${1:-../db/test.duckdb}"
SERVER_PATH="../skraak_mcp"

echo "=== End-to-End Write Tools Test ===" >&2
echo "Database: $DB_PATH" >&2
echo "" >&2

{
  # Initialize
  echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
  sleep 0.2

  # Step 1: Create recording pattern
  echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"create_cyclic_recording_pattern","arguments":{"record_seconds":120,"sleep_seconds":300}}}'
  sleep 0.2

  # Step 2: Create dataset
  echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"create_dataset","arguments":{"name":"E2E Test Dataset","description":"End-to-end test","type":"test"}}}'
  sleep 0.2

  # Step 3: Create location (using dataset ID from step 2)
  # NOTE: You need to extract the dataset ID from step 2 and use it here
  echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"create_location","arguments":{"dataset_id":"REPLACE_WITH_DATASET_ID","name":"Test Location Wellington","latitude":-41.2865,"longitude":174.7762,"timezone_id":"Pacific/Auckland","description":"Test location"}}}'
  sleep 0.2

  # Step 4: Create cluster (using dataset ID and location ID)
  # NOTE: You need to extract both IDs and use them here
  echo '{"jsonrpc":"2.0","id":5,"method":"tools/call","params":{"name":"create_cluster","arguments":{"dataset_id":"REPLACE_WITH_DATASET_ID","location_id":"REPLACE_WITH_LOCATION_ID","name":"Test Cluster Alpha","sample_rate":48000,"cyclic_recording_pattern_id":"REPLACE_WITH_PATTERN_ID","description":"Test cluster"}}}'
  sleep 0.2

} | "$SERVER_PATH" "$DB_PATH" 2>/dev/null