CREATE TABLE public.transaksi (
  id uuid primary key default gen_random_uuid(),
  jenis text not null check (jenis in ('pemasukan','pengeluaran')),
  nominal numeric(14,2) not null check (nominal >= 0),
  tanggal date not null default current_date,
  kategori text not null,
  catatan text,
  sumber text,
  tujuan text,
  bukti_path text,
  bukti_nama text,
  created_at timestamptz not null default now()
);

GRANT SELECT, INSERT, UPDATE, DELETE ON public.transaksi TO anon;
GRANT SELECT, INSERT, UPDATE, DELETE ON public.transaksi TO authenticated;
GRANT ALL ON public.transaksi TO service_role;

ALTER TABLE public.transaksi ENABLE ROW LEVEL SECURITY;

CREATE POLICY "Semua bisa lihat transaksi" ON public.transaksi FOR SELECT USING (true);
CREATE POLICY "Semua bisa tambah transaksi" ON public.transaksi FOR INSERT WITH CHECK (true);
CREATE POLICY "Semua bisa ubah transaksi" ON public.transaksi FOR UPDATE USING (true) WITH CHECK (true);
CREATE POLICY "Semua bisa hapus transaksi" ON public.transaksi FOR DELETE USING (true);

CREATE POLICY "Bukti bisa dibaca" ON storage.objects FOR SELECT USING (bucket_id = 'bukti');
CREATE POLICY "Bukti bisa diunggah" ON storage.objects FOR INSERT WITH CHECK (bucket_id = 'bukti');
CREATE POLICY "Bukti bisa dihapus" ON storage.objects FOR DELETE USING (bucket_id = 'bukti');

INSERT INTO public.transaksi (jenis, nominal, tanggal, kategori, catatan, sumber, tujuan) VALUES
('pemasukan', 8500000, current_date - 12, 'Gaji', 'Gaji bulanan', 'PT Sinar Abadi', 'BCA 1234'),
('pengeluaran', 1250000, current_date - 11, 'Sewa', 'Bayar kos bulan ini', 'BCA 1234', 'Pemilik Kos'),
('pengeluaran', 320000, current_date - 9, 'Belanja', 'Belanja bulanan', 'BCA 1234', 'Superindo'),
('pengeluaran', 75000, current_date - 8, 'Makan', 'Makan siang tim', 'GoPay', 'Warung Bu Tini'),
('pemasukan', 1500000, current_date - 6, 'Freelance', 'Desain logo klien', 'Klien Rani', 'BCA 1234'),
('pengeluaran', 150000, current_date - 5, 'Transportasi', 'Isi bensin', 'BCA 1234', 'SPBU 34'),
('pengeluaran', 99000, current_date - 4, 'Hiburan', 'Langganan streaming', 'Kartu Kredit', 'Netflix'),
('pengeluaran', 250000, current_date - 3, 'Transfer', 'Kirim ke adik', 'BCA 1234', 'BNI 5678'),
('pemasukan', 300000, current_date - 2, 'Lainnya', 'Uang kembalian patungan', 'Teman', 'GoPay'),
('pengeluaran', 45000, current_date - 1, 'Makan', 'Kopi dan roti', 'GoPay', 'Kopi Kenangan');