#!/bin/bash
pg_isready -q || { echo "server tidak siap"; exit 1; }

# Tahap 1: cadangkan database sumber dalam format custom.
# (Ukuran berkas sengaja tidak ditampilkan: format custom menyisipkan
# stempel waktu pembuatan sehingga ukurannya berubah tiap eksekusi.)
pg_dump -Fc "$PGDATABASE" -f backup_latihan.dump
pg_restore --list backup_latihan.dump | grep -c 'TABLE DATA'

# Tahap 2: siapkan database tujuan yang kosong.
psql -X -d postgres -v ON_ERROR_STOP=1 \
  -c "DROP DATABASE IF EXISTS pulih_latihan WITH (FORCE)" \
  -c "CREATE DATABASE pulih_latihan" > /dev/null

# Tahap 3: pulihkan seluruh isi archive.
pg_restore -d pulih_latihan backup_latihan.dump
echo "exit pg_restore: $?"

# Tahap 4: verifikasi -- jumlah dan isi harus identik dengan sumbernya.
psql -X -d pulih_latihan -c "SELECT (SELECT count(*) FROM produk) AS produk,
                                    (SELECT count(*) FROM pelanggan) AS pelanggan,
                                    (SELECT count(*) FROM pesanan) AS pesanan"
psql -X -d pulih_latihan -c "SELECT ps.id, pl.nama AS pelanggan, pr.nama AS produk, ps.qty
FROM pesanan ps
JOIN pelanggan pl ON pl.id = ps.pelanggan_id
JOIN produk pr ON pr.id = ps.produk_id
ORDER BY ps.id"
