38457-vm/db/migrations/002_full_schema.sql
Flatlogic Bot 4e3818aac9 SiWarga
2026-02-15 18:49:39 +00:00

57 lines
2.0 KiB
SQL

-- Full schema for SiWarga
CREATE TABLE IF NOT EXISTS warga (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
blok VARCHAR(10) NOT NULL,
nomor_rumah VARCHAR(10) NOT NULL,
nik VARCHAR(20),
kk VARCHAR(20),
telepon VARCHAR(20),
status ENUM('aktif', 'non-aktif') DEFAULT 'aktif',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS pembayaran (
id INT AUTO_INCREMENT PRIMARY KEY,
warga_id INT NOT NULL,
jenis_iuran_id INT NOT NULL,
periode VARCHAR(7) NOT NULL, -- Format: YYYY-MM
jumlah DECIMAL(15, 2) NOT NULL,
tanggal_bayar DATE NOT NULL,
catatan TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (warga_id) REFERENCES warga(id) ON DELETE CASCADE,
FOREIGN KEY (jenis_iuran_id) REFERENCES jenis_iuran(id) ON DELETE CASCADE
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS pengeluaran (
id INT AUTO_INCREMENT PRIMARY KEY,
jenis_iuran_id INT, -- Bisa NULL jika dari kas umum
kategori VARCHAR(100) NOT NULL,
jumlah DECIMAL(15, 2) NOT NULL,
tanggal DATE NOT NULL,
keterangan TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (jenis_iuran_id) REFERENCES jenis_iuran(id) ON DELETE SET NULL
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS pengurus (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(255) NOT NULL,
jabatan VARCHAR(100) NOT NULL,
telepon VARCHAR(20),
urutan INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Sample data for demo
INSERT IGNORE INTO warga (nama, blok, nomor_rumah, nik, kk, telepon) VALUES
('Budi Santoso', 'A', '10', '3201010101010001', '3201010101010002', '081234567890'),
('Siti Aminah', 'A', '11', '3201010101010003', '3201010101010004', '081234567891'),
('Agus Wijaya', 'B', '05', '3201010101010005', '3201010101010006', '081234567892');
INSERT IGNORE INTO pengurus (nama, jabatan, urutan) VALUES
('Budi Santoso', 'Ketua RT', 1),
('Siti Aminah', 'Sekretaris', 2),
('Agus Wijaya', 'Bendahara', 3);