#!/usr/bin/env bash
# Massalaskuri Partner API — end-to-end in one script.
# Requires: bash, curl, jq.  Usage:  API_KEY=mlk_xxx ./quickstart.sh [path/to/plan.pdf]
set -euo pipefail

BASE="${BASE:-https://api.massalaskuri.com}"
KEY="${API_KEY:?Set API_KEY=mlk_... first}"
PDF="${1:-sample-plan.pdf}"
[ -f "$PDF" ] || { echo "Downloading sample PDF…"; curl -fsSL -o "$PDF" "$BASE/examples/sample-plan.pdf"; }
SIZE=$(wc -c < "$PDF")

echo "1) init"
INIT=$(curl -fsS -X POST "$BASE/v1/jobs/init" -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d "{\"file_name\":\"$(basename "$PDF")\",\"mime_type\":\"application/pdf\",\"size\":$SIZE,\"external_ref\":\"quickstart\"}")
JOB=$(echo "$INIT" | jq -r .job_id)
URL=$(echo "$INIT" | jq -r .upload.url)
echo "   job_id=$JOB"

echo "2) upload"
curl -fsS -X PUT "$URL" -H "Content-Type: application/pdf" --data-binary @"$PDF" >/dev/null

echo "3) start"
curl -fsS -X POST "$BASE/v1/jobs/$JOB/start" -H "X-API-Key: $KEY" | jq -c .

echo "4) poll"
while :; do
  S=$(curl -fsS "$BASE/v1/jobs/$JOB" -H "X-API-Key: $KEY")
  ST=$(echo "$S" | jq -r .status)
  echo "   status=$ST"
  [ "$ST" = done ] && break
  [ "$ST" = failed ] && { echo "$S" | jq .error; exit 1; }
  sleep 4
done

echo "5) results (take-off summary)"
echo "$S" | jq '{total: .summary.total_detections, by_symbol: .summary.by_symbol}'
echo "   per-page detections: $BASE/v1/jobs/$JOB/pages/0/detections"
