84 lines
3.0 KiB
PHP
84 lines
3.0 KiB
PHP
<?php
|
|
mysqli_report(MYSQLI_REPORT_OFF);
|
|
|
|
$host = getenv('KEMISKINAN_DB_HOST') ?: (getenv('DB_HOST') ?: '127.0.0.1');
|
|
$port = (int) (getenv('KEMISKINAN_DB_PORT') ?: (getenv('DB_PORT') ?: 3306));
|
|
$user = getenv('KEMISKINAN_DB_USER') ?: (getenv('DB_USER') ?: 'root');
|
|
$pass = getenv('KEMISKINAN_DB_PASSWORD');
|
|
$pass = $pass !== false ? $pass : (getenv('DB_PASSWORD') ?: '');
|
|
$dbname = getenv('KEMISKINAN_DB_NAME') ?: 'db_kemiskinan';
|
|
|
|
$conn = @new mysqli($host, $user, $pass, '', $port);
|
|
if ($conn->connect_errno) {
|
|
http_response_code(500);
|
|
die("Koneksi database Kemiskinan gagal ke `$host:$port`. Periksa DB_HOST, DB_PORT, DB_USER, dan DB_PASSWORD di Coolify.");
|
|
}
|
|
|
|
if (!$conn->select_db($dbname)) {
|
|
if (!$conn->query("CREATE DATABASE IF NOT EXISTS `$dbname`") || !$conn->select_db($dbname)) {
|
|
http_response_code(500);
|
|
die("Database Kemiskinan belum tersedia. Buat database `$dbname` atau gunakan akun yang memiliki izin CREATE DATABASE.");
|
|
}
|
|
}
|
|
|
|
$conn->set_charset('utf8mb4');
|
|
|
|
// Auto-create tables if not exist
|
|
$conn->query("CREATE TABLE IF NOT EXISTS tb_admin (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
role VARCHAR(50) NOT NULL DEFAULT 'kemiskinan'
|
|
)");
|
|
|
|
$conn->query("CREATE TABLE IF NOT EXISTS tb_tempat_ibadah (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
nama VARCHAR(255) DEFAULT NULL,
|
|
tipe_ibadah VARCHAR(50) DEFAULT 'Masjid',
|
|
latitude DOUBLE NOT NULL,
|
|
longitude DOUBLE NOT NULL,
|
|
radius_meter INT(11) NOT NULL,
|
|
kecamatan VARCHAR(100) DEFAULT NULL,
|
|
alamat TEXT DEFAULT NULL
|
|
)");
|
|
|
|
$conn->query("CREATE TABLE IF NOT EXISTS tb_rumah (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
nama VARCHAR(255) NOT NULL,
|
|
alamat TEXT DEFAULT NULL,
|
|
keterangan TEXT DEFAULT NULL,
|
|
latitude DOUBLE NOT NULL,
|
|
longitude DOUBLE NOT NULL,
|
|
jumlah_anggota INT(11) DEFAULT 1,
|
|
penghasilan VARCHAR(60) DEFAULT NULL,
|
|
status_kepemilikan VARCHAR(50) DEFAULT NULL,
|
|
kategori_kemiskinan VARCHAR(50) DEFAULT 'Miskin',
|
|
status_bantuan VARCHAR(20) DEFAULT 'belum',
|
|
jenis_bantuan VARCHAR(200) DEFAULT NULL,
|
|
foto_rumah VARCHAR(255) DEFAULT NULL,
|
|
kecamatan VARCHAR(100) DEFAULT NULL,
|
|
tahun INT(11) DEFAULT 2026,
|
|
umur_kk INT(11) DEFAULT NULL,
|
|
pekerjaan VARCHAR(100) DEFAULT NULL,
|
|
status_rumah VARCHAR(100) DEFAULT NULL
|
|
)");
|
|
|
|
$conn->query("CREATE TABLE IF NOT EXISTS tb_bantuan_history (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
rumah_id INT(11) NOT NULL,
|
|
tanggal DATE NOT NULL,
|
|
jenis_bantuan VARCHAR(200) DEFAULT NULL,
|
|
keterangan TEXT DEFAULT NULL,
|
|
petugas VARCHAR(100) DEFAULT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (rumah_id) REFERENCES tb_rumah(id) ON DELETE CASCADE
|
|
)");
|
|
|
|
// Insert default admin if not exist
|
|
$check = $conn->query("SELECT id FROM tb_admin WHERE username='admin'");
|
|
if ($check && $check->num_rows == 0) {
|
|
$pw = password_hash("password", PASSWORD_DEFAULT);
|
|
$conn->query("INSERT INTO tb_admin (username, password, role) VALUES ('admin', '$pw', 'kemiskinan')");
|
|
}
|
|
?>
|