-- ═══════════════════════════════════════════════════════════════
-- IZIN BYPASS PENGECEKAN AWAL PER UNIT — v549
--
-- BERKAS INI TIDAK WAJIB DIJALANKAN.
-- Tabelnya dibuat sendiri saat backend menyala (masterdata.js), dan
-- dipastikan lagi setiap kali endpoint izin dipanggil.
--
-- Jalankan HANYA kalau:
--   - backend tidak bisa direstart sekarang, atau
--   - log backend tidak memperlihatkan tabelnya terbuat, atau
--   - Anda ingin mendaftarkan unit lewat SQL, bukan lewat layar.
--
-- Aman dijalankan berulang: CREATE pakai IF NOT EXISTS, dan INSERT
-- pakai IGNORE terhadap UNIQUE KEY uq_er.
-- ═══════════════════════════════════════════════════════════════

CREATE TABLE IF NOT EXISTS pengecekan_bypass_unit (
  id                 INT          NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Equipment_Register VARCHAR(100) NOT NULL,
  Alasan             VARCHAR(255) NULL,
  Berlaku_Sampai     DATE         NULL,
  Dibuat_Oleh        VARCHAR(30)  NULL,
  created_at         TIMESTAMP    DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_er (Equipment_Register)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


-- ── CONTOH mendaftarkan satu unit ──
-- Hapus tanda komentar, ganti isinya, lalu jalankan.
--
-- Berlaku_Sampai NULL = tanpa batas waktu. Untuk izin keselamatan itu
-- sebaiknya dihindari: izin yang dibuka untuk satu kejadian lalu lupa
-- ditutup tidak akan ada yang menemukan.
--
-- INSERT IGNORE INTO pengecekan_bypass_unit
--   (Equipment_Register, Alasan, Berlaku_Sampai, Dibuat_Oleh)
-- VALUES
--   ('DT3010-63', 'BD berjalan sejak sebelum aplikasi dipakai', '2026-09-30', '31196');


-- ── MELIHAT izin yang masih terbuka ──
-- Pertanyaan yang tidak dijawab layar mana pun: mana izin yang dibuka
-- berbulan-bulan lalu dan tidak pernah ditutup.
--
-- SELECT Equipment_Register, Alasan, Berlaku_Sampai, Dibuat_Oleh, created_at
--   FROM pengecekan_bypass_unit
--  WHERE Berlaku_Sampai IS NULL OR Berlaku_Sampai >= CURDATE()
--  ORDER BY Berlaku_Sampai IS NULL DESC, created_at;


-- ── MENCABUT seluruh izin ──
-- Setelah ini, seluruh BD wajib punya Pengecekan Awal lengkap sebelum
-- bisa ditutup — tanpa kecuali.
--
-- DELETE FROM pengecekan_bypass_unit;
