-- ═══════════════════════════════════════════════════════════════════
-- setup_database.sql
-- Jalankan query ini di phpMyAdmin (Laragon) atau MySQL CLI
-- untuk membuat database dan tabel yang diperlukan.
-- ═══════════════════════════════════════════════════════════════════

-- 1. Buat dan gunakan database
CREATE DATABASE IF NOT EXISTS `02_spbudb`
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

USE `02_spbudb`;

-- ─────────────────────────────────────────────────────────────────────
-- 2. Tabel SPBU (marker titik lokasi)
-- ─────────────────────────────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS `spbu` (
  `id`                  INT           NOT NULL AUTO_INCREMENT,
  `nama_spbu`           VARCHAR(100)  NOT NULL,
  `status_ramai`        ENUM('ramai','tidak_ramai') NOT NULL DEFAULT 'tidak_ramai',
  `buka_24_jam`         ENUM('ya','tidak')          NOT NULL DEFAULT 'tidak',
  `status_operasional`  ENUM('buka','tutup')        NOT NULL DEFAULT 'buka',
  `nomor_hp`            VARCHAR(20)   NOT NULL DEFAULT '',
  `latitude`            DOUBLE        NOT NULL,
  `longitude`           DOUBLE        NOT NULL,
  `created_at`          TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at`          TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─────────────────────────────────────────────────────────────────────
-- 3. Tabel Polyline (garis)
--    Kolom koordinat menyimpan JSON array of [lat, lng]
--    Contoh: [[-0.055, 109.348], [-0.056, 109.349]]
-- ─────────────────────────────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS `polyline` (
  `id`          INT           NOT NULL AUTO_INCREMENT,
  `nama_line`   VARCHAR(100)  NOT NULL,
  `keterangan`  TEXT,
  `warna`       VARCHAR(20)   NOT NULL DEFAULT '#3b82f6',
  `koordinat`   LONGTEXT      NOT NULL,
  `created_at`  TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at`  TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─────────────────────────────────────────────────────────────────────
-- 4. Tabel Polygon (area)
--    Kolom koordinat menyimpan JSON array of [lat, lng]
--    Contoh: [[-0.055, 109.348], [-0.056, 109.349], [-0.055, 109.350]]
-- ─────────────────────────────────────────────────────────────────────
CREATE TABLE IF NOT EXISTS `polygon` (
  `id`            INT           NOT NULL AUTO_INCREMENT,
  `nama_polygon`  VARCHAR(100)  NOT NULL,
  `keterangan`    TEXT,
  `warna`         VARCHAR(20)   NOT NULL DEFAULT '#22c55e',
  `koordinat`     LONGTEXT      NOT NULL,
  `created_at`    TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at`    TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ─────────────────────────────────────────────────────────────────────
-- 5. (Opsional) Data contoh untuk testing awal
-- ─────────────────────────────────────────────────────────────────────
INSERT INTO `spbu` (nama_spbu, status_ramai, buka_24_jam, status_operasional, nomor_hp, latitude, longitude)
VALUES
  ('SPBU Contoh A', 'ramai',       'ya',    'buka',  '08123456789', -0.05566, 109.34854),
  ('SPBU Contoh B', 'tidak_ramai', 'tidak', 'buka',  '08129876543', -0.05700, 109.34900),
  ('SPBU Contoh C', 'ramai',       'tidak', 'tutup', '',             -0.05400, 109.34800);
