#!/usr/bin/env bash
# Pengujian integritas saat pemuatan massal: COPY menjalankan constraint
# yang sama seperti INSERT, dan satu baris buruk menggulung balik seluruh batch.
echo '==> batch 1: tiga baris sah lewat COPY'
psql -X -q <<'SQL' 2>&1
COPY barang (kode, nama, harga, kategori_id) FROM STDIN WITH (FORMAT csv);
BRG-006,Gula Pasir,14000,2
BRG-007,Teh Celup,8000,2
BRG-008,Susu Kental,18000,2
\.
SELECT count(*) AS jumlah_barang FROM barang;
SQL

echo '==> batch 2: satu baris harga negatif tersembunyi di antara baris sah'
if printf 'BRG-009,Kopi Bubuk,25000,2\nBRG-010,Keju Slice,-45000,2\nBRG-011,Madu Hutan,32000,2\n\\.\n' \
   | psql -X -c "COPY barang (kode, nama, harga, kategori_id) FROM STDIN WITH (FORMAT csv)" 2>&1; then
  echo 'batch 2 DITERIMA (tidak sesuai harapan)'
else
  echo 'batch 2 DITOLAK'
fi

psql -X -t -A -c "SELECT 'jumlah barang tetap: ' || count(*) || ' — tidak ada baris batch 2 yang bocor masuk' AS kesimpulan FROM barang;"
