-- ============================================================
-- MIGRASI: Tabel Users & Role-Based Access Control
-- WebGIS Poverty Mapping – Sistem Autentikasi
-- Jalankan di phpMyAdmin atau MySQL CLI setelah database.sql
-- ============================================================

USE webgis_p3;

-- ── Tabel pengguna ─────────────────────────────────────────
CREATE TABLE IF NOT EXISTS users (
    id             INT AUTO_INCREMENT PRIMARY KEY,
    username       VARCHAR(100) NOT NULL UNIQUE,
    nama_lengkap   VARCHAR(200) NOT NULL,
    role           ENUM('admin','petugas','pengurus','walikota') NOT NULL,
    password_hash  VARCHAR(255) NOT NULL,
    aktif          TINYINT(1) NOT NULL DEFAULT 1,
    created_at     TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at     TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_role (role),
    INDEX idx_aktif (aktif)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ── Akun demo (password semua akun: "password") ──
-- Hash bcrypt digenerate dengan PHP password_hash('password', PASSWORD_DEFAULT)
--
-- admin      → password
-- petugas    → password
-- pengurus   → password
-- walikota   → password

INSERT INTO users (username, nama_lengkap, role, password_hash) VALUES
(
    'admin',
    'Administrator Sistem',
    'admin',
    '$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
),
(
    'petugas',
    'Petugas Lapangan',
    'petugas',
    '$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
),
(
    'pengurus',
    'Pengurus Rumah Ibadah',
    'pengurus',
    '$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
),
(
    'walikota',
    'Walikota Pontianak',
    'walikota',
    '$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
);

-- !! Untuk database yang sudah ada, jalankan update_pass.php atau generate_hash.php !!

-- ── Catatan hak akses per role ──────────────────────────────
/*
  ROLE: admin
  ─────────────────────────────────────────────────────────────
  • CRUD semua data: SPBU, kemiskinan, rumah ibadah
  • Dapat melihat semua layer & analisis spasial
  • Fitur FAB Tambah: SPBU, Kemiskinan, Rumah Ibadah

  ROLE: petugas
  ─────────────────────────────────────────────────────────────
  • Input & edit data kemiskinan (CREATE + UPDATE + DELETE)
  • View semua data (read-only untuk SPBU & Rumah Ibadah)
  • Fitur FAB Tambah: hanya Kemiskinan
  • Tidak dapat hapus data SPBU atau Rumah Ibadah
  • Tidak dapat tambah/edit SPBU atau Rumah Ibadah

  ROLE: pengurus
  ─────────────────────────────────────────────────────────────
  • Input & edit data rumah ibadah miliknya (CREATE + UPDATE + DELETE)
  • View data kemiskinan (read-only)
  • Fitur FAB Tambah: hanya Rumah Ibadah
  • Tidak dapat hapus data SPBU atau kemiskinan
  • Tidak dapat tambah/edit SPBU atau kemiskinan
*/
