-- ============================================================
-- WebGIS Pemetaan Kemiskinan Berbasis Partisipasi Rumah Ibadah
-- Studi Kasus: Masjid di Kota Pontianak
-- Schema Versi 1.0 – sesuai SRS_CONTEXT.md Bab 5.4
-- ============================================================

CREATE DATABASE IF NOT EXISTS webgis_kemiskinan
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

USE webgis_kemiskinan;

-- ── Tabel: kemiskinan ─────────────────────────────────────────
-- Menyimpan data spasial lokasi dan atribut keluarga miskin.
-- Koordinat menggunakan WGS84 (EPSG:4326).
CREATE TABLE IF NOT EXISTS kemiskinan (
    id                    INT AUTO_INCREMENT PRIMARY KEY,
    nama_kepala_keluarga  VARCHAR(255) NOT NULL              COMMENT 'Nama kepala keluarga miskin',
    jumlah_kk             INT          NOT NULL              COMMENT 'Jumlah anggota keluarga, angka bulat positif',
    alamat                TEXT         NOT NULL              COMMENT 'Alamat lengkap tempat tinggal',
    latitude              DECIMAL(10,8) NOT NULL             COMMENT 'Koordinat lintang WGS84, range -90 s.d. +90',
    longitude             DECIMAL(11,8) NOT NULL             COMMENT 'Koordinat bujur WGS84, range -180 s.d. +180',
    created_at            TIMESTAMP    DEFAULT CURRENT_TIMESTAMP COMMENT 'Waktu pencatatan data'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ── Tabel: masjid ─────────────────────────────────────────────
-- Menyimpan data spasial lokasi masjid beserta radius layanan sosial.
-- Radius (meter) digunakan sebagai parameter visualisasi L.circle di Leaflet.js.
CREATE TABLE IF NOT EXISTS masjid (
    id           INT AUTO_INCREMENT PRIMARY KEY,
    nama_masjid  VARCHAR(255) NOT NULL              COMMENT 'Nama lengkap masjid',
    pic_masjid   VARCHAR(255) NOT NULL              COMMENT 'Nama pengurus/penanggung jawab (PIC)',
    alamat       TEXT         NOT NULL              COMMENT 'Alamat lengkap masjid',
    latitude     DECIMAL(10,8) NOT NULL             COMMENT 'Koordinat lintang WGS84',
    longitude    DECIMAL(11,8) NOT NULL             COMMENT 'Koordinat bujur WGS84',
    radius       INT          NOT NULL DEFAULT 500  COMMENT 'Radius layanan sosial dalam meter, range 100-5000',
    created_at   TIMESTAMP    DEFAULT CURRENT_TIMESTAMP COMMENT 'Waktu pencatatan data'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ── Catatan ERD (SRS Bab 7.4) ─────────────────────────────────
-- Kedua tabel TIDAK memiliki foreign key.
-- Relasi logis antara masjid dan kemiskinan ditentukan secara spasial
-- (kalkulasi jarak vs radius) di layer peta Leaflet, bukan melalui
-- relasi database relasional. Ini merupakan desain yang disederhanakan
-- untuk versi 1.0. Versi lanjutan dapat mengimplementasikan tabel relasi
-- atau tipe spasial MySQL POINT/GEOMETRY.
