#!/usr/bin/env bash
# Lista profili rzucania palenia
# Użycie: rzucanie-list [URL]
# Zmienne środowiskowe: HADASH_USER, HADASH_PASS, HADASH_URL

set -euo pipefail

URL="${1:-${HADASH_URL:-http://localhost:9081}}"
USER="${HADASH_USER:-}"
PASS="${HADASH_PASS:-}"
COOKIE=$(mktemp /tmp/hadash-cookie.XXXXXX)
trap 'rm -f "$COOKIE"' EXIT

if [[ -z "$USER" ]]; then
  read -rp "Login: " USER
fi
if [[ -z "$PASS" ]]; then
  read -rsp "Hasło: " PASS; echo
fi

# Login (-d implikuje POST; -L śledzi redirect do / już jako GET)
HTTP=$(curl -s -o /dev/null -w "%{http_code}" -L -c "$COOKIE" -b "$COOKIE" \
  "$URL/login" \
  -d "username=${USER}&password=${PASS}")

if [[ "$HTTP" != "200" ]]; then
  echo "Błąd logowania (HTTP $HTTP)" >&2
  exit 1
fi

# Pobierz profile
curl -s -b "$COOKIE" "$URL/api/rzucanie/profiles" | python3 -c "
import sys, json
from datetime import datetime, timezone

profiles = json.load(sys.stdin)
if 'error' in profiles:
    print('Błąd:', profiles['error'])
    sys.exit(1)

if not profiles:
    print('Brak profili.')
    sys.exit(0)

print(f'  {len(profiles)} profil(e/ów):')
print()
print(f'  {\"TOKEN\":<14}  {\"IMIĘ\":<14}  {\"RZUCIŁ/A\":<17}  {\"REJESTRACJA\":<17}  {\"DZIENNIE\":>9}  {\"CENA\":>8}')
print('  ' + '-'*90)
for p in profiles:
    name    = (p.get('name') or '(brak)') [:14]
    token   = p['token'][:14]
    rzucone = p['rzucone'][:16].replace('T', ' ')
    created = p['created_at'][:16].replace('T', ' ')
    dziennie = f\"{p['dziennie']:.0f} szt.\"
    cena    = f\"{p['cena']:.2f} zł\"
    print(f'  {token:<14}  {name:<14}  {rzucone:<17}  {created:<17}  {dziennie:>9}  {cena:>8}')
"
