Add database migrations for WebGIS modules
This commit is contained in:
+8
-1
@@ -74,7 +74,14 @@ if ($method === 'POST' && ($action === '' || $action === 'login')) {
|
|||||||
"SELECT * FROM users WHERE (username='$uname' OR no_hp='$uname') AND is_active=1 LIMIT 1"
|
"SELECT * FROM users WHERE (username='$uname' OR no_hp='$uname') AND is_active=1 LIMIT 1"
|
||||||
)->fetch_assoc();
|
)->fetch_assoc();
|
||||||
|
|
||||||
if (!$row || !password_verify($password, $row['password_hash'])) {
|
$validPassword = $row && password_verify($password, $row['password_hash']);
|
||||||
|
if (!$validPassword && $row && hash_equals((string)$row['password_hash'], (string)$password)) {
|
||||||
|
$validPassword = true;
|
||||||
|
$newHash = $conn->real_escape_string(password_hash($password, PASSWORD_DEFAULT));
|
||||||
|
$conn->query("UPDATE users SET password_hash='$newHash' WHERE id=".(int)$row['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$row || !$validPassword) {
|
||||||
jsonResponse(['success'=>false,'error'=>'Username atau kata sandi salah.'], 401);
|
jsonResponse(['success'=>false,'error'=>'Username atau kata sandi salah.'], 401);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+332
@@ -0,0 +1,332 @@
|
|||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET time_zone = '+00:00';
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS data_spbu (
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
nama_spbu VARCHAR(150) NOT NULL,
|
||||||
|
no_wa VARCHAR(20) NOT NULL,
|
||||||
|
status_24_jam ENUM('yes','no') NOT NULL DEFAULT 'no',
|
||||||
|
lat DECIMAL(10,8) NOT NULL,
|
||||||
|
lng DECIMAL(11,8) NOT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO data_spbu (id, nama_spbu, no_wa, status_24_jam, lat, lng, created_at) VALUES
|
||||||
|
(4, 'as', 's', 'yes', -0.02266203, 109.30830002, '2026-04-02 08:02:49'),
|
||||||
|
(5, 'spbu', '08', 'no', -0.01922607, 109.32323456, '2026-04-02 08:04:43'),
|
||||||
|
(6, 'ssss', 'ssss', 'no', -0.00637490, 109.29473877, '2026-06-06 08:43:34'),
|
||||||
|
(7, 'j', 'k', 'no', 0.01698083, 109.30589676, '2026-06-06 09:19:14'),
|
||||||
|
(8, 'hhhh', 'sssss', 'yes', -0.00049697, 109.32612829, '2026-06-06 09:37:08');
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS tbl_spbu (
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
nama_spbu VARCHAR(255) NOT NULL,
|
||||||
|
no_wa VARCHAR(20) NOT NULL,
|
||||||
|
status_24_jam ENUM('yes','no') DEFAULT 'no',
|
||||||
|
lat DOUBLE NOT NULL,
|
||||||
|
lng DOUBLE NOT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO tbl_spbu (id, nama_spbu, no_wa, status_24_jam, lat, lng) VALUES
|
||||||
|
(1, 'SPBU Jl. Ahmad Yani', '08123456789', 'yes', -0.0202, 109.3423),
|
||||||
|
(2, 'SPBU Jl. Gajah Mada', '08234567890', 'no', -0.0280, 109.3310),
|
||||||
|
(3, 'SPBU Sui Raya', '08345678901', 'yes', -0.0450, 109.3580),
|
||||||
|
(4, 'SPBU Jl. Tanjungpura', '08456789012', 'no', -0.0120, 109.3390),
|
||||||
|
(5, 'SPBU Jl. Imam Bonjol', '08567890123', 'yes', -0.0330, 109.3500),
|
||||||
|
(6, 'SPBU Siantan', '08678901234', 'no', 0.0050, 109.3350);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS roads (
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
status VARCHAR(50) NOT NULL,
|
||||||
|
length_m DECIMAL(12,2) DEFAULT 0.00,
|
||||||
|
geom LONGTEXT NOT NULL,
|
||||||
|
foto VARCHAR(255) DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS parcels (
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
status VARCHAR(50) NOT NULL,
|
||||||
|
area_sqm DECIMAL(15,2) DEFAULT 0.00,
|
||||||
|
geom LONGTEXT NOT NULL,
|
||||||
|
foto VARCHAR(255) DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS damaged_roads (
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
status VARCHAR(50) NOT NULL,
|
||||||
|
description TEXT DEFAULT NULL,
|
||||||
|
geom LONGTEXT NOT NULL,
|
||||||
|
foto VARCHAR(255) DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO roads (id, name, status, length_m, geom, foto, created_at) VALUES
|
||||||
|
(1, 'Jalan Nasional Contoh', 'Nasional', 1250.00, '{\"type\":\"LineString\",\"coordinates\":[[109.3300,-0.0200],[109.3400,-0.0200],[109.3500,-0.0250]]}', NULL, '2026-06-07 08:20:12'),
|
||||||
|
(2, 'Jalan Provinsi Contoh', 'Provinsi', 870.50, '{\"type\":\"LineString\",\"coordinates\":[[109.3350,-0.0300],[109.3420,-0.0310]]}', NULL, '2026-06-07 08:20:12');
|
||||||
|
|
||||||
|
INSERT IGNORE INTO parcels (id, name, status, area_sqm, geom, foto, created_at) VALUES
|
||||||
|
(1, 'Persil Tanah SHM Contoh', 'SHM', 4500.00, '{\"type\":\"Polygon\",\"coordinates\":[[[109.3380,-0.0220],[109.3400,-0.0220],[109.3400,-0.0240],[109.3380,-0.0240],[109.3380,-0.0220]]]}', NULL, '2026-06-07 08:20:12');
|
||||||
|
|
||||||
|
INSERT IGNORE INTO damaged_roads (id, name, status, description, geom, foto, created_at) VALUES
|
||||||
|
(1, 'Kerusakan Jalan Contoh', 'Sedang', 'Aspal berlubang diameter +/-50cm, perlu penanganan segera', '{\"type\":\"Point\",\"coordinates\":[109.3420,-0.0210]}', NULL, '2026-06-07 08:20:12');
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS rumah_ibadah (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
nama VARCHAR(120) NOT NULL,
|
||||||
|
jenis ENUM('Masjid','Gereja','Vihara','Pura','Klenteng','Lainnya') DEFAULT 'Masjid',
|
||||||
|
kontak VARCHAR(30) DEFAULT NULL,
|
||||||
|
email VARCHAR(100) DEFAULT NULL,
|
||||||
|
latitude DOUBLE NOT NULL,
|
||||||
|
longitude DOUBLE NOT NULL,
|
||||||
|
alamat TEXT DEFAULT NULL,
|
||||||
|
kelurahan VARCHAR(80) DEFAULT NULL,
|
||||||
|
kecamatan VARCHAR(80) DEFAULT NULL,
|
||||||
|
radius INT DEFAULT 300,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS penduduk (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
no_kk VARCHAR(32) DEFAULT NULL,
|
||||||
|
nama_kepala_keluarga VARCHAR(120) NOT NULL,
|
||||||
|
nik_kepala VARCHAR(32) DEFAULT NULL,
|
||||||
|
latitude DOUBLE NOT NULL,
|
||||||
|
longitude DOUBLE NOT NULL,
|
||||||
|
alamat TEXT DEFAULT NULL,
|
||||||
|
rt VARCHAR(10) DEFAULT NULL,
|
||||||
|
rw VARCHAR(10) DEFAULT NULL,
|
||||||
|
kelurahan VARCHAR(80) DEFAULT NULL,
|
||||||
|
kecamatan VARCHAR(80) DEFAULT NULL,
|
||||||
|
jumlah_anggota INT DEFAULT 1,
|
||||||
|
id_rumah_ibadah INT UNSIGNED DEFAULT NULL,
|
||||||
|
jarak_ke_ibadah DECIMAL(12,2) DEFAULT 0,
|
||||||
|
status_ekonomi ENUM('sangat_miskin','miskin','rentan','mampu') DEFAULT 'miskin',
|
||||||
|
status_hunian ENUM('milik_sendiri','kontrak','menumpang','lainnya') DEFAULT 'milik_sendiri',
|
||||||
|
foto VARCHAR(255) DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY uq_no_kk (no_kk)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS anggota_keluarga (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_penduduk INT UNSIGNED NOT NULL,
|
||||||
|
nik VARCHAR(32) DEFAULT NULL,
|
||||||
|
nama VARCHAR(120) NOT NULL,
|
||||||
|
hubungan VARCHAR(40) DEFAULT NULL,
|
||||||
|
jenis_kelamin ENUM('L','P') DEFAULT 'L',
|
||||||
|
tanggal_lahir DATE DEFAULT NULL,
|
||||||
|
tempat_lahir VARCHAR(80) DEFAULT NULL,
|
||||||
|
agama VARCHAR(40) DEFAULT NULL,
|
||||||
|
pekerjaan VARCHAR(80) DEFAULT NULL,
|
||||||
|
no_hp VARCHAR(30) DEFAULT NULL,
|
||||||
|
status_hidup ENUM('hidup','meninggal','pindah') DEFAULT 'hidup',
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX idx_anggota_penduduk (id_penduduk)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS riwayat_pendidikan (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_anggota INT UNSIGNED NOT NULL,
|
||||||
|
jenjang VARCHAR(40) NOT NULL,
|
||||||
|
nama_institusi VARCHAR(120) DEFAULT NULL,
|
||||||
|
jurusan VARCHAR(120) DEFAULT NULL,
|
||||||
|
tahun_masuk INT DEFAULT NULL,
|
||||||
|
tahun_lulus INT DEFAULT NULL,
|
||||||
|
status_pendidikan ENUM('sekolah','lulus','putus_sekolah') DEFAULT 'lulus',
|
||||||
|
keterangan TEXT DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX idx_pendidikan_anggota (id_anggota)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
nama_lengkap VARCHAR(120) NOT NULL,
|
||||||
|
username VARCHAR(60) NOT NULL,
|
||||||
|
no_hp VARCHAR(30) DEFAULT NULL,
|
||||||
|
email VARCHAR(100) DEFAULT NULL,
|
||||||
|
password_hash VARCHAR(255) NOT NULL,
|
||||||
|
role ENUM('admin','masyarakat','pengurus_ibadah','pemerintah') NOT NULL DEFAULT 'masyarakat',
|
||||||
|
id_penduduk INT UNSIGNED DEFAULT NULL,
|
||||||
|
id_rumah_ibadah INT UNSIGNED DEFAULT NULL,
|
||||||
|
is_active TINYINT(1) DEFAULT 1,
|
||||||
|
last_login DATETIME DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY uq_users_username (username),
|
||||||
|
UNIQUE KEY uq_users_hp (no_hp)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS kategori_bantuan (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
nama VARCHAR(100) NOT NULL,
|
||||||
|
sumber ENUM('pemerintah','rumah_ibadah','donatur','lainnya') DEFAULT 'rumah_ibadah',
|
||||||
|
deskripsi TEXT DEFAULT NULL,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS bantuan (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_penduduk INT UNSIGNED NOT NULL,
|
||||||
|
id_kategori_bantuan INT UNSIGNED NOT NULL,
|
||||||
|
id_rumah_ibadah INT UNSIGNED DEFAULT NULL,
|
||||||
|
id_rumah_ibadah_mitra INT UNSIGNED DEFAULT NULL,
|
||||||
|
nama_donatur VARCHAR(120) DEFAULT NULL,
|
||||||
|
tanggal_bantuan DATE NOT NULL,
|
||||||
|
jumlah_nominal DECIMAL(15,2) DEFAULT NULL,
|
||||||
|
bentuk_bantuan VARCHAR(150) DEFAULT NULL,
|
||||||
|
kondisi_saat_diberikan TEXT DEFAULT NULL,
|
||||||
|
catatan_tambahan TEXT DEFAULT NULL,
|
||||||
|
foto_dokumentasi VARCHAR(255) DEFAULT NULL,
|
||||||
|
status_bantuan ENUM('rencana','disalurkan','batal') DEFAULT 'disalurkan',
|
||||||
|
id_pengurus_input INT UNSIGNED DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS laporan_status (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_penduduk INT UNSIGNED DEFAULT NULL,
|
||||||
|
id_anggota INT UNSIGNED DEFAULT NULL,
|
||||||
|
id_pelapor_user INT UNSIGNED DEFAULT NULL,
|
||||||
|
jenis_laporan ENUM('kelahiran','kematian','pindah_masuk','pindah_keluar','lainnya') DEFAULT 'lainnya',
|
||||||
|
deskripsi TEXT NOT NULL,
|
||||||
|
nama_terkait VARCHAR(120) DEFAULT NULL,
|
||||||
|
tanggal_kejadian DATE DEFAULT NULL,
|
||||||
|
lampiran_foto VARCHAR(255) DEFAULT NULL,
|
||||||
|
id_rumah_ibadah INT UNSIGNED DEFAULT NULL,
|
||||||
|
status_verifikasi ENUM('pending','diproses','disetujui','ditolak') DEFAULT 'pending',
|
||||||
|
catatan_pengurus TEXT DEFAULT NULL,
|
||||||
|
id_pengurus_verif INT UNSIGNED DEFAULT NULL,
|
||||||
|
diverifikasi_at DATETIME DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS log_aktivitas (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_user INT UNSIGNED DEFAULT NULL,
|
||||||
|
aksi VARCHAR(80) NOT NULL,
|
||||||
|
tabel_terkait VARCHAR(80) DEFAULT NULL,
|
||||||
|
id_terkait INT UNSIGNED DEFAULT NULL,
|
||||||
|
deskripsi TEXT DEFAULT NULL,
|
||||||
|
ip_address VARCHAR(45) DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS notifikasi (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_user INT UNSIGNED NOT NULL,
|
||||||
|
judul VARCHAR(150) NOT NULL,
|
||||||
|
isi TEXT NOT NULL,
|
||||||
|
tipe VARCHAR(50) DEFAULT 'info',
|
||||||
|
id_referensi INT UNSIGNED DEFAULT NULL,
|
||||||
|
is_read TINYINT(1) DEFAULT 0,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX idx_notifikasi_user (id_user, is_read)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pengurus_pending (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
nama_lengkap VARCHAR(100) NOT NULL,
|
||||||
|
username VARCHAR(50) NOT NULL,
|
||||||
|
no_hp VARCHAR(20) NOT NULL,
|
||||||
|
email VARCHAR(100) DEFAULT NULL,
|
||||||
|
password_hash VARCHAR(255) NOT NULL,
|
||||||
|
nama_ibadah VARCHAR(100) NOT NULL,
|
||||||
|
jenis_ibadah ENUM('Masjid','Gereja','Vihara','Pura','Klenteng','Lainnya') DEFAULT 'Masjid',
|
||||||
|
latitude DOUBLE NOT NULL,
|
||||||
|
longitude DOUBLE NOT NULL,
|
||||||
|
alamat TEXT DEFAULT NULL,
|
||||||
|
kelurahan VARCHAR(80) DEFAULT NULL,
|
||||||
|
kecamatan VARCHAR(80) DEFAULT NULL,
|
||||||
|
radius INT DEFAULT 300,
|
||||||
|
status ENUM('pending','approved','rejected') DEFAULT 'pending',
|
||||||
|
catatan_admin TEXT DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY uq_pengurus_pending_username (username),
|
||||||
|
UNIQUE KEY uq_pengurus_pending_hp (no_hp)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS chat_masyarakat (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_user_masyarakat INT UNSIGNED NOT NULL,
|
||||||
|
id_rumah_ibadah INT UNSIGNED NOT NULL,
|
||||||
|
id_pengirim INT UNSIGNED NOT NULL,
|
||||||
|
pengirim_role ENUM('masyarakat','pengurus_ibadah') NOT NULL,
|
||||||
|
isi_pesan TEXT NOT NULL,
|
||||||
|
is_read TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
INDEX idx_chat_masyarakat (id_user_masyarakat, id_rumah_ibadah),
|
||||||
|
INDEX idx_chat_ibadah (id_rumah_ibadah),
|
||||||
|
INDEX idx_chat_unread (is_read)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS pesan_antar_ibadah (
|
||||||
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
id_pengirim_ibadah INT UNSIGNED NOT NULL,
|
||||||
|
id_penerima_ibadah INT UNSIGNED NOT NULL,
|
||||||
|
id_penduduk INT UNSIGNED DEFAULT NULL,
|
||||||
|
id_pengirim_user INT UNSIGNED DEFAULT NULL,
|
||||||
|
id_penerima_user INT UNSIGNED DEFAULT NULL,
|
||||||
|
perihal VARCHAR(150) NOT NULL,
|
||||||
|
isi_pesan TEXT NOT NULL,
|
||||||
|
status_pesan ENUM('terkirim','dibaca','dibalas','selesai') DEFAULT 'terkirim',
|
||||||
|
pesan_balasan TEXT DEFAULT NULL,
|
||||||
|
dibalas_at DATETIME DEFAULT NULL,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
INSERT IGNORE INTO rumah_ibadah (id, nama, jenis, kontak, email, latitude, longitude, alamat, kelurahan, kecamatan, radius) VALUES
|
||||||
|
(1, 'Masjid Jami Pontianak', 'Masjid', '0811111111', 'masjidjami@example.com', -0.0276, 109.3421, 'Pontianak Kota', 'Dalam Bugis', 'Pontianak Timur', 800),
|
||||||
|
(2, 'Masjid Raya Mujahidin', 'Masjid', '0822222222', 'mujahidin@example.com', -0.0377, 109.3420, 'Jl. Jend. Ahmad Yani', 'Akcaya', 'Pontianak Selatan', 800),
|
||||||
|
(3, 'Gereja Katedral Pontianak', 'Gereja', '0833333333', 'katedral@example.com', -0.0299, 109.3374, 'Pontianak Kota', 'Darat Sekip', 'Pontianak Kota', 800);
|
||||||
|
|
||||||
|
INSERT IGNORE INTO penduduk (id, no_kk, nama_kepala_keluarga, nik_kepala, latitude, longitude, alamat, rt, rw, kelurahan, kecamatan, jumlah_anggota, id_rumah_ibadah, jarak_ke_ibadah, status_ekonomi, status_hunian) VALUES
|
||||||
|
(1, '6171010101010001', 'Ahmad Yusuf', '6171010101800001', -0.0270, 109.3430, 'Jl. Tanjungpura Gang Damai', '001', '002', 'Dalam Bugis', 'Pontianak Timur', 3, 1, 120.00, 'miskin', 'kontrak'),
|
||||||
|
(2, '6171010101010002', 'Siti Aminah', '6171015202850002', -0.0380, 109.3410, 'Jl. Ahmad Yani', '003', '004', 'Akcaya', 'Pontianak Selatan', 2, 2, 150.00, 'sangat_miskin', 'menumpang');
|
||||||
|
|
||||||
|
INSERT IGNORE INTO anggota_keluarga (id, id_penduduk, nik, nama, hubungan, jenis_kelamin, tanggal_lahir, tempat_lahir, agama, pekerjaan, no_hp, status_hidup) VALUES
|
||||||
|
(1, 1, '6171010101800001', 'Ahmad Yusuf', 'Kepala Keluarga', 'L', '1980-01-01', 'Pontianak', 'Islam', 'Buruh', '081234567890', 'hidup'),
|
||||||
|
(2, 1, '6171014101850002', 'Fatimah', 'Istri', 'P', '1985-01-01', 'Pontianak', 'Islam', 'Ibu Rumah Tangga', '081234567891', 'hidup'),
|
||||||
|
(3, 2, '6171015202850002', 'Siti Aminah', 'Kepala Keluarga', 'P', '1985-02-12', 'Pontianak', 'Islam', 'Pedagang', '081234567892', 'hidup');
|
||||||
|
|
||||||
|
INSERT IGNORE INTO kategori_bantuan (id, nama, sumber, deskripsi) VALUES
|
||||||
|
(1, 'Sembako', 'rumah_ibadah', 'Bantuan kebutuhan pokok'),
|
||||||
|
(2, 'Uang Tunai', 'donatur', 'Bantuan dana tunai'),
|
||||||
|
(3, 'Bantuan Pemerintah', 'pemerintah', 'Program bantuan pemerintah');
|
||||||
|
|
||||||
|
INSERT IGNORE INTO users (id, nama_lengkap, username, no_hp, email, password_hash, role, id_penduduk, id_rumah_ibadah, is_active) VALUES
|
||||||
|
(1, 'Administrator', 'admin', '080000000001', 'admin@example.com', 'password123', 'admin', NULL, NULL, 1),
|
||||||
|
(2, 'Pengurus Masjid Jami', 'pengurus_mj', '080000000002', 'mj@example.com', 'password123', 'pengurus_ibadah', NULL, 1, 1),
|
||||||
|
(3, 'Pengurus Masjid Mujahidin', 'pengurus_mm', '080000000003', 'mm@example.com', 'password123', 'pengurus_ibadah', NULL, 2, 1),
|
||||||
|
(4, 'Pengurus Gereja Katedral', 'pengurus_gk', '080000000004', 'gk@example.com', 'password123', 'pengurus_ibadah', NULL, 3, 1),
|
||||||
|
(5, 'Pemerintah Kota Pontianak', 'pemda_ptk', '080000000005', 'pemda@example.com', 'password123', 'pemerintah', NULL, NULL, 1),
|
||||||
|
(6, 'Ahmad Yusuf', 'ahmad_yusuf', '080000000006', 'ahmad@example.com', 'password123', 'masyarakat', 1, NULL, 1);
|
||||||
@@ -33,6 +33,23 @@ services:
|
|||||||
DB_USER: webgis
|
DB_USER: webgis
|
||||||
DB_PASSWORD: webgis_password
|
DB_PASSWORD: webgis_password
|
||||||
DB_NAME: webgis_project
|
DB_NAME: webgis_project
|
||||||
|
depends_on:
|
||||||
|
migrate:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
|
||||||
|
migrate:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile_inline: |
|
||||||
|
FROM mariadb:10.11
|
||||||
|
COPY db/schema.sql /schema.sql
|
||||||
|
environment:
|
||||||
|
DB_HOST: db
|
||||||
|
DB_USER: webgis
|
||||||
|
DB_PASSWORD: webgis_password
|
||||||
|
DB_NAME: webgis_project
|
||||||
|
command: >
|
||||||
|
sh -c "mariadb --host=db --user=webgis --password=webgis_password webgis_project < /schema.sql"
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|||||||
Reference in New Issue
Block a user