#!/usr/bin/env bash
# List settled calls since a time, page by page, for reconciliation. Needs: curl, jq.
set -euo pipefail
BASE="${RELATIONSAI_API_BASE:-https://voice-api.relationsai.com/v1}"
SINCE="${SINCE:-$(date -u -v-1d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -d '1 day ago' +%Y-%m-%dT%H:%M:%SZ)}"
cursor=""
checked=0

while :; do
  page=$(curl -sS --fail-with-body --retry 3 -G "$BASE/calls" \
    --data-urlencode "limit=100" --data-urlencode "created_after=$SINCE" --data-urlencode "status=ended" \
    ${cursor:+--data-urlencode "cursor=$cursor"} \
    -H "Authorization: Bearer $RELATIONSAI_API_KEY") || { echo "$page" >&2; exit 1; }
  jq -r '.data[] | select(.settled) | "\(.id) record=\(.metadata.crm_record_id // "-") outcome=\(.outcome)"' <<<"$page"
  checked=$((checked + $(jq '.data | length' <<<"$page")))
  [ "$(jq -r '.has_more' <<<"$page")" = "true" ] || break
  cursor=$(jq -r '.next_cursor' <<<"$page")
done
echo "checked $checked ended calls since $SINCE"
