Initial commit: Aplikasi WebGIS PHP Native
This commit is contained in:
+122
@@ -0,0 +1,122 @@
|
||||
-- Create Database
|
||||
CREATE DATABASE IF NOT EXISTS `webgis_poverty` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE `webgis_poverty`;
|
||||
|
||||
-- Table: users
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`nama` VARCHAR(255) NOT NULL,
|
||||
`email` VARCHAR(255) NOT NULL UNIQUE,
|
||||
`password_hash` VARCHAR(255) NOT NULL,
|
||||
`role` ENUM('super_admin', 'admin_daerah', 'pengurus_ri', 'donatur', 'masyarakat') NOT NULL DEFAULT 'masyarakat',
|
||||
`wilayah` VARCHAR(255) DEFAULT NULL,
|
||||
`is_active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: rumah_ibadah
|
||||
CREATE TABLE IF NOT EXISTS `rumah_ibadah` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`nama` VARCHAR(255) NOT NULL,
|
||||
`tipe` VARCHAR(100) NOT NULL,
|
||||
`agama` VARCHAR(100) DEFAULT NULL,
|
||||
`alamat` TEXT,
|
||||
`kelurahan` VARCHAR(100) DEFAULT NULL,
|
||||
`kecamatan` VARCHAR(100) DEFAULT NULL,
|
||||
`lat` DOUBLE NOT NULL,
|
||||
`lng` DOUBLE NOT NULL,
|
||||
`radius` DOUBLE DEFAULT 500,
|
||||
`kapasitas` INT DEFAULT 10,
|
||||
`pengurus_id` INT DEFAULT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`pengurus_id`) REFERENCES `users`(`id`) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: rumah_tangga
|
||||
CREATE TABLE IF NOT EXISTS `rumah_tangga` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`nama_kk` VARCHAR(255) NOT NULL,
|
||||
`alamat` TEXT,
|
||||
`kelurahan` VARCHAR(100) DEFAULT NULL,
|
||||
`kecamatan` VARCHAR(100) DEFAULT NULL,
|
||||
`lat` DOUBLE NOT NULL,
|
||||
`lng` DOUBLE NOT NULL,
|
||||
`anggota` INT DEFAULT 1,
|
||||
`penghasilan` VARCHAR(255) DEFAULT NULL,
|
||||
`kondisi` VARCHAR(255) DEFAULT NULL,
|
||||
`kebutuhan` TEXT,
|
||||
`catatan` TEXT,
|
||||
`dilaporkan_oleh` INT DEFAULT NULL,
|
||||
`status` ENUM('pending', 'verified', 'rejected') DEFAULT 'pending',
|
||||
`confirmations` INT DEFAULT 0,
|
||||
`assigned_ri` INT DEFAULT NULL,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`dilaporkan_oleh`) REFERENCES `users`(`id`) ON DELETE SET NULL,
|
||||
FOREIGN KEY (`assigned_ri`) REFERENCES `rumah_ibadah`(`id`) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: tanggungan
|
||||
CREATE TABLE IF NOT EXISTS `tanggungan` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`rumah_tangga_id` INT NOT NULL,
|
||||
`nama` VARCHAR(255) NOT NULL,
|
||||
`tanggal_lahir` DATE NOT NULL,
|
||||
`jenis_kelamin` ENUM('L', 'P') DEFAULT 'L',
|
||||
`hubungan` VARCHAR(100) DEFAULT NULL,
|
||||
`pendidikan` VARCHAR(100) DEFAULT NULL,
|
||||
`pekerjaan` VARCHAR(100) DEFAULT NULL,
|
||||
FOREIGN KEY (`rumah_tangga_id`) REFERENCES `rumah_tangga`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: verifikasi
|
||||
CREATE TABLE IF NOT EXISTS `verifikasi` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`rumah_tangga_id` INT NOT NULL,
|
||||
`user_id` INT NOT NULL,
|
||||
`aksi` ENUM('confirm', 'reject', 'admin_approve') NOT NULL,
|
||||
`alasan` TEXT,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`rumah_tangga_id`) REFERENCES `rumah_tangga`(`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: program_bantuan
|
||||
CREATE TABLE IF NOT EXISTS `program_bantuan` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`ri_id` INT NOT NULL,
|
||||
`nama` VARCHAR(255) NOT NULL,
|
||||
`tipe` VARCHAR(100) DEFAULT 'Pangan',
|
||||
`deskripsi` TEXT,
|
||||
`target` INT DEFAULT 10,
|
||||
`tanggal` DATE NOT NULL,
|
||||
`status` VARCHAR(50) DEFAULT 'Aktif',
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`ri_id`) REFERENCES `rumah_ibadah`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: donasi
|
||||
CREATE TABLE IF NOT EXISTS `donasi` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`donatur_id` INT NOT NULL,
|
||||
`ri_id` INT NOT NULL,
|
||||
`jumlah` DECIMAL(15, 2) NOT NULL DEFAULT 0.00,
|
||||
`keterangan` TEXT,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (`donatur_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
|
||||
FOREIGN KEY (`ri_id`) REFERENCES `rumah_ibadah`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Table: notifikasi
|
||||
CREATE TABLE IF NOT EXISTS `notifikasi` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`pesan` TEXT NOT NULL,
|
||||
`tipe` VARCHAR(50) DEFAULT 'info',
|
||||
`sudah_baca` TINYINT(1) DEFAULT 0,
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Insert default Super Admin (Password: admin123 -> SHA256)
|
||||
-- Hash for 'admin123' is 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
|
||||
INSERT INTO `users` (`nama`, `email`, `password_hash`, `role`, `wilayah`, `is_active`)
|
||||
VALUES ('Super Admin', 'admin@webgis.com', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', 'super_admin', 'Semua', 1)
|
||||
ON DUPLICATE KEY UPDATE `id`=`id`;
|
||||
Reference in New Issue
Block a user