-- =====================================================
-- SEED DATA
-- =====================================================

-- Chart of Accounts (CoA) Standar Koperasi
INSERT INTO chart_of_accounts (code, name, type, normal_balance, description) VALUES
-- AKTIVA / ASSET
('1100', 'Kas', 'asset', 'debit', 'Kas tunai di tangan'),
('1101', 'Kas Kecil', 'asset', 'debit', 'Kas kecil operasional'),
('1110', 'Bank', 'asset', 'debit', 'Rekening bank koperasi'),
('1200', 'Piutang Pinjaman Anggota', 'asset', 'debit', 'Total pinjaman yang belum dilunasi'),
('1210', 'Piutang Bunga', 'asset', 'debit', 'Bunga pinjaman yang belum diterima'),
('1300', 'Persediaan', 'asset', 'debit', 'Stok barang WasSerba'),
('1400', 'Aset Tetap', 'asset', 'debit', 'Peralatan dan inventaris'),
('1500', 'Aset Lain-lain', 'asset', 'debit', 'Aset lainnya'),

-- KEWAJIBAN / LIABILITY
('2100', 'Simpanan Pokok', 'liability', 'credit', 'Simpanan pokok anggota'),
('2110', 'Simpanan Wajib', 'liability', 'credit', 'Simpanan wajib anggota'),
('2120', 'Simpanan Sukarela', 'liability', 'credit', 'Simpanan sukarela anggota'),
('2200', 'Dana PPOB Pending', 'liability', 'credit', 'Dana PPOB yang belum diproses'),
('2300', 'Hutang Lain-lain', 'liability', 'credit', 'Kewajiban lainnya'),

-- EKUITAS / EQUITY
('3100', 'Modal Cadangan', 'equity', 'credit', 'Cadangan modal koperasi'),
('3200', 'Modal Donasi', 'equity', 'credit', 'Modal dari donasi'),
('3300', 'SHU Tahun Lalu', 'equity', 'credit', 'Saldo SHU tahun sebelumnya'),
('3400', 'SHU Tahun Berjalan', 'equity', 'credit', 'SHU tahun ini'),

-- PENDAPATAN / REVENUE
('4100', 'Pendapatan Bunga Pinjaman', 'revenue', 'credit', 'Bunga dari pinjaman anggota'),
('4200', 'Pendapatan Biaya Admin', 'revenue', 'credit', 'Biaya administrasi pinjaman'),
('4300', 'Pendapatan PPOB', 'revenue', 'credit', 'Margin dari transaksi PPOB'),
('4400', 'Pendapatan Penjualan', 'revenue', 'credit', 'Penjualan barang WasSerba'),
('4500', 'Pendapatan Lain-lain', 'revenue', 'credit', 'Pendapatan operasional lain'),

-- BEBAN / EXPENSE
('5100', 'Beban Operasional', 'expense', 'debit', 'Biaya operasional kantor'),
('5110', 'Beban Gaji', 'expense', 'debit', 'Gaji karyawan koperasi'),
('5120', 'Beban Listrik & Air', 'expense', 'debit', 'Utilitas kantor'),
('5130', 'Beban Komunikasi', 'expense', 'debit', 'Telepon dan internet'),
('5200', 'Beban Penyusutan', 'expense', 'debit', 'Penyusutan aset tetap'),
('5300', 'Beban Lain-lain', 'expense', 'debit', 'Beban operasional lainnya')
ON CONFLICT (code) DO NOTHING;

-- Cooperative Profile
INSERT INTO cooperative_profile (name, tagline, address, email, phone) VALUES
('Koperasi Digital Nusantara', 'Bersama Tumbuh, Bersama Sejahtera', 'Jl. Gotong Royong No. 1, Jakarta', 'info@koperasidigital.id', '021-12345678')
ON CONFLICT DO NOTHING;

-- Default Savings Products
INSERT INTO savings_products (code, name, type, description, interest_rate, min_balance) VALUES
('SP-001', 'Simpanan Pokok', 'pokok', 'Simpanan wajib sekali bayar saat menjadi anggota', 0.0000, 0),
('SW-001', 'Simpanan Wajib', 'wajib', 'Simpanan rutin setiap bulan yang wajib dibayar anggota', 0.0025, 0),
('SS-001', 'Simpanan Sukarela', 'sukarela', 'Simpanan bebas yang bisa diambil kapan saja. Bisa digunakan sebagai dompet digital.', 0.0050, 0)
ON CONFLICT (code) DO NOTHING;

-- Default Loan Products
INSERT INTO loan_products (code, name, description, max_amount, max_tenor_months, interest_rate, admin_fee_rate, provision_fee_rate, calculation_type) VALUES
('KK-001', 'Kredit Konsumtif', 'Pinjaman untuk kebutuhan konsumtif anggota', 50000000, 36, 0.0150, 0.0050, 0.0050, 'flat'),
('KP-001', 'Kredit Produktif', 'Pinjaman untuk usaha dan investasi produktif', 200000000, 60, 0.0120, 0.0050, 0.0050, 'anuitas'),
('KDK-001', 'Kasbon Darurat', 'Pinjaman darurat jangka pendek', 10000000, 12, 0.0100, 0.0000, 0.0000, 'flat')
ON CONFLICT (code) DO NOTHING;

