#!/usr/bin/env bash
set -euo pipefail

action="${1:-status}"

case "$action" in
  start)
    podman start cpt-odoo-db >/dev/null
    for _ in $(seq 1 60); do
      podman exec cpt-odoo-db pg_isready -U odoo -d postgres >/dev/null 2>&1 && break
      sleep 2
    done
    podman start cpt-odoo-app >/dev/null
    for _ in $(seq 1 60); do
      curl -fsS -o /dev/null http://127.0.0.1:8069/web/login && break
      sleep 2
    done
    podman start cpt-odoo-gateway >/dev/null
    ;;
  stop)
    podman stop -t 30 cpt-odoo-gateway cpt-odoo-app cpt-odoo-db
    ;;
  restart)
    "$0" stop
    "$0" start
    ;;
  status)
    podman ps -a --filter 'name=cpt-odoo-' --format '{{.Names}}|{{.Status}}|{{.Ports}}'
    curl -sS -o /dev/null -w 'local_odoo_http=%{http_code}\n' http://127.0.0.1:8069/web/login || true
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}" >&2
    exit 2
    ;;
esac
