-- ============================================================
-- 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 di-hash dengan bcrypt PHP PASSWORD_DEFAULT) ──
-- Gunakan script generate_hash.php untuk membuat hash baru jika perlu.
--
-- admin      → admin123
-- petugas    → petugas123
-- pengurus   → pengurus123
--
-- Hash di bawah digenerate dengan PHP:
--   password_hash('admin123',    PASSWORD_DEFAULT)  → $2y$12$...
--   password_hash('petugas123',  PASSWORD_DEFAULT)  → $2y$12$...
--   password_hash('pengurus123', PASSWORD_DEFAULT)  → $2y$12$...
--
-- !! Jangan gunakan plain text password di produksi !!

INSERT INTO users (username, nama_lengkap, role, password_hash) VALUES
(
    'admin',
    'Administrator Sistem',
    'admin',
    '$2y$12$YourHashHereReplaceMe.admin123HashGeneratedByPHP'
),
(
    'petugas',
    'Petugas Lapangan',
    'petugas',
    '$2y$12$YourHashHereReplaceMe.petugas123HashGeneratedByPHP'
),
(
    'pengurus',
    'Pengurus Rumah Ibadah',
    'pengurus',
    '$2y$12$YourHashHereReplaceMe.pengurus123HashGeneratedByPHP'
),
(
    'walikota',
    'Walikota Pontianak',
    'walikota',
    '$2y$10$s0387VqXY8wBXYkVytEKxumpF0DmlBlE1z3usinr0nr1RYN/4BZw.'
);

-- !! PENTING: Setelah import tabel di atas, jalankan generate_hash.php
-- untuk mengisi password_hash yang benar secara otomatis. !!

-- ── 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
*/