-- PPOB Categories
INSERT INTO ppob_categories (code, name, icon) VALUES
('PLN', 'Listrik PLN', 'zap'),
('PDAM', 'Air PDAM', 'droplets'),
('BPJS', 'BPJS Kesehatan', 'heart'),
('PULSA', 'Pulsa & Paket Data', 'smartphone'),
('EWALLET', 'Top-up E-Wallet', 'wallet'),
('INTERNET', 'Internet', 'wifi'),
('TV', 'TV Kabel / Streaming', 'tv'),
('PAJAK', 'Pajak & Retribusi', 'file-text')
ON CONFLICT (code) DO NOTHING;

-- PPOB Products (Mock)
INSERT INTO ppob_products (category_id, code, name, price, margin, provider) VALUES
((SELECT id FROM ppob_categories WHERE code='PLN'), 'PLN-20', 'Token Listrik Rp 20.000', 20000, 1500, 'PLN'),
((SELECT id FROM ppob_categories WHERE code='PLN'), 'PLN-50', 'Token Listrik Rp 50.000', 50000, 1500, 'PLN'),
((SELECT id FROM ppob_categories WHERE code='PLN'), 'PLN-100', 'Token Listrik Rp 100.000', 100000, 1500, 'PLN'),
((SELECT id FROM ppob_categories WHERE code='PLN'), 'PLN-200', 'Token Listrik Rp 200.000', 200000, 2000, 'PLN'),
((SELECT id FROM ppob_categories WHERE code='PDAM'), 'PDAM-TAG', 'Tagihan Air PDAM', NULL, 1000, 'PDAM'),
((SELECT id FROM ppob_categories WHERE code='BPJS'), 'BPJS-1', 'BPJS Kesehatan 1 Bulan', NULL, 1000, 'BPJS'),
((SELECT id FROM ppob_categories WHERE code='PULSA'), 'PULSA-5', 'Pulsa Rp 5.000', 5000, 500, 'ALL'),
((SELECT id FROM ppob_categories WHERE code='PULSA'), 'PULSA-10', 'Pulsa Rp 10.000', 10000, 500, 'ALL'),
((SELECT id FROM ppob_categories WHERE code='PULSA'), 'PULSA-25', 'Pulsa Rp 25.000', 25000, 750, 'ALL'),
((SELECT id FROM ppob_categories WHERE code='PULSA'), 'PULSA-50', 'Pulsa Rp 50.000', 50000, 1000, 'ALL'),
((SELECT id FROM ppob_categories WHERE code='PULSA'), 'DATA-1GB', 'Paket Data 1GB', 12000, 750, 'ALL'),
((SELECT id FROM ppob_categories WHERE code='PULSA'), 'DATA-3GB', 'Paket Data 3GB', 25000, 1000, 'ALL'),
((SELECT id FROM ppob_categories WHERE code='EWALLET'), 'GOPAY-TOP', 'Top-up GoPay', NULL, 1000, 'GOPAY'),
((SELECT id FROM ppob_categories WHERE code='EWALLET'), 'OVO-TOP', 'Top-up OVO', NULL, 1000, 'OVO'),
((SELECT id FROM ppob_categories WHERE code='EWALLET'), 'DANA-TOP', 'Top-up DANA', NULL, 1000, 'DANA'),
((SELECT id FROM ppob_categories WHERE code='INTERNET'), 'INDIEHOME-TAG', 'Tagihan IndiHome', NULL, 2000, 'INDIHOME')
ON CONFLICT (code) DO NOTHING;

-- Product Categories (WasSerba)
INSERT INTO product_categories (name, description) VALUES
('Sembako', 'Bahan pokok kebutuhan sehari-hari'),
('Elektronik', 'Peralatan elektronik rumah tangga'),
('Pakaian', 'Pakaian dan aksesoris'),
('Kesehatan', 'Obat-obatan dan alat kesehatan'),
('Perlengkapan Dapur', 'Peralatan memasak'),
('Minuman', 'Minuman kemasan dan segar')
ON CONFLICT DO NOTHING;

-- Community Fee Types
INSERT INTO community_fee_types (name, description, amount, frequency) VALUES
('Iuran Keamanan', 'Iuran keamanan lingkungan RT/RW', 50000, 'monthly'),
('Iuran Kebersihan', 'Iuran pengangkutan sampah', 30000, 'monthly'),
('Iuran IPL', 'Iuran Pengelolaan Lingkungan', 150000, 'monthly'),
('Iuran Sosial', 'Dana sosial kemasyarakatan', 25000, 'monthly')
ON CONFLICT DO NOTHING;

-- Super Admin User (password: Admin@123)
INSERT INTO users (email, password_hash, role, full_name, phone) VALUES
('admin@koperasi.id', '$2a$10$rXYZxxxxxxxxxxxxxxxxxuQJ5FQpjSSxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'super_admin', 'Administrator Koperasi', '081234567890')
ON CONFLICT (email) DO NOTHING;
