-- ============================================================
-- DATABASE PEMASUKAN — Multi Perusahaan, Multi User
-- Jalankan di phpMyAdmin (import) pada database kosong
-- ============================================================


-- Perusahaan
CREATE TABLE IF NOT EXISTS perusahaan_config (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nama_perusahaan VARCHAR(100) NOT NULL,
  kode_perusahaan VARCHAR(10) NOT NULL,
  alamat TEXT NULL,
  status TINYINT(1) NOT NULL DEFAULT 1,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_kode (kode_perusahaan)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Data instalasi (untuk status isolir)
CREATE TABLE IF NOT EXISTS installation_data (
  id INT AUTO_INCREMENT PRIMARY KEY,
  perusahaan_id INT NOT NULL,
  client_id INT NOT NULL,
  isolir_status ENUM('Tanggal','Bulanan','Nonisolir') NOT NULL DEFAULT 'Bulanan',
  tanggal_pemasangan DATE NULL,
  KEY idx_client (client_id, perusahaan_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Hierarki jaringan
CREATE TABLE IF NOT EXISTS network_olt (
  id INT AUTO_INCREMENT PRIMARY KEY,
  perusahaan_id INT NOT NULL,
  nama_olt VARCHAR(100) NOT NULL,
  status TINYINT(1) NOT NULL DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS network_pon (
  id INT AUTO_INCREMENT PRIMARY KEY,
  perusahaan_id INT NOT NULL,
  olt_id INT NOT NULL,
  nomor_pon VARCHAR(20) NOT NULL,
  nama_pon VARCHAR(100) NULL,
  status TINYINT(1) NOT NULL DEFAULT 1,
  KEY idx_olt (olt_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS network_odp (
  id INT AUTO_INCREMENT PRIMARY KEY,
  perusahaan_id INT NOT NULL,
  pon_id INT NOT NULL,
  nama_odp VARCHAR(100) NOT NULL,
  status TINYINT(1) NOT NULL DEFAULT 1,
  KEY idx_pon (pon_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Pemasukan
CREATE TABLE IF NOT EXISTS pemasukan (
  id INT AUTO_INCREMENT PRIMARY KEY,
  perusahaan_id INT NOT NULL,
  user_id INT NULL,
  klien_id INT NULL,
  nominal DECIMAL(15,2) NOT NULL DEFAULT 0,
  kategori VARCHAR(50) NOT NULL,
  bulan TINYINT NOT NULL,
  tahun SMALLINT NOT NULL,
  tanggal DATE NOT NULL,
  keterangan TEXT NULL,
  pppoe VARCHAR(100) NULL,
  profile VARCHAR(100) NULL,
  olt_id INT NULL,
  pon_id INT NULL,
  odp_id INT NULL,
  sumber ENUM('manual','ipaymu') NOT NULL DEFAULT 'manual',
  metode_bayar VARCHAR(30) NULL,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  KEY idx_periode (perusahaan_id, tahun, bulan),
  KEY idx_user (user_id),
  KEY idx_klien (klien_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ============================================================
-- SEED AWAL
-- Password semua akun contoh: admin123
-- Hash dibuat dengan password_hash('admin123', PASSWORD_DEFAULT)
-- ============================================================
INSERT INTO perusahaan_config (nama_perusahaan, kode_perusahaan) VALUES
('Perusahaan Contoh', 'PC');
