-- ============================================
-- WebGIS SPBU - Database Schema
-- ============================================

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

USE webgis_spbu;

CREATE TABLE IF NOT EXISTS spbu (
  id         INT           NOT NULL AUTO_INCREMENT,
  nama       VARCHAR(150)  NOT NULL,
  no_spbu    VARCHAR(50)   NOT NULL,
  status     ENUM('24jam', 'tidak') NOT NULL DEFAULT 'tidak',
  latitude   DECIMAL(10, 8) NOT NULL,
  longitude  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;

-- ============================================
-- Contoh data awal (opsional)
-- ============================================
INSERT INTO spbu (nama, no_spbu, status, latitude, longitude) VALUES
  ('SPBU Sudirman',     '64.751.01', '24jam', -0.0260000, 109.3425000),
  ('SPBU Ahmad Yani',  '64.751.02', 'tidak', -0.0310000, 109.3218000),
  ('SPBU Sutan Syahrir','64.751.03', '24jam', -0.0195000, 109.3612000);

-- ============================================
-- Tabel Jalan (Line)
-- ============================================
CREATE TABLE IF NOT EXISTS jalan (
  id          INT           NOT NULL AUTO_INCREMENT,
  nama_jalan  VARCHAR(150)  NOT NULL,
  status      ENUM('Nasional', 'Provinsi', 'Kabupaten') NOT NULL,
  panjang     DECIMAL(10, 2) NOT NULL, -- dalam meter
  geom        LONGTEXT      NOT NULL,  -- GeoJSON Feature atau Geometry LineString
  created_at  TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================
-- Tabel Parsil Tanah (Polygon)
-- ============================================
CREATE TABLE IF NOT EXISTS parsil (
  id            INT           NOT NULL AUTO_INCREMENT,
  nama_pemilik  VARCHAR(150)  NOT NULL,
  status        ENUM('SHM', 'HGB', 'HGU', 'HP') NOT NULL,
  luas          DECIMAL(12, 2) NOT NULL, -- dalam meter persegi
  geom          LONGTEXT      NOT NULL,  -- GeoJSON Feature atau Geometry Polygon
  created_at    TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================
-- Tabel Rumah Ibadah (Point)
-- ============================================
CREATE TABLE IF NOT EXISTS rumah_ibadah (
  id INT NOT NULL AUTO_INCREMENT,
  nama VARCHAR(150) NOT NULL,
  alamat TEXT NOT NULL,
  latitude DECIMAL(10, 8) NOT NULL,
  longitude 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;

-- ============================================
-- Tabel Penduduk Miskin (Point)
-- ============================================
CREATE TABLE IF NOT EXISTS penduduk_miskin (
  id INT NOT NULL AUTO_INCREMENT,
  nama_kk VARCHAR(150) NOT NULL,
  keterangan TEXT,
  latitude DECIMAL(10, 8) NOT NULL,
  longitude 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;
