diff --git a/05/api/auth.php b/05/api/auth.php index be17974..10afa01 100644 --- a/05/api/auth.php +++ b/05/api/auth.php @@ -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" )->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); } diff --git a/db/schema.sql b/db/schema.sql new file mode 100644 index 0000000..660c2b9 --- /dev/null +++ b/db/schema.sql @@ -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); diff --git a/docker-compose.yml b/docker-compose.yml index 1aa958f..8e17bd7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,6 +33,23 @@ services: DB_USER: webgis DB_PASSWORD: webgis_password 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: db: condition: service_healthy