CREATE DATABASE IF NOT EXISTS bridging_bpjs_aplicares CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE bridging_bpjs_aplicares;

CREATE TABLE IF NOT EXISTS pengguna (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    nama_lengkap VARCHAR(150) NOT NULL,
    aktif TINYINT(1) NOT NULL DEFAULT 1,
    dibuat_pada DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS log_bridging (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    modul VARCHAR(50) NOT NULL,          -- 'aplicares' | 'jadwal_operasi'
    referensi VARCHAR(100) NOT NULL,     -- kode_booking / kode_ruangan / rentang tanggal
    arah ENUM('kirim','terima') NOT NULL,-- kirim = RS->BPJS, terima = BPJS memanggil RS
    sukses TINYINT(1) NOT NULL DEFAULT 0,
    payload MEDIUMTEXT NULL,
    response MEDIUMTEXT NULL,
    pesan TEXT NULL,
    dibuat_pada DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_modul (modul),
    INDEX idx_referensi (referensi),
    INDEX idx_tanggal (dibuat_pada)
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS ws_rs_token (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    token VARCHAR(64) NOT NULL UNIQUE,
    kadaluarsa_pada DATETIME NOT NULL,
    dibuat_pada DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- Menyimpan kode booking yang dikembalikan BPJS untuk tiap baris
-- booking_operasi di SIMRS (yang PK aslinya komposit, bukan id tunggal).
-- kunci_lokal = no_rawat|kode_paket|tanggal|jam_mulai
CREATE TABLE IF NOT EXISTS booking_operasi_bpjs (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    kunci_lokal VARCHAR(120) NOT NULL UNIQUE,
    kode_booking_bpjs VARCHAR(40) NULL,
    status_kirim ENUM('sukses','gagal') NOT NULL,
    pesan TEXT NULL,
    dikirim_pada DATETIME NOT NULL,
    INDEX idx_kode_booking (kode_booking_bpjs)
) ENGINE=InnoDB;

-- Setelah menjalankan schema ini, buat user admin dengan menjalankan:
--   php scripts/buat_admin.php
-- (jangan isi password_hash manual di SQL — script itu akan meng-hash
-- password dengan aman menggunakan password_hash() PHP)
