-- phpMyAdmin SQL Dump
-- version 5.2.2
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Generation Time: Jun 23, 2025 at 02:46 PM
-- Server version: 8.4.3
-- PHP Version: 8.3.22

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `anjeng`
--

-- --------------------------------------------------------

--
-- Table structure for table `absensis`
--

CREATE TABLE `absensis` (
  `id` bigint UNSIGNED NOT NULL,
  `karyawan_id` bigint UNSIGNED NOT NULL,
  `tanggal` date NOT NULL,
  `jam_masuk` time DEFAULT NULL,
  `jam_keluar` time DEFAULT NULL,
  `total_jam_kerja` int DEFAULT NULL,
  `status` enum('hadir','terlambat','tidak_hadir','izin','sakit','cuti') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'tidak_hadir',
  `keterangan` text COLLATE utf8mb4_unicode_ci,
  `lokasi_checkin` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `lokasi_checkout` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `latitude_checkin` decimal(10,8) DEFAULT NULL,
  `longitude_checkin` decimal(11,8) DEFAULT NULL,
  `latitude_checkout` decimal(10,8) DEFAULT NULL,
  `longitude_checkout` decimal(11,8) DEFAULT NULL,
  `foto_checkin` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `foto_checkout` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `is_approved` tinyint(1) NOT NULL DEFAULT '0',
  `approved_by` bigint UNSIGNED DEFAULT NULL,
  `approved_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `absensis`
--

INSERT INTO `absensis` (`id`, `karyawan_id`, `tanggal`, `jam_masuk`, `jam_keluar`, `total_jam_kerja`, `status`, `keterangan`, `lokasi_checkin`, `lokasi_checkout`, `latitude_checkin`, `longitude_checkin`, `latitude_checkout`, `longitude_checkout`, `foto_checkin`, `foto_checkout`, `is_approved`, `approved_by`, `approved_at`, `created_at`, `updated_at`) VALUES
(1, 1, '2025-05-31', '08:15:00', '17:26:00', 551, 'hadir', NULL, 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-05-31 03:49:22', '2025-05-31 03:49:22'),
(2, 1, '2025-06-01', '08:56:00', '17:07:00', 491, 'terlambat', 'Terlambat karena macet', 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-06-01 03:49:22', '2025-06-01 03:49:22'),
(3, 1, '2025-06-02', '08:15:00', '17:06:00', 531, 'hadir', NULL, 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-06-02 03:49:22', '2025-06-02 03:49:22'),
(4, 1, '2025-06-03', '08:09:00', '17:21:00', 552, 'hadir', NULL, 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-06-03 03:49:22', '2025-06-03 03:49:22'),
(5, 1, '2025-06-04', '08:11:00', '17:27:00', 556, 'hadir', NULL, 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-06-04 03:49:22', '2025-06-04 03:49:22'),
(6, 1, '2025-06-05', '08:02:00', '17:18:00', 556, 'hadir', NULL, 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-06-05 03:49:22', '2025-06-05 03:49:22'),
(7, 1, '2025-06-06', '08:13:00', '17:23:00', 550, 'hadir', NULL, 'Kantor Pusat', 'Kantor Pusat', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '2025-06-06 03:49:22', '2025-06-06 03:49:22');

-- --------------------------------------------------------

--
-- Table structure for table `account_deletion_requests`
--

CREATE TABLE `account_deletion_requests` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_lengkap` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `no_whatsapp` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nomer_layanan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `alasan_penghapusan` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `status` enum('pending','approved','rejected') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending',
  `catatan_admin` text COLLATE utf8mb4_unicode_ci,
  `processed_at` timestamp NULL DEFAULT NULL,
  `processed_by` bigint UNSIGNED DEFAULT NULL,
  `ip_address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `akses_permissions`
--

CREATE TABLE `akses_permissions` (
  `id` bigint UNSIGNED NOT NULL,
  `role` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `resource_id` bigint UNSIGNED NOT NULL,
  `resource_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `can_view` tinyint(1) NOT NULL DEFAULT '0',
  `can_create` tinyint(1) NOT NULL DEFAULT '0',
  `can_edit` tinyint(1) NOT NULL DEFAULT '0',
  `can_delete` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `assets`
--

CREATE TABLE `assets` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `asset_code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `asset_category_id` bigint UNSIGNED NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `brand` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `model` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `serial_number` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `purchase_price` decimal(15,2) DEFAULT NULL,
  `purchase_date` date DEFAULT NULL,
  `supplier` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `condition` enum('excellent','good','fair','poor','damaged') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'good',
  `status` enum('available','in_use','maintenance','retired','lost') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'available',
  `location` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `assigned_to` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `warranty_expire` date DEFAULT NULL,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `image` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `assets`
--

INSERT INTO `assets` (`id`, `name`, `asset_code`, `asset_category_id`, `description`, `brand`, `model`, `serial_number`, `purchase_price`, `purchase_date`, `supplier`, `condition`, `status`, `location`, `assigned_to`, `warranty_expire`, `notes`, `image`, `created_at`, `updated_at`) VALUES
(1, 'MODM EPON', 'AST-0001', 11, NULL, 'ZTE GM220-s', 'GM220-s Hardware Version	V9.0', '00CFC0-ZICG00D72B6B', 140000.00, '2025-01-01', NULL, 'excellent', 'in_use', 'dede@gadog.net', NULL, NULL, NULL, 'assets/wlpc0w2FHDfLFGCBfZdMu0A6uPX9mJJzpeBfObXi.png', '2025-06-01 17:45:13', '2025-06-01 17:45:13'),
(2, 'MODM EPON', 'AST-0002', 11, NULL, 'ZTE GM220-s', 'GM220-s Hardware Version	V9.0', 'F86CE1-ZICG2987A826', 140000.00, '2025-01-01', NULL, 'excellent', 'in_use', 'nova@gadog.net', NULL, NULL, NULL, 'assets/4Vo294eQ1oVBjMn7mzCJUPw9w3ScYu3eHIXJZjII.png', '2025-06-01 17:47:18', '2025-06-01 17:47:18'),
(3, 'ROUTER TOTOLINK', 'AST-0003', 12, NULL, 'TOTOLINK-N200RE', 'N200RE', '5C:92:5E:BB:EF:B9', 120000.00, '2025-06-01', NULL, 'excellent', 'in_use', 'kasminiadi@gadog.net', NULL, NULL, NULL, NULL, '2025-06-02 11:09:21', '2025-06-02 11:09:21');

-- --------------------------------------------------------

--
-- Table structure for table `asset_categories`
--

CREATE TABLE `asset_categories` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `icon` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'fas fa-tag',
  `color` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#6c757d',
  `status` enum('active','inactive') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'active',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `asset_categories`
--

INSERT INTO `asset_categories` (`id`, `name`, `code`, `description`, `icon`, `color`, `status`, `created_at`, `updated_at`) VALUES
(11, 'MODM EPON', 'MODEM', NULL, 'fas fa-wifi', '#00ff04', 'active', '2025-06-01 17:36:34', '2025-06-01 17:40:49'),
(12, 'ROUTER', 'ROUTER', NULL, 'fas fa-signal', '#3b82f6', 'active', '2025-06-02 11:08:05', '2025-06-02 11:08:05');

-- --------------------------------------------------------

--
-- Table structure for table `auto_billing_logs`
--

CREATE TABLE `auto_billing_logs` (
  `id` bigint UNSIGNED NOT NULL,
  `level` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `context` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ;

-- --------------------------------------------------------

--
-- Table structure for table `auto_billing_settings`
--

CREATE TABLE `auto_billing_settings` (
  `id` bigint UNSIGNED NOT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT '0',
  `execution_mode` enum('page_trigger','cronjob') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'page_trigger',
  `cron_token` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Token untuk keamanan cron endpoint',
  `cron_time` time NOT NULL DEFAULT '02:00:00' COMMENT 'Waktu eksekusi cron (HH:MM)',
  `last_cron_run` timestamp NULL DEFAULT NULL COMMENT 'Terakhir dijalankan via cron',
  `execution_status` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'Status eksekusi terakhir',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `generate_day` int NOT NULL DEFAULT '1' COMMENT 'Tanggal generate invoice (1-31)',
  `due_date_mode` enum('fixed_days','custom_date','mixed') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'mixed' COMMENT 'Mode perhitungan due date',
  `default_due_days` int NOT NULL DEFAULT '7' COMMENT 'Default hari jatuh tempo dari generate',
  `advance_generate` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Generate di bulan sebelumnya',
  `advance_days` int NOT NULL DEFAULT '0' COMMENT 'Berapa hari sebelum bulan baru',
  `description` text COLLATE utf8mb4_unicode_ci
) ;

--
-- Dumping data for table `auto_billing_settings`
--

INSERT INTO `auto_billing_settings` (`id`, `is_active`, `execution_mode`, `cron_token`, `cron_time`, `last_cron_run`, `execution_status`, `created_at`, `updated_at`, `generate_day`, `due_date_mode`, `default_due_days`, `advance_generate`, `advance_days`, `description`) VALUES
(1, 1, 'cronjob', 'b42d8883f2af127bf5519ddb147443557549e388bdf40ab1900e9876037219da', '04:00:00', NULL, NULL, NULL, '2025-06-06 01:21:59', 1, 'mixed', 7, 0, 0, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `auto_isolir_logs`
--

CREATE TABLE `auto_isolir_logs` (
  `id` bigint UNSIGNED NOT NULL,
  `execution_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'auto',
  `user_id` bigint UNSIGNED DEFAULT NULL,
  `invoices_processed` int NOT NULL DEFAULT '0',
  `whatsapp_sent` int NOT NULL DEFAULT '0',
  `whatsapp_failed` int NOT NULL DEFAULT '0',
  `mikrotik_success` int NOT NULL DEFAULT '0',
  `mikrotik_failed` int NOT NULL DEFAULT '0',
  `invoice_details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `error_messages` text COLLATE utf8mb4_unicode_ci,
  `status` enum('success','partial','failed','running') COLLATE utf8mb4_unicode_ci DEFAULT 'success',
  `started_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `completed_at` timestamp NULL DEFAULT NULL,
  `duration_seconds` int DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `auto_isolir_logs`
--

INSERT INTO `auto_isolir_logs` (`id`, `execution_type`, `user_id`, `invoices_processed`, `whatsapp_sent`, `whatsapp_failed`, `mikrotik_success`, `mikrotik_failed`, `invoice_details`, `error_messages`, `status`, `started_at`, `completed_at`, `duration_seconds`, `created_at`, `updated_at`) VALUES
(7, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":150,\"nomor_invoice\":\"INV-202506150001\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-15 08:08:21', '2025-06-15 08:08:21', 1, '2025-06-15 08:08:20', '2025-06-15 08:08:21'),
(8, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":150,\"nomor_invoice\":\"INV-202506150001\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-15 08:10:18', '2025-06-15 08:10:18', 1, '2025-06-15 08:10:17', '2025-06-15 08:10:18'),
(9, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":150,\"nomor_invoice\":\"INV-202506150001\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-15 08:16:19', '2025-06-15 08:16:19', 2, '2025-06-15 08:16:17', '2025-06-15 08:16:19'),
(10, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":150,\"nomor_invoice\":\"INV-202506150001\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-15 08:16:44', '2025-06-15 08:16:44', 2, '2025-06-15 08:16:42', '2025-06-15 08:16:44'),
(11, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":150,\"nomor_invoice\":\"INV-202506150001\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-15 08:21:59', '2025-06-15 08:21:59', 2, '2025-06-15 08:21:57', '2025-06-15 08:21:59'),
(12, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":150,\"nomor_invoice\":\"INV-202506150001\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-15 08:23:21', '2025-06-15 08:23:21', 1, '2025-06-15 08:23:20', '2025-06-15 08:23:21'),
(13, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":153,\"nomor_invoice\":\"INV-202506160002\",\"pelanggan\":\"Isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-16 06:47:56', '2025-06-16 06:47:56', 1, '2025-06-16 06:47:55', '2025-06-16 06:47:56'),
(14, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":154,\"nomor_invoice\":\"INV-202506160003\",\"pelanggan\":\"Isnaeni\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160003: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:05:08', '2025-06-16 16:05:08', 3, '2025-06-16 16:05:05', '2025-06-16 16:05:08'),
(15, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160001: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:08:38', '2025-06-16 16:08:38', 1, '2025-06-16 16:08:37', '2025-06-16 16:08:38'),
(16, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160001: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:08:48', '2025-06-16 16:08:48', 1, '2025-06-16 16:08:47', '2025-06-16 16:08:48'),
(17, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160001: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:09:15', '2025-06-16 16:09:15', 1, '2025-06-16 16:09:14', '2025-06-16 16:09:15'),
(18, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160001: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:09:32', '2025-06-16 16:09:32', 1, '2025-06-16 16:09:31', '2025-06-16 16:09:32'),
(19, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160001: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:10:54', '2025-06-16 16:10:54', 2, '2025-06-16 16:10:52', '2025-06-16 16:10:54'),
(20, 'manual', 1, 1, 1, 0, 0, 1, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":false,\"errors\":[\"Mikrotik: PPP secret tidak ditemukan di Mikrotik\"]}]', 'Mikrotik gagal untuk INV-202506160001: PPP secret tidak ditemukan di Mikrotik', 'partial', '2025-06-16 16:11:56', '2025-06-16 16:11:56', 1, '2025-06-16 16:11:55', '2025-06-16 16:11:56'),
(21, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-16 16:19:19', '2025-06-16 16:19:19', 1, '2025-06-16 16:19:18', '2025-06-16 16:19:19'),
(22, 'manual_test', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-16 16:19:48', '2025-06-16 16:19:48', 1, '2025-06-16 16:19:47', '2025-06-16 16:19:48'),
(23, 'manual_test', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":155,\"nomor_invoice\":\"INV-202506160001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-16 16:25:24', '2025-06-16 16:25:24', 1, '2025-06-16 16:25:23', '2025-06-16 16:25:24'),
(24, 'manual', 1, 1, 1, 0, 1, 0, '[{\"invoice_id\":156,\"nomor_invoice\":\"INV-202506170001\",\"pelanggan\":\"isna\",\"whatsapp_sent\":true,\"mikrotik_isolated\":true,\"errors\":[]}]', NULL, 'success', '2025-06-16 17:05:36', '2025-06-16 17:05:36', 1, '2025-06-16 17:05:35', '2025-06-16 17:05:36');

-- --------------------------------------------------------

--
-- Table structure for table `banks`
--

CREATE TABLE `banks` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_bank` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `no_rek` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nama_rek` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `logo_bank` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `aktif` tinyint(1) NOT NULL DEFAULT '1',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `banks`
--

INSERT INTO `banks` (`id`, `nama_bank`, `no_rek`, `nama_rek`, `logo_bank`, `aktif`, `created_at`, `updated_at`) VALUES
(6, 'Bank Central Asia (BCA)', '7361179629', 'Eko Adrie', 'bank-logos/oqYhpmeh32clJAcVEgoZCrBiVI4GR2xqrt81F6an.png', 1, '2025-06-01 17:51:50', '2025-06-01 17:51:50');

-- --------------------------------------------------------

--
-- Table structure for table `broadcast_messages`
--

CREATE TABLE `broadcast_messages` (
  `id` bigint UNSIGNED NOT NULL,
  `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `send_method` enum('individual','all','coverage_area','odp','odc','selected_contacts') COLLATE utf8mb4_unicode_ci NOT NULL,
  `target_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `total_recipients` int NOT NULL DEFAULT '0',
  `sent_count` int NOT NULL DEFAULT '0',
  `failed_count` int NOT NULL DEFAULT '0',
  `status` enum('pending','processing','completed','failed','cancelled') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending',
  `delay_seconds` int NOT NULL DEFAULT '5',
  `whatsapp_gateway_id` bigint UNSIGNED NOT NULL,
  `created_by` bigint UNSIGNED NOT NULL,
  `scheduled_at` timestamp NULL DEFAULT NULL,
  `started_at` timestamp NULL DEFAULT NULL,
  `completed_at` timestamp NULL DEFAULT NULL,
  `error_message` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `coverage_areas`
--

CREATE TABLE `coverage_areas` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `latitude` decimal(10,8) NOT NULL,
  `longitude` decimal(11,8) NOT NULL,
  `radius` decimal(8,2) NOT NULL DEFAULT '1000.00',
  `polygon_coordinates` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `province` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `city` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `district` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `village` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `full_address` text COLLATE utf8mb4_unicode_ci,
  `postal_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `network_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `technology` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('active','inactive','maintenance','planned') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'active',
  `coverage_quality` enum('excellent','good','fair','poor') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'good',
  `installation_date` date DEFAULT NULL,
  `last_maintenance` date DEFAULT NULL,
  `next_maintenance` date DEFAULT NULL,
  `maintenance_notes` text COLLATE utf8mb4_unicode_ci,
  `equipment_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `contact_person` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `contact_phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `coverage_areas`
--

INSERT INTO `coverage_areas` (`id`, `name`, `code`, `description`, `latitude`, `longitude`, `radius`, `polygon_coordinates`, `province`, `city`, `district`, `village`, `full_address`, `postal_code`, `network_type`, `technology`, `status`, `coverage_quality`, `installation_date`, `last_maintenance`, `next_maintenance`, `maintenance_notes`, `equipment_info`, `contact_person`, `contact_phone`, `notes`, `created_at`, `updated_at`) VALUES
(5, 'Gadog RW03-A1', 'GADOG-03-A1', NULL, -6.65521300, 106.86189300, 0.10, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 03/03 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', '2025-06-01', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:10:24', '2025-06-02 18:08:01'),
(6, 'Gadog RW03-A2', 'GADOG-03-A2', NULL, -6.65496300, 106.86277400, 0.10, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 03/03 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:12:19', '2025-06-01 16:12:19'),
(7, 'Gadog RW03-A3', 'GADOG-03-A3', NULL, -6.65497300, 106.86326700, 0.10, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 03/03 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:13:03', '2025-06-01 16:13:03'),
(8, 'Gadog RW02-A1', 'GADOG-02-A1', NULL, -6.65600800, 106.86508700, 0.20, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 01/02 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:14:06', '2025-06-01 16:14:06'),
(9, 'PANDANSARI-01-A1', 'PANDANSARI-01-A1', NULL, -6.65471300, 106.86133000, 0.10, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 03/03 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:15:09', '2025-06-01 16:15:09'),
(10, 'ALBAROKAH-VML-01-A1', 'ALBAROKAH-VML-01-A1', NULL, -6.65640200, 106.86081500, 0.10, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 03/03 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:16:21', '2025-06-01 16:16:21'),
(11, 'SUKABIRUS-01-A1', 'SUKABIRUS-01-A1', NULL, -6.66244400, 106.87052400, 0.20, NULL, 'Jawa Barat', 'KABUPATEN BOGOR', 'Megamendung', 'Desa Gadog', 'Kp.Gadog RT 03/03 Desa Gadog', '16770', 'fiber', 'EPON', 'active', 'excellent', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-06-01 16:17:28', '2025-06-01 16:17:28');

-- --------------------------------------------------------

--
-- Table structure for table `customerakun`
--

CREATE TABLE `customerakun` (
  `id` bigint UNSIGNED NOT NULL,
  `nama` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email_verified_at` timestamp NULL DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `no_whatsapp` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nomer_layanan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('pending','active','inactive') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending',
  `verification_token` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `token_expires_at` timestamp NULL DEFAULT NULL,
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `customerakun`
--

INSERT INTO `customerakun` (`id`, `nama`, `email`, `email_verified_at`, `password`, `no_whatsapp`, `nomer_layanan`, `status`, `verification_token`, `token_expires_at`, `remember_token`, `created_at`, `updated_at`) VALUES
(1, 'Test Customer', 'test@customer.com', NULL, '$2y$10$mTCTF4NqJFoSV3OjvzYtQuJumNw8/qNP0ZQ9X42dLGvrLfnm4gVN.', '081234567890', '202506160001', 'active', NULL, NULL, NULL, '2025-06-15 18:01:51', '2025-06-23 11:52:44'),
(2, 'Ekonet', 'admin@example.com', NULL, '$2y$10$6lSl1I4GMDV7PHn09LEu6eAg/cEntFJ.E06t.NNOfkxRid9hy3Cmm', '081280090373', '202506160001', 'active', 'JPbWuyW0mMvSUYaIHMld0OI4KdrGmy73GjbxhZYmWuOV7jRuMEWPoYhti4n7', '2025-06-16 18:04:46', NULL, '2025-06-15 18:04:46', '2025-06-16 03:46:46'),
(3, 'Test Customer 1', 'test1@example.com', NULL, '$2y$10$8s2T8CPs509ojnsvCrE65eZJ/6othR1iTF0JuQ01OFvc8uXMngI/K', '081234567890', NULL, 'active', NULL, NULL, NULL, '2025-06-15 21:00:08', '2025-06-15 21:00:08'),
(4, 'Test Customer 2', 'test2@example.com', NULL, '$2y$10$DsNKa8p3Qe6NViROu438y.g.LdBN3wLw9IQdshqgVe8PW3bZZnU5G', '081234567891', NULL, 'active', NULL, NULL, NULL, '2025-06-15 21:00:08', '2025-06-15 21:00:08'),
(5, 'Test Customer 3', 'test3@example.com', NULL, '$2y$10$/Jfu4W6yV8Faw/AmHOi5UesfXsbWyJLiHC45eNuoZA1HB3C5.VLi.', '081234567892', NULL, 'active', NULL, NULL, NULL, '2025-06-15 21:00:08', '2025-06-15 21:00:08'),
(7, 'Bayu', 'bayu@eglobaltech.id', NULL, '$2y$10$pYqRSDlksYUlqnyNTYNDu.clU28EBqaYbz7OLKZAYdwRYAMxysRtm', '081399909101', NULL, 'active', 'N0HICPLdvdfNBWfTnfduF4vqbsjHqy8q7UCM272G28RhADnhAofaYqPYZhEn', '2025-06-23 13:07:22', NULL, '2025-06-22 13:07:22', '2025-06-22 13:07:22');

-- --------------------------------------------------------

--
-- Table structure for table `failed_jobs`
--

CREATE TABLE `failed_jobs` (
  `id` bigint UNSIGNED NOT NULL,
  `uuid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `connection` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `queue` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `exception` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `failed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `galeri`
--

CREATE TABLE `galeri` (
  `id` bigint UNSIGNED NOT NULL,
  `judul` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `kategori_id` bigint UNSIGNED DEFAULT NULL,
  `gambar` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `status` enum('aktif','nonaktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `urutan` int NOT NULL DEFAULT '0',
  `kategori` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `halamen`
--

CREATE TABLE `halamen` (
  `id` bigint UNSIGNED NOT NULL,
  `judul` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `konten` longtext COLLATE utf8mb4_unicode_ci,
  `gambar_featured` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_description` text COLLATE utf8mb4_unicode_ci,
  `meta_keywords` text COLLATE utf8mb4_unicode_ci,
  `status` enum('published','draft','archived') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'draft',
  `kategori_id` bigint UNSIGNED DEFAULT NULL,
  `urutan` int NOT NULL DEFAULT '0',
  `template` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `show_in_menu` tinyint(1) NOT NULL DEFAULT '0',
  `created_by` bigint UNSIGNED DEFAULT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `halamen`
--

INSERT INTO `halamen` (`id`, `judul`, `slug`, `konten`, `gambar_featured`, `meta_description`, `meta_keywords`, `status`, `kategori_id`, `urutan`, `template`, `show_in_menu`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(4, 'Tentang RT RWNET', 'tentang-rt-rwnet', '\r\n        <div class=\"row\">\r\n            <div class=\"col-lg-8\">\r\n                <h2 class=\"mb-4\">Tentang RT RWNET</h2>\r\n                \r\n                <p class=\"lead\">RT RWNET adalah penyedia layanan internet dan teknologi terdepan yang berkomitmen memberikan solusi terbaik untuk kebutuhan konektivitas digital Anda.</p>\r\n                \r\n                <h3>Visi Kami</h3>\r\n                <p>Menjadi penyedia layanan internet dan teknologi terpercaya yang menghubungkan setiap rumah dan bisnis dengan dunia digital yang tak terbatas.</p>\r\n                \r\n                <h3>Misi Kami</h3>\r\n                <ul>\r\n                    <li>Menyediakan layanan internet berkualitas tinggi dengan harga terjangkau</li>\r\n                    <li>Memberikan solusi teknologi terintegrasi untuk rumah dan bisnis</li>\r\n                    <li>Membangun infrastruktur jaringan yang handal dan modern</li>\r\n                    <li>Memberikan dukungan teknis terbaik kepada setiap pelanggan</li>\r\n                </ul>\r\n                \r\n                <h3>Partnership dengan ASNet</h3>\r\n                <p>RT RWNET bangga bermitra dengan <strong>PT Usaha Adi Sanggoro (ASNet)</strong>, sebuah perusahaan teknologi terkemuka yang memberikan dukungan infrastruktur dan teknologi canggih untuk memastikan kualitas layanan terbaik bagi pelanggan kami.</p>\r\n                \r\n                <div class=\"alert alert-info\">\r\n                    <h5><i class=\"fas fa-handshake\"></i> Kemitraan Strategis</h5>\r\n                    <p class=\"mb-0\">Melalui kemitraan dengan PT Usaha Adi Sanggoro, kami dapat menjamin:</p>\r\n                    <ul class=\"mb-0 mt-2\">\r\n                        <li>Infrastruktur backbone berkualitas tinggi</li>\r\n                        <li>Dukungan teknis 24/7</li>\r\n                        <li>Teknologi terdepan dalam industri</li>\r\n                        <li>Jaminan kualitas dan keandalan layanan</li>\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n            \r\n            <div class=\"col-lg-4\">\r\n                <div class=\"card\">\r\n                    <div class=\"card-header bg-primary text-white\">\r\n                        <h5><i class=\"fas fa-info-circle\"></i> Info Perusahaan</h5>\r\n                    </div>\r\n                    <div class=\"card-body\">\r\n                        <table class=\"table table-borderless\">\r\n                            <tr>\r\n                                <td><strong>Nama:</strong></td>\r\n                                <td>RT RWNET</td>\r\n                            </tr>\r\n                            <tr>\r\n                                <td><strong>Partner:</strong></td>\r\n                                <td>PT Usaha Adi Sanggoro (ASNet)</td>\r\n                            </tr>\r\n                            <tr>\r\n                                <td><strong>Bidang:</strong></td>\r\n                                <td>Internet Service Provider</td>\r\n                            </tr>\r\n                            <tr>\r\n                                <td><strong>Spesialisasi:</strong></td>\r\n                                <td>Internet, CCTV, Jaringan, Fiber Optik</td>\r\n                            </tr>\r\n                            <tr>\r\n                                <td><strong>Layanan:</strong></td>\r\n                                <td>24/7 Support</td>\r\n                            </tr>\r\n                        </table>\r\n                    </div>\r\n                </div>\r\n                \r\n                <div class=\"card mt-3\">\r\n                    <div class=\"card-header bg-success text-white\">\r\n                        <h5><i class=\"fas fa-award\"></i> Keunggulan</h5>\r\n                    </div>\r\n                    <div class=\"card-body\">\r\n                        <ul class=\"list-unstyled\">\r\n                            <li><i class=\"fas fa-check text-success\"></i> Infrastruktur Fiber Optik</li>\r\n                            <li><i class=\"fas fa-check text-success\"></i> Tim Teknisi Berpengalaman</li>\r\n                            <li><i class=\"fas fa-check text-success\"></i> Harga Kompetitif</li>\r\n                            <li><i class=\"fas fa-check text-success\"></i> Support 24/7</li>\r\n                            <li><i class=\"fas fa-check text-success\"></i> Garansi Layanan</li>\r\n                        </ul>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>', NULL, 'RT RWNET adalah penyedia layanan internet berkualitas yang bermitra dengan PT Usaha Adi Sanggoro (ASNet). Melayani internet, CCTV, jaringan, fiber optik dan maintenance.', 'RT RWNET, internet provider, ASNet, PT Usaha Adi Sanggoro, CCTV, jaringan, fiber optik, maintenance', 'published', NULL, 1, NULL, 0, 1, 1, '2025-06-07 10:41:51', '2025-06-07 11:03:31'),
(5, 'Layanan Kami', 'layanan-kami', '\r\n        <div class=\"container-fluid\">\r\n            <h2 class=\"mb-4 text-center\">Layanan Profesional RT RWNET</h2>\r\n            <p class=\"lead text-center mb-5\">Solusi lengkap untuk kebutuhan teknologi dan konektivitas Anda</p>\r\n            \r\n            <div class=\"row\">\r\n                <!-- Internet Service -->\r\n                <div class=\"col-lg-6 mb-4\">\r\n                    <div class=\"card h-100 border-primary\">\r\n                        <div class=\"card-header bg-primary text-white\">\r\n                            <h4><i class=\"fas fa-wifi\"></i> Layanan Internet</h4>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <ul class=\"list-group list-group-flush\">\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-globe text-primary\"></i> Internet Dedicated</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-wifi text-primary\"></i> Wireless Internet</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-ethernet text-primary\"></i> Fiber Optik Internet</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-home text-primary\"></i> Internet Rumahan</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-building text-primary\"></i> Internet Bisnis/Kantor</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-users text-primary\"></i> Internet Corporate</li>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <!-- CCTV Service -->\r\n                <div class=\"col-lg-6 mb-4\">\r\n                    <div class=\"card h-100 border-info\">\r\n                        <div class=\"card-header bg-info text-white\">\r\n                            <h4><i class=\"fas fa-video\"></i> Layanan CCTV</h4>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <ul class=\"list-group list-group-flush\">\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-camera text-info\"></i> Instalasi CCTV Analog</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-video text-info\"></i> Instalasi CCTV Digital/IP</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-mobile-alt text-info\"></i> CCTV Remote Monitoring</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-cloud text-info\"></i> Cloud Storage CCTV</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-tools text-info\"></i> Maintenance CCTV</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-shield-alt text-info\"></i> Upgrade Sistem Keamanan</li>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <!-- Network Service -->\r\n                <div class=\"col-lg-6 mb-4\">\r\n                    <div class=\"card h-100 border-success\">\r\n                        <div class=\"card-header bg-success text-white\">\r\n                            <h4><i class=\"fas fa-network-wired\"></i> Layanan Jaringan</h4>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <ul class=\"list-group list-group-flush\">\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-project-diagram text-success\"></i> Desain & Instalasi LAN</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-server text-success\"></i> Setup Server & Database</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-router text-success\"></i> Konfigurasi Router & Switch</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-wifi text-success\"></i> Instalasi Wireless Network</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-shield-alt text-success\"></i> Network Security Setup</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-chart-line text-success\"></i> Network Monitoring</li>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <!-- Fiber Optic Service -->\r\n                <div class=\"col-lg-6 mb-4\">\r\n                    <div class=\"card h-100 border-warning\">\r\n                        <div class=\"card-header bg-warning text-dark\">\r\n                            <h4><i class=\"fas fa-fiber-optic\"></i> Layanan Fiber Optik</h4>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <ul class=\"list-group list-group-flush\">\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-road text-warning\"></i> Pemasangan Fiber Optik</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-plug text-warning\"></i> Terminasi & Splicing</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-search text-warning\"></i> Testing & Commissioning</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-wrench text-warning\"></i> Maintenance Fiber</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-exclamation-triangle text-warning\"></i> Troubleshooting Fiber</li>\r\n                                <li class=\"list-group-item\"><i class=\"fas fa-arrow-up text-warning\"></i> Upgrade Infrastruktur</li>\r\n                            </ul>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            \r\n            <!-- Technical Support -->\r\n            <div class=\"row mt-4\">\r\n                <div class=\"col-12\">\r\n                    <div class=\"card border-danger\">\r\n                        <div class=\"card-header bg-danger text-white\">\r\n                            <h4 class=\"text-center\"><i class=\"fas fa-headset\"></i> Layanan Teknis & Support</h4>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <div class=\"row\">\r\n                                <div class=\"col-md-6\">\r\n                                    <h5><i class=\"fas fa-bug text-danger\"></i> Troubleshooting</h5>\r\n                                    <ul>\r\n                                        <li>Diagnosa masalah jaringan</li>\r\n                                        <li>Perbaikan koneksi internet</li>\r\n                                        <li>Optimasi performa jaringan</li>\r\n                                        <li>Recovery data & sistem</li>\r\n                                    </ul>\r\n                                </div>\r\n                                <div class=\"col-md-6\">\r\n                                    <h5><i class=\"fas fa-tools text-danger\"></i> Maintenance</h5>\r\n                                    <ul>\r\n                                        <li>Maintenance berkala sistem</li>\r\n                                        <li>Update software & firmware</li>\r\n                                        <li>Monitoring performa 24/7</li>\r\n                                        <li>Backup & disaster recovery</li>\r\n                                    </ul>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            \r\n            <!-- Call to Action -->\r\n            <div class=\"text-center mt-5\">\r\n                <h3>Butuh Konsultasi?</h3>\r\n                <p class=\"lead\">Tim ahli kami siap membantu menentukan solusi terbaik untuk kebutuhan Anda</p>\r\n                <a href=\"/hubungi-kami\" class=\"btn btn-primary btn-lg mr-3\">\r\n                    <i class=\"fas fa-phone\"></i> Hubungi Kami\r\n                </a>\r\n                <a href=\"/paket-internet\" class=\"btn btn-outline-primary btn-lg\">\r\n                    <i class=\"fas fa-eye\"></i> Lihat Paket\r\n                </a>\r\n            </div>\r\n        </div>', NULL, 'Layanan lengkap RT RWNET: Internet dedicated, WiFi, CCTV, jaringan LAN, fiber optik, troubleshooting dan maintenance. Solusi terpercaya untuk kebutuhan teknologi Anda.', 'layanan internet, WiFi, CCTV, jaringan LAN, fiber optik, troubleshooting, maintenance, instalasi', 'published', NULL, 2, NULL, 0, 1, 1, '2025-06-07 10:41:51', '2025-06-07 11:03:31'),
(6, 'Paket Internet', 'paket-internet', '<div class=\"container\">\r\n    <div class=\"row mb-5\">\r\n        <div class=\"col-12 text-center\">\r\n            <h1 class=\"display-4 fw-bold text-primary mb-3\">Paket Internet RT RWNET</h1>\r\n            <p class=\"lead\">Pilih paket internet yang sesuai dengan kebutuhan Anda. Semua paket sudah termasuk instalasi gratis dan dukungan teknis 24/7.</p>\r\n        </div>\r\n    </div>\r\n    \r\n    <div class=\"row g-4 justify-content-center\">\r\n        <div class=\"col-lg-4 col-md-6 mb-4\">\r\n            <div class=\"card h-100 border-0 shadow-lg position-relative\" data-aos=\"fade-up\" data-aos-delay=\"0\">\r\n                \r\n                \r\n                <div class=\"card-header text-center bg-primary text-white py-4\">\r\n                    <h3 class=\"card-title h4 mb-0\">Internet 10Mbps</h3>\r\n                    <div class=\"display-6 fw-bold mt-2\">10M Mbps</div>\r\n                </div>\r\n                \r\n                <div class=\"card-body text-center py-4\">\r\n                    <div class=\"price-display mb-4\">\r\n                        <span class=\"h2 fw-bold text-primary\">Rp 200.000</span>\r\n                        <span class=\"text-muted\">/bulan</span>\r\n                    </div>\r\n                    \r\n                    <ul class=\"list-unstyled text-start\">\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Download:</strong> 11M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Upload:</strong> 11M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Unlimited Quota\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free Installation\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free WiFi Router\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            24/7 Support\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class=\"card-footer text-center bg-transparent border-0 pb-4\">\r\n                    <a href=\"/daftar\" target=\"_blank\" class=\"btn btn-primary btn-lg w-100\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-lg-4 col-md-6 mb-4\">\r\n            <div class=\"card h-100 border-0 shadow-lg position-relative\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                \r\n                \r\n                <div class=\"card-header text-center bg-info text-white py-4\">\r\n                    <h3 class=\"card-title h4 mb-0\">Internet 15Mbps</h3>\r\n                    <div class=\"display-6 fw-bold mt-2\">15M Mbps</div>\r\n                </div>\r\n                \r\n                <div class=\"card-body text-center py-4\">\r\n                    <div class=\"price-display mb-4\">\r\n                        <span class=\"h2 fw-bold text-info\">Rp 250.000</span>\r\n                        <span class=\"text-muted\">/bulan</span>\r\n                    </div>\r\n                    \r\n                    <ul class=\"list-unstyled text-start\">\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Download:</strong> 16M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Upload:</strong> 16M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Unlimited Quota\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free Installation\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free WiFi Router\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            24/7 Support\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class=\"card-footer text-center bg-transparent border-0 pb-4\">\r\n                    <a href=\"/daftar\" target=\"_blank\" class=\"btn btn-info btn-lg w-100\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-lg-4 col-md-6 mb-4\">\r\n            <div class=\"card h-100 border-0 shadow-lg position-relative border-warning\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                <div class=\"position-absolute top-0 start-50 translate-middle\">\r\n                    <span class=\"badge bg-warning text-dark px-3 py-2 rounded-pill\">\r\n                        <i class=\"fas fa-star me-1\"></i>POPULER\r\n                    </span>\r\n                </div>\r\n                \r\n                <div class=\"card-header text-center bg-success text-white py-4\">\r\n                    <h3 class=\"card-title h4 mb-0\">Internet 25Mbps</h3>\r\n                    <div class=\"display-6 fw-bold mt-2\">25M Mbps</div>\r\n                </div>\r\n                \r\n                <div class=\"card-body text-center py-4\">\r\n                    <div class=\"price-display mb-4\">\r\n                        <span class=\"h2 fw-bold text-success\">Rp 300.000</span>\r\n                        <span class=\"text-muted\">/bulan</span>\r\n                    </div>\r\n                    \r\n                    <ul class=\"list-unstyled text-start\">\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Download:</strong> 25M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Upload:</strong> 25M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Unlimited Quota\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free Installation\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free WiFi Router\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            24/7 Support\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class=\"card-footer text-center bg-transparent border-0 pb-4\">\r\n                    <a href=\"/daftar\" target=\"_blank\" class=\"btn btn-success btn-lg w-100\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-lg-4 col-md-6 mb-4\">\r\n            <div class=\"card h-100 border-0 shadow-lg position-relative\" data-aos=\"fade-up\" data-aos-delay=\"300\">\r\n                \r\n                \r\n                <div class=\"card-header text-center bg-warning text-white py-4\">\r\n                    <h3 class=\"card-title h4 mb-0\">Internet 35Mbps</h3>\r\n                    <div class=\"display-6 fw-bold mt-2\">35M Mbps</div>\r\n                </div>\r\n                \r\n                <div class=\"card-body text-center py-4\">\r\n                    <div class=\"price-display mb-4\">\r\n                        <span class=\"h2 fw-bold text-warning\">Rp 350.000</span>\r\n                        <span class=\"text-muted\">/bulan</span>\r\n                    </div>\r\n                    \r\n                    <ul class=\"list-unstyled text-start\">\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Download:</strong> 35M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Upload:</strong> 35M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Unlimited Quota\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free Installation\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free WiFi Router\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            24/7 Support\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class=\"card-footer text-center bg-transparent border-0 pb-4\">\r\n                    <a href=\"/daftar\" target=\"_blank\" class=\"btn btn-warning btn-lg w-100\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-lg-4 col-md-6 mb-4\">\r\n            <div class=\"card h-100 border-0 shadow-lg position-relative\" data-aos=\"fade-up\" data-aos-delay=\"400\">\r\n                \r\n                \r\n                <div class=\"card-header text-center bg-danger text-white py-4\">\r\n                    <h3 class=\"card-title h4 mb-0\">Priority Biz 35 1:1</h3>\r\n                    <div class=\"display-6 fw-bold mt-2\">35M Mbps</div>\r\n                </div>\r\n                \r\n                <div class=\"card-body text-center py-4\">\r\n                    <div class=\"price-display mb-4\">\r\n                        <span class=\"h2 fw-bold text-danger\">Rp 500.000</span>\r\n                        <span class=\"text-muted\">/bulan</span>\r\n                    </div>\r\n                    \r\n                    <ul class=\"list-unstyled text-start\">\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Download:</strong> 35M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Upload:</strong> 35M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Unlimited Quota\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free Installation\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free WiFi Router\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            24/7 Support\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class=\"card-footer text-center bg-transparent border-0 pb-4\">\r\n                    <a href=\"/daftar\" target=\"_blank\" class=\"btn btn-danger btn-lg w-100\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-lg-4 col-md-6 mb-4\">\r\n            <div class=\"card h-100 border-0 shadow-lg position-relative\" data-aos=\"fade-up\" data-aos-delay=\"500\">\r\n                \r\n                \r\n                <div class=\"card-header text-center bg-dark text-white py-4\">\r\n                    <h3 class=\"card-title h4 mb-0\"><font color=\"#000000\" style=\"background-color: rgb(255, 255, 0);\">Priority Biz 70 1:1</font></h3>\r\n                    <div class=\"display-6 fw-bold mt-2\">70M Mbps</div>\r\n                </div>\r\n                \r\n                <div class=\"card-body text-center py-4\">\r\n                    <div class=\"price-display mb-4\">\r\n                        <span class=\"h2 fw-bold text-dark\">Rp 750.000</span>\r\n                        <span class=\"text-muted\">/bulan</span>\r\n                    </div>\r\n                    \r\n                    <ul class=\"list-unstyled text-start\">\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Download:</strong> 70M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            <strong>Upload:</strong> 70M Mbps\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Unlimited Quota\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free Installation\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            Free WiFi Router\r\n                        </li>\r\n                        <li class=\"mb-2\">\r\n                            <i class=\"fas fa-check-circle text-success me-2\"></i>\r\n                            24/7 Support\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class=\"card-footer text-center bg-transparent border-0 pb-4\">\r\n                    <a href=\"/daftar\" target=\"_blank\" class=\"btn btn-dark btn-lg w-100\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    \r\n    <div class=\"row mt-5\">\r\n        <div class=\"col-12\">\r\n            <div class=\"alert alert-info border-start border-primary border-4\">\r\n                <h5 class=\"alert-heading\">\r\n                    <i class=\"fas fa-info-circle me-2\"></i>Informasi Penting\r\n                </h5>\r\n                <ul class=\"mb-0\">\r\n                    <li><strong>Area Layanan:</strong> RT/RW wilayah yang sudah terjangkau infrastruktur ASNet</li>\r\n                    <li><strong>Instalasi:</strong> Gratis untuk pelanggan baru (syarat dan ketentuan berlaku)</li>\r\n                    <li><strong>Pembayaran:</strong> Bulanan, dapat dibayar via transfer bank atau e-wallet</li>\r\n                    <li><strong>Dukungan Teknis:</strong> Tim technical support siap membantu 24/7</li>\r\n                    <li><strong>Fair Usage Policy:</strong> Berlaku untuk memastikan kualitas layanan optimal</li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    \r\n    <div class=\"row mt-4\">\r\n        <div class=\"col-md-6\">\r\n            <div class=\"card border-0 bg-light\">\r\n                <div class=\"card-body text-center\">\r\n                    <i class=\"fas fa-headset text-primary fa-3x mb-3\"></i>\r\n                    <h5>Butuh Konsultasi?</h5>\r\n                    <p class=\"text-muted\">Tim kami siap membantu memilih paket yang tepat untuk kebutuhan Anda</p>\r\n                    <a href=\"https://wa.me/6285230499937?text=Halo, saya ingin konsultasi paket internet yang sesuai kebutuhan saya\" target=\"_blank\" class=\"btn btn-outline-primary\">\r\n                        <i class=\"fas fa-user-plus me-2\"></i>Chat WhatsApp\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=\"col-md-6\">\r\n            <div class=\"card border-0 bg-light\">\r\n                <div class=\"card-body text-center\">\r\n                    <i class=\"fas fa-map-marker-alt text-success fa-3x mb-3\"></i>\r\n                    <h5>Cek Area Layanan</h5>\r\n                    <p class=\"text-muted\">Pastikan lokasi Anda sudah terjangkau layanan RT RWNET</p>\r\n                    <a href=\"/halaman/area-layanan\" class=\"btn btn-outline-success\">\r\n                        <i class=\"fas fa-search me-2\"></i>Cek Coverage\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n\r\n<style>\r\n.card {\r\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\r\n}\r\n\r\n.card:hover {\r\n    transform: translateY(-5px);\r\n    box-shadow: 0 15px 35px rgba(0,0,0,0.1);\r\n}\r\n\r\n.price-display {\r\n    padding: 1rem;\r\n    background: rgba(0,0,0,0.05);\r\n    border-radius: 0.5rem;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n    .display-4 {\r\n        font-size: 2rem;\r\n    }\r\n    .display-6 {\r\n        font-size: 1.5rem;\r\n    }\r\n}\r\n</style>', NULL, 'Paket internet RT RWNET dengan harga terjangkau dan kualitas terbaik. Berbagai pilihan kecepatan untuk rumah, kantor, dan bisnis. Bergaransi dan dukungan 24/7.', 'paket internet, harga internet, internet murah, internet berkualitas, paket rumahan, paket bisnis', 'published', 1, 3, NULL, 0, 1, 1, '2025-06-07 10:41:51', '2025-06-11 08:22:44'),
(7, 'Hubungi Kami', 'hubungi-kami', '\r\n<div class=\"container-fluid\">\r\n    <div class=\"hero-section text-center py-5 mb-5\" style=\"background: linear-gradient(135deg, #2c5aa0 0%, #1e40af 100%); color: white; border-radius: 15px;\">\r\n        <h1 class=\"display-4 fw-bold mb-3\">Tentang PT. EKO GLOBAL TECHNO</h1>\r\n        <p class=\"lead\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n    </div>\r\n\r\n    <div class=\"row\">\r\n        <div class=\"col-lg-8\">\r\n            <div class=\"card mb-4\">\r\n                <div class=\"card-header bg-primary text-white\">\r\n                    <h3><i class=\"fas fa-building me-2\"></i>Profil Perusahaan</h3>\r\n                </div>\r\n                <div class=\"card-body\">\r\n                    <h4>Sejarah dan Visi</h4>\r\n                    <p>\r\n                        PT. EKO GLOBAL TECHNO adalah penyedia layanan internet yang berkomitmen memberikan koneksi internet \r\n                        berkualitas tinggi untuk mendukung kebutuhan digital masyarakat. Dengan pengalaman dan teknologi terdepan, \r\n                        kami melayani berbagai segmen mulai dari rumah tangga hingga perkantoran.\r\n                    </p>\r\n                    \r\n                    <h4>Misi Kami</h4>\r\n                    <ul>\r\n                        <li>Menyediakan layanan internet yang stabil dan berkualitas tinggi</li>\r\n                        <li>Memberikan pelayanan customer service yang responsif 24/7</li>\r\n                        <li>Menggunakan teknologi terdepan untuk kepuasan pelanggan</li>\r\n                        <li>Berkontribusi dalam percepatan digitalisasi masyarakat</li>\r\n                        <li>Membangun infrastruktur jaringan yang handal dan luas</li>\r\n                    </ul>\r\n\r\n                    <h4>Keunggulan Layanan</h4>\r\n                    <div class=\"row\">\r\n                        <div class=\"col-md-6\">\r\n                            <div class=\"mb-3\">\r\n                                <i class=\"fas fa-wifi text-primary me-2\"></i>\r\n                                <strong>Koneksi Stabil</strong><br>\r\n                                <small>Jaringan fiber optik dengan uptime 99.9%</small>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"col-md-6\">\r\n                            <div class=\"mb-3\">\r\n                                <i class=\"fas fa-headset text-primary me-2\"></i>\r\n                                <strong>Support 24/7</strong><br>\r\n                                <small>Tim teknis siap membantu kapan saja</small>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"col-md-6\">\r\n                            <div class=\"mb-3\">\r\n                                <i class=\"fas fa-shield-alt text-primary me-2\"></i>\r\n                                <strong>Keamanan Terjamin</strong><br>\r\n                                <small>Sistem keamanan berlapis untuk melindungi data</small>\r\n                            </div>\r\n                        </div>\r\n                        <div class=\"col-md-6\">\r\n                            <div class=\"mb-3\">\r\n                                <i class=\"fas fa-dollar-sign text-primary me-2\"></i>\r\n                                <strong>Harga Kompetitif</strong><br>\r\n                                <small>Paket internet dengan harga terjangkau</small>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"card\">\r\n                <div class=\"card-header bg-success text-white\">\r\n                    <h3><i class=\"fas fa-network-wired me-2\"></i>Teknologi & Infrastruktur</h3>\r\n                </div>\r\n                <div class=\"card-body\">\r\n                    <p>\r\n                        Kami menggunakan teknologi fiber optik terdepan yang memungkinkan transfer data dengan kecepatan tinggi \r\n                        dan latensi rendah. Infrastruktur jaringan kami didukung oleh:\r\n                    </p>\r\n                    <ul>\r\n                        <li>Backbone fiber optik berkecepatan tinggi</li>\r\n                        <li>Perangkat networking enterprise grade</li>\r\n                        <li>Sistem monitoring jaringan real-time</li>\r\n                        <li>Redundansi koneksi untuk keandalan maksimal</li>\r\n                        <li>Data center dengan standar internasional</li>\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"col-lg-4\">\r\n            <div class=\"card mb-4\">\r\n                <div class=\"card-header bg-info text-white\">\r\n                    <h5><i class=\"fas fa-map-marker-alt me-2\"></i>Informasi Kontak</h5>\r\n                </div>\r\n                <div class=\"card-body\">\r\n                    <div class=\"mb-3\">\r\n                        <strong><i class=\"fas fa-building me-2 text-primary\"></i>Alamat Kantor:</strong><br>\r\n                        Kp.Gadog RT 03/03 Desa Gadog\r\n                    </div>\r\n                    \r\n                    <div class=\"mb-3\">\r\n                        <strong><i class=\"fas fa-phone me-2 text-primary\"></i>Telepon:</strong><br>\r\n                        <a href=\"tel:08988409756\" class=\"text-decoration-none\">\r\n                            08988409756\r\n                        </a>\r\n                    </div>\r\n                    \r\n                    <div class=\"mb-3\">\r\n                        <strong><i class=\"fas fa-envelope me-2 text-primary\"></i>Email:</strong><br>\r\n                        <a href=\"mailto:admin@eglobaltech.id\" class=\"text-decoration-none\">\r\n                            admin@eglobaltech.id\r\n                        </a>\r\n                    </div>\r\n                    \r\n                    \r\n                    <div class=\"mb-3\">\r\n                        <strong><i class=\"fab fa-whatsapp me-2 text-success\"></i>WhatsApp:</strong><br>\r\n                        <a href=\"https://wa.me/081399909101\" target=\"_blank\" class=\"btn btn-success btn-sm\">\r\n                            <i class=\"fab fa-whatsapp me-1\"></i>081399909101\r\n                        </a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            <div class=\"card\">\r\n                <div class=\"card-header bg-warning text-dark\">\r\n                    <h5><i class=\"fas fa-clock me-2\"></i>Jam Operasional</h5>\r\n                </div>\r\n                <div class=\"card-body\">\r\n                    <div class=\"row\">\r\n                        <div class=\"col-12 mb-2\">\r\n                            <strong>Senin - Jumat:</strong><br>\r\n                            08:00 - 17:00 WIB\r\n                        </div>\r\n                        <div class=\"col-12 mb-2\">\r\n                            <strong>Sabtu:</strong><br>\r\n                            08:00 - 15:00 WIB\r\n                        </div>\r\n                        <div class=\"col-12 mb-2\">\r\n                            <strong>Minggu:</strong><br>\r\n                            08:00 - 12:00 WIB\r\n                        </div>\r\n                    </div>\r\n                    <hr>\r\n                    <div class=\"alert alert-info mb-0\">\r\n                        <small>\r\n                            <i class=\"fas fa-info-circle me-1\"></i>\r\n                            <strong>Customer Support 24/7</strong><br>\r\n                            Untuk bantuan teknis darurat, hubungi kami kapan saja melalui WhatsApp.\r\n                        </small>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"text-center mt-5\">\r\n        <div class=\"card bg-light\">\r\n            <div class=\"card-body\">\r\n                <h3>Bergabunglah dengan Ribuan Pelanggan Puas</h3>\r\n                <p class=\"lead\">Rasakan pengalaman internet berkualitas tinggi bersama PT. EKO GLOBAL TECHNO</p>\r\n                <a href=\"/daftar\" class=\"btn btn-primary btn-lg me-3\">\r\n                    <i class=\"fas fa-user-plus me-2\"></i>Daftar Sekarang\r\n                </a>\r\n                <a href=\"/paket-internet\" class=\"btn btn-outline-primary btn-lg\">\r\n                    <i class=\"fas fa-eye me-2\"></i>Lihat Paket\r\n                </a>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>', NULL, 'Tentang PT. EKO GLOBAL TECHNO - Penyedia layanan internet berkualitas tinggi dengan teknologi fiber optik, pelayanan 24/7, dan harga kompetitif.', 'tentang pt. eko global techno, profil perusahaan, internet provider, fiber optik, layanan internet', 'published', NULL, 4, NULL, 0, 1, 1, '2025-06-07 10:41:51', '2025-06-11 08:57:41');
INSERT INTO `halamen` (`id`, `judul`, `slug`, `konten`, `gambar_featured`, `meta_description`, `meta_keywords`, `status`, `kategori_id`, `urutan`, `template`, `show_in_menu`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(8, 'Area Layanan', 'area-layanan', '\r\n        <div class=\"container-fluid\">\r\n            <h2 class=\"text-center mb-4\">Area Layanan RT RWNET</h2>\r\n            <p class=\"lead text-center mb-5\">Kami melayani berbagai wilayah dengan infrastruktur fiber optik terbaik</p>\r\n            \r\n            <div class=\"row\">\r\n                <div class=\"col-lg-8\">\r\n                    <div class=\"card\">\r\n                        <div class=\"card-header bg-primary text-white\">\r\n                            <h4><i class=\"fas fa-map\"></i> Peta Coverage</h4>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <div class=\"alert alert-info\">\r\n                                <i class=\"fas fa-info-circle\"></i>\r\n                                <strong>Informasi:</strong> Area coverage terus berkembang. \r\n                                Hubungi kami untuk cek ketersediaan di lokasi Anda.\r\n                            </div>\r\n                            \r\n                            <!-- Placeholder untuk peta -->\r\n                            <div class=\"bg-light text-center p-5 rounded\">\r\n                                <i class=\"fas fa-map fa-4x text-muted mb-3\"></i>\r\n                                <h5 class=\"text-muted\">Peta Coverage Area</h5>\r\n                                <p class=\"text-muted\">Interactive map will be integrated here</p>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <div class=\"col-lg-4\">\r\n                    <div class=\"card\">\r\n                        <div class=\"card-header bg-success text-white\">\r\n                            <h5><i class=\"fas fa-check-circle\"></i> Area Terlayani</h5>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <div class=\"mb-3\">\r\n                                <h6>Kota A</h6>\r\n                                <ul class=\"list-unstyled\">\r\n                                    <li><i class=\"fas fa-wifi text-success\"></i> Kelurahan 1</li>\r\n                                    <li><i class=\"fas fa-wifi text-success\"></i> Kelurahan 2</li>\r\n                                    <li><i class=\"fas fa-wifi text-success\"></i> Kelurahan 3</li>\r\n                                </ul>\r\n                            </div>\r\n                            \r\n                            <div class=\"mb-3\">\r\n                                <h6>Kota B</h6>\r\n                                <ul class=\"list-unstyled\">\r\n                                    <li><i class=\"fas fa-wifi text-success\"></i> Kelurahan 1</li>\r\n                                    <li><i class=\"fas fa-wifi text-success\"></i> Kelurahan 2</li>\r\n                                </ul>\r\n                            </div>\r\n                            \r\n                            <div class=\"mb-3\">\r\n                                <h6>Kota C</h6>\r\n                                <ul class=\"list-unstyled\">\r\n                                    <li><i class=\"fas fa-construction text-warning\"></i> Dalam Pembangunan</li>\r\n                                </ul>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    \r\n                    <div class=\"card mt-3\">\r\n                        <div class=\"card-header bg-info text-white\">\r\n                            <h5><i class=\"fas fa-search\"></i> Cek Coverage</h5>\r\n                        </div>\r\n                        <div class=\"card-body\">\r\n                            <form>\r\n                                <div class=\"mb-3\">\r\n                                    <label class=\"form-label\">Alamat Lengkap</label>\r\n                                    <textarea class=\"form-control\" rows=\"3\" placeholder=\"Masukkan alamat lengkap...\"></textarea>\r\n                                </div>\r\n                                <button type=\"submit\" class=\"btn btn-info w-100\">\r\n                                    <i class=\"fas fa-search\"></i> Cek Coverage\r\n                                </button>\r\n                            </form>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            \r\n            <!-- Infrastruktur -->\r\n            <div class=\"row mt-4\">\r\n                <div class=\"col-12\">\r\n                    <h3 class=\"mb-4\">Infrastruktur Jaringan</h3>\r\n                </div>\r\n                \r\n                <div class=\"col-md-4 mb-4\">\r\n                    <div class=\"card text-center border-primary\">\r\n                        <div class=\"card-body\">\r\n                            <i class=\"fas fa-server fa-3x text-primary mb-3\"></i>\r\n                            <h5>Data Center</h5>\r\n                            <p>Tier-3 data center dengan backup power dan cooling system</p>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <div class=\"col-md-4 mb-4\">\r\n                    <div class=\"card text-center border-success\">\r\n                        <div class=\"card-body\">\r\n                            <i class=\"fas fa-project-diagram fa-3x text-success mb-3\"></i>\r\n                            <h5>Backbone Network</h5>\r\n                            <p>Redundant fiber optik dengan multiple upstream providers</p>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <div class=\"col-md-4 mb-4\">\r\n                    <div class=\"card text-center border-info\">\r\n                        <div class=\"card-body\">\r\n                            <i class=\"fas fa-broadcast-tower fa-3x text-info mb-3\"></i>\r\n                            <h5>Last Mile</h5>\r\n                            <p>Fiber to the home (FTTH) dan wireless point-to-point</p>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            \r\n            <!-- Call to Action -->\r\n            <div class=\"text-center mt-5\">\r\n                <div class=\"card bg-light\">\r\n                    <div class=\"card-body\">\r\n                        <h3>Area Anda Belum Terlayani?</h3>\r\n                        <p class=\"lead\">Daftarkan lokasi Anda untuk mendapat prioritas expansion</p>\r\n                        <a href=\"/hubungi-kami\" class=\"btn btn-primary btn-lg\">\r\n                            <i class=\"fas fa-plus\"></i> Request Coverage Area\r\n                        </a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>', NULL, 'Area layanan RT RWNET meliputi berbagai wilayah dengan infrastruktur fiber optik terbaik. Cek ketersediaan layanan di area Anda dan nikmati internet berkualitas tinggi.', 'area layanan, coverage, wilayah RT RWNET, infrastruktur fiber optik', 'published', NULL, 5, NULL, 0, 1, 1, '2025-06-07 10:41:51', '2025-06-07 11:03:31'),
(9, 'Kebijakan Privasi', 'kebijakan-privasi', '<div class=\"container\">\r\n    <div class=\"text-center py-5 mb-5\" style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-radius: 15px;\">\r\n        <h1 class=\"display-4 fw-bold\">🛡️ Kebijakan Privasi</h1>\r\n        <p class=\"lead\">Kami berkomitmen melindungi informasi pribadi Anda dengan standar keamanan terbaik</p>\r\n        <span class=\"badge bg-light text-dark px-3 py-2\">📅 Terakhir diperbarui: 10 June 2025</span>\r\n    </div><br><div class=\"max-w-4xl mx-auto px-4 py-8 bg-white shadow-md rounded-xl\">\r\n    <h1 class=\"text-2xl font-bold text-indigo-700 mb-4\">Kebijakan Privasi &amp; Ketentuan Penggunaan</h1>\r\n\r\n    <p class=\"mb-4\">\r\n        Aplikasi <strong>Customer Portal</strong> milik <strong>PT. Eko Global Techno</strong> dirancang untuk memudahkan pelanggan dalam mengakses informasi layanan internet seperti status koneksi, tagihan, kecepatan, dan pengaduan gangguan. Dengan menggunakan aplikasi ini, Anda menyetujui kebijakan berikut:\r\n    </p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">1. Data yang Kami Kumpulkan</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Nama, nomor WhatsApp, alamat, nomor layanan internet</li>\r\n        <li>Status koneksi, kecepatan download/upload</li>\r\n        <li>Informasi tagihan dan riwayat pembayaran</li>\r\n        <li>Detail laporan gangguan dan status penanganan</li>\r\n        <li>Log aktivitas login dan interaksi di aplikasi</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">2. Penggunaan Data</h2>\r\n    <p class=\"mb-4\">Data digunakan untuk menampilkan informasi layanan, pengingat tagihan, penanganan gangguan, dukungan pelanggan, dan pengembangan fitur aplikasi.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">3. Keamanan Data</h2>\r\n    <p class=\"mb-4\">Data disimpan dengan sistem terenkripsi, akses terbatas, dan autentikasi berbasis nomor WhatsApp.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">4. Berbagi Data</h2>\r\n    <p class=\"mb-4\">Kami tidak menjual atau membagikan data Anda ke pihak ketiga kecuali diwajibkan hukum atau untuk operasional layanan seperti pembayaran dan notifikasi.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">5. Hak Pengguna</h2>\r\n    <p class=\"mb-4\">Anda berhak mengakses, memperbarui, atau menghapus data pribadi. Hubungi kami melalui fitur customer service.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">6. Ketentuan Penggunaan</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Gunakan aplikasi untuk keperluan pribadi sesuai layanan yang aktif</li>\r\n        <li>Dilarang menyalahgunakan fitur aplikasi untuk merusak sistem atau layanan</li>\r\n        <li>Akun dapat dinonaktifkan jika terjadi pelanggaran atau tunggakan pembayaran</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">7. Notifikasi</h2>\r\n    <p class=\"mb-4\">Aplikasi mengirimkan notifikasi via WhatsApp dan push notification untuk pengingat tagihan, status gangguan, dan informasi layanan lainnya.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">8. Perubahan Kebijakan</h2>\r\n    <p class=\"mb-4\">Perubahan kebijakan akan diumumkan melalui aplikasi atau WhatsApp pelanggan.<br><br><br></p><ul class=\"list-disc pl-6 mb-4\">\r\n    </ul>\r\n<div class=\"max-w-4xl mx-auto px-4 py-8 bg-white shadow-md rounded-xl\">\r\n    <h1 class=\"text-2xl font-bold text-indigo-700 mb-4\">Syarat dan Ketentuan Penggunaan</h1>\r\n\r\n    <p class=\"mb-4\">\r\n        Dengan menggunakan aplikasi <strong>Customer Portal</strong> milik <strong>PT. Eko Global Techno</strong>, Anda menyetujui dan terikat pada syarat dan ketentuan berikut:\r\n    </p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">1. Penggunaan Layanan</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Memberikan informasi yang benar, lengkap, dan terbaru saat menggunakan aplikasi.</li>\r\n        <li>Tidak menggunakan layanan ini untuk aktivitas ilegal atau melanggar hukum.</li>\r\n        <li>Tidak melakukan tindakan yang dapat mengganggu sistem, server, atau jaringan layanan.</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">2. Akun Pelanggan</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Anda bertanggung jawab penuh atas keamanan akun Anda, termasuk informasi login dan kata sandi.</li>\r\n        <li>Setiap aktivitas yang terjadi melalui akun Anda adalah tanggung jawab pribadi Anda.</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">3. Akses dan Koneksi</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Aplikasi menampilkan data koneksi secara real-time berdasarkan sistem internal penyedia layanan.</li>\r\n        <li>Status layanan (aktif/nonaktif) bergantung pada status pembayaran dan kebijakan dari ISP.</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">4. Pembayaran</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Pembayaran dilakukan melalui saluran resmi yang tersedia di dalam aplikasi.</li>\r\n        <li>Keterlambatan atau kegagalan dalam melakukan pembayaran dapat menyebabkan penangguhan layanan sementara hingga pembayaran dilakukan.</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mt-6 mb-2\">5. Perubahan dan Pemutusan Layanan</h2>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>PT. Eko Global Techno berhak untuk mengubah, menghentikan, atau menyesuaikan layanan sesuai kebijakan internal.</li>\r\n        <li>Pelanggan akan diberitahu sebelumnya jika ada perubahan besar yang memengaruhi penggunaan layanan.</li></ul>\r\n</div>\r\n\r\n    <p class=\"text-sm text-gray-500\">Tanggal Berlaku: 11 Juni 2025</p></div><div class=\"row\">\r\n        <div class=\"col-12\">\r\n            <h2 class=\"text-primary border-bottom pb-2 mb-4\">\r\n                <i class=\"fas fa-shield-alt me-2\"><br><br><br></i></h2></div></div><div class=\"text-center py-4 bg-light rounded\"><h5 class=\"text-primary mb-3\">🏢 PT. EKO GLOBAL TECHNO</h5>\r\n        <p class=\"text-muted mb-2\">\r\n            <i class=\"fas fa-map-marker-alt me-2\"></i>\r\n            Kp.Gadog RT 03/03 Desa Gadog\r\n        </p>\r\n        <p class=\"text-muted mb-3\">\r\n            <i class=\"fas fa-certificate me-2\"></i>\r\n            Bersertifikat: ISO 27001 | GDPR Compliant | SOC 2 Type II\r\n        </p>\r\n        <p class=\"text-muted small\">\r\n            © 2025 PT. EKO GLOBAL TECHNO. Hak cipta dilindungi undang-undang.\r\n            <br>\r\n            Dokumen terakhir diperbarui: 10 June 2025\r\n        </p>\r\n    </div>\r\n</div>\r\n\r\n<style>\r\n.card { transition: transform 0.2s ease-in-out; }\r\n.card:hover { transform: translateY(-2px); }\r\n</style>', NULL, 'Kebijakan Privasi PT. EKO GLOBAL TECHNO - Perlindungan data untuk layanan IT, WiFi, dan Programming. Keamanan informasi pribadi Anda adalah prioritas kami.', 'kebijakan privasi, perlindungan data, keamanan informasi, IT services, wifi internet, programming, pt. eko global techno', 'published', 1, 10, NULL, 1, 1, 1, '2025-06-10 06:16:16', '2025-06-11 08:12:58'),
(10, 'Syarat & Ketentuan', 'syarat-ketentuan', '<div class=\"max-w-5xl mx-auto px-4 py-8 bg-white shadow-md rounded-xl leading-relaxed text-gray-800\">\r\n    <h1 class=\"text-2xl font-bold text-indigo-700 mb-6\">Syarat &amp; Ketentuan Layanan Pelanggan Internet</h1>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">1. Pendaftaran Pelanggan</h2>\r\n    <p>1.1 Pelanggan wajib mengisi data yang benar saat mendaftar, termasuk:</p>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Nama lengkap</li>\r\n        <li>Nomor HP aktif</li>\r\n        <li>Alamat pemasangan</li>\r\n        <li>Jenis layanan dan paket yang dipilih</li>\r\n    </ul>\r\n    <p>1.2 Setelah data diverifikasi, teknisi kami akan melakukan survei lokasi (jika diperlukan) dan menjadwalkan pemasangan.</p>\r\n    <p class=\"mb-4\">1.3 Pelanggan wajib melakukan pembayaran biaya pemasangan dan/atau tagihan pertama sebelum layanan diaktifkan, sesuai ketentuan paket.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">2. Aktivasi dan Masa Berlangganan</h2>\r\n    <p>2.1 Setelah aktivasi, pelanggan akan mendapatkan akses ke layanan internet sesuai dengan paket yang dipilih.</p>\r\n    <p>2.2 Sistem kami menggunakan metode:</p>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li><strong>Prabayar:</strong> Layanan aktif setelah pembayaran dilakukan. Tidak membayar = layanan terputus otomatis.</li>\r\n        <li><strong>Pascabayar:</strong> Tagihan muncul setiap akhir periode (misalnya bulanan) dan wajib dibayar sebelum jatuh tempo.</li>\r\n    </ul>\r\n    <p>2.3 Pelanggan wajib menjaga kerahasiaan akun, termasuk username dan password WiFi.</p>\r\n    <p class=\"mb-4\">2.4 Pelanggan bertanggung jawab penuh atas semua aktivitas yang dilakukan melalui koneksi internet miliknya.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">3. Pembayaran dan Tagihan</h2>\r\n    <p>3.1 Tagihan akan muncul secara otomatis di aplikasi Customer Portal dan dapat dibayar melalui metode yang disediakan.</p>\r\n    <p>3.2 Keterlambatan pembayaran dapat menyebabkan:</p>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Pemutusan sementara koneksi internet</li>\r\n        <li>Biaya denda keterlambatan (jika diberlakukan)</li>\r\n    </ul>\r\n    <p class=\"mb-4\">3.3 Jika tagihan tidak dibayar dalam waktu maksimal 30 hari sejak jatuh tempo, akun dapat dinonaktifkan permanen.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">4. Larangan dan Etika Penggunaan</h2>\r\n    <p>4.1 Pelanggan dilarang menggunakan layanan untuk:</p>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Kegiatan ilegal (hacking, penipuan, penyebaran malware, dll.)</li>\r\n        <li>Mengakses konten terlarang (pornografi, kekerasan ekstrem, dll.)</li>\r\n        <li>Menyebarkan spam, phishing, atau aktivitas yang merugikan pihak lain</li>\r\n    </ul>\r\n    <p class=\"mb-4\">4.2 Pelanggaran terhadap ketentuan ini dapat mengakibatkan pemutusan layanan tanpa pengembalian dana dan pelaporan ke pihak berwenang sesuai hukum yang berlaku.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">5. Pemeliharaan dan Gangguan</h2>\r\n    <p>5.1 Kami akan melakukan pemeliharaan jaringan secara rutin demi menjaga kualitas layanan.</p>\r\n    <p>5.2 Gangguan teknis dapat terjadi sewaktu-waktu dan kami akan berupaya menyelesaikannya secepat mungkin.</p>\r\n    <p class=\"mb-4\">5.3 Kompensasi akan dipertimbangkan hanya jika gangguan berlangsung lebih dari 24 jam berturut-turut tanpa pemberitahuan resmi.</p>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">6. Penghentian Layanan</h2>\r\n    <p>6.1 Pelanggan dapat berhenti berlangganan kapan saja dengan menghubungi admin atau melalui fitur di aplikasi.</p>\r\n    <p>6.2 Perangkat milik ISP (seperti ONT, router, atau alat lainnya) wajib dikembalikan dalam kondisi baik.</p>\r\n    <p>6.3 Jika perangkat tidak dikembalikan atau mengalami kerusakan, pelanggan wajib mengganti sesuai nilai perangkat tersebut.</p>\r\n    <p class=\"mb-4\">6.4 Setelah layanan dihentikan:</p>\r\n    <ul class=\"list-disc pl-6 mb-4\">\r\n        <li>Akses akun akan dibekukan</li>\r\n        <li>Riwayat pembayaran akan disimpan hingga 6 bulan</li>\r\n        <li>Tagihan tertunggak tetap menjadi tanggung jawab pelanggan</li>\r\n    </ul>\r\n\r\n    <h2 class=\"text-xl font-semibold text-indigo-600 mb-2\">7. Perubahan Syarat dan Ketentuan</h2>\r\n    <p>Kami berhak melakukan perubahan terhadap syarat &amp; ketentuan ini sewaktu-waktu. Perubahan akan diinformasikan melalui aplikasi, WhatsApp, atau email.</p>\r\n\r\n    <p class=\"text-sm text-gray-500 mt-6\">Tanggal Berlaku: 11 Juni 2025</p>\r\n</div>', NULL, NULL, NULL, 'published', NULL, 0, NULL, 0, 1, NULL, '2025-06-11 07:38:58', '2025-06-11 07:38:58');

-- --------------------------------------------------------

--
-- Table structure for table `homepages`
--

CREATE TABLE `homepages` (
  `id` bigint UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `iklan`
--

CREATE TABLE `iklan` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_iklan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `gambar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `content` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `status` enum('publish','draft') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'draft',
  `tanggal_berakhir` date NOT NULL,
  `kecepatan_slide` int NOT NULL DEFAULT '5',
  `link` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `iklan`
--

INSERT INTO `iklan` (`id`, `nama_iklan`, `gambar`, `content`, `status`, `tanggal_berakhir`, `kecepatan_slide`, `link`, `slug`, `created_at`, `updated_at`) VALUES
(8, 'PROMO DISKON PEMBAYARAN', 'iklan/1750247979_bbmcNWw1RO.jpg', '<p>aa</p>', 'publish', '2025-06-28', 5, 'http://localhost:8000/iklan/promo-diskon-pembayaran', 'promo-diskon-pembayaran', '2025-06-18 11:59:40', '2025-06-18 12:05:35'),
(9, 'PROMO DISKON PENDAFTARAN', 'iklan/1750248004_QFA1x06bX9.jpg', '<p>aa</p>', 'publish', '2025-06-21', 5, 'http://localhost:8000/iklan/promo-diskon-pendaftaran', 'promo-diskon-pendaftaran', '2025-06-18 12:00:04', '2025-06-18 12:05:30'),
(10, 'Promo Internet 50 Mbps - Hemat 50%', 'https://picsum.photos/800/400?random=1', 'Dapatkan paket internet super cepat 50 Mbps dengan harga spesial! Cocok untuk streaming, gaming, dan work from home. Promo terbatas hanya bulan ini.', 'publish', '2025-07-18', 8, 'http://localhost:8000/iklan/promo-internet-50-mbps-hemat-50', 'promo-internet-50-mbps-hemat-50', '2025-06-18 12:03:01', '2025-06-18 12:10:39'),
(11, 'Upgrade Gratis ke 100 Mbps', 'https://picsum.photos/800/400?random=2', 'Pelanggan setia! Upgrade paket Anda ke 100 Mbps tanpa biaya tambahan. Nikmati internet super kencang untuk semua kebutuhan digital Anda.', 'publish', '2025-07-03', 8, 'http://localhost:8000/iklan/upgrade-gratis-ke-100-mbps', 'upgrade-gratis-ke-100-mbps', '2025-06-18 12:03:01', '2025-06-18 12:10:39'),
(12, 'Cashback 200rb untuk Referral', 'https://picsum.photos/800/400?random=3', 'Ajak teman berlangganan dan dapatkan cashback Rp 200.000! Semakin banyak teman yang bergabung, semakin besar keuntungan Anda.', 'publish', '2025-08-02', 8, 'http://localhost:8000/iklan/cashback-200rb-untuk-referral', 'cashback-200rb-untuk-referral', '2025-06-18 12:03:01', '2025-06-18 12:10:39');

-- --------------------------------------------------------

--
-- Table structure for table `invoices`
--

CREATE TABLE `invoices` (
  `id` bigint UNSIGNED NOT NULL,
  `nomor_invoice` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `pelanggan_id` bigint UNSIGNED NOT NULL,
  `payment_id` bigint UNSIGNED DEFAULT NULL,
  `template_invoice_id` bigint UNSIGNED DEFAULT NULL,
  `tanggal_invoice` date NOT NULL,
  `tanggal_jatuh_tempo` date NOT NULL,
  `periode_tagihan` enum('bulanan','triwulan','semester','tahunan') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'bulanan',
  `periode_dari` date NOT NULL,
  `periode_sampai` date NOT NULL,
  `subtotal` decimal(15,2) NOT NULL DEFAULT '0.00',
  `biaya_instalasi` decimal(15,2) NOT NULL DEFAULT '0.00',
  `diskon` decimal(15,2) NOT NULL DEFAULT '0.00',
  `ppn_persen` decimal(5,2) NOT NULL DEFAULT '0.00',
  `ppn_amount` decimal(15,2) NOT NULL DEFAULT '0.00',
  `total_amount` decimal(15,2) NOT NULL DEFAULT '0.00',
  `is_prorate` tinyint(1) NOT NULL DEFAULT '0',
  `prorate_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `status` enum('pending','draft','sent','paid','overdue','cancelled') COLLATE utf8mb4_unicode_ci DEFAULT 'pending',
  `status_pembayaran` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'belum_bayar',
  `payment_link` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `payment_gateway` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `auto_payment` tinyint(1) NOT NULL DEFAULT '0',
  `payment_due_date` timestamp NULL DEFAULT NULL,
  `tanggal_bayar` timestamp NULL DEFAULT NULL,
  `tanggal_pembayaran` timestamp NULL DEFAULT NULL,
  `metode_pembayaran` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `metode_pembayaran_temp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `jumlah_transfer` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `tanggal_transfer` date DEFAULT NULL,
  `nama_pengirim` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `catatan_pembayaran` text COLLATE utf8mb4_unicode_ci,
  `bukti_transfer` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `invoice_html` longtext COLLATE utf8mb4_unicode_ci,
  `file_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_by` bigint UNSIGNED NOT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `invoices`
--

INSERT INTO `invoices` (`id`, `nomor_invoice`, `pelanggan_id`, `payment_id`, `template_invoice_id`, `tanggal_invoice`, `tanggal_jatuh_tempo`, `periode_tagihan`, `periode_dari`, `periode_sampai`, `subtotal`, `biaya_instalasi`, `diskon`, `ppn_persen`, `ppn_amount`, `total_amount`, `is_prorate`, `prorate_info`, `status`, `status_pembayaran`, `payment_link`, `payment_gateway`, `auto_payment`, `payment_due_date`, `tanggal_bayar`, `tanggal_pembayaran`, `metode_pembayaran`, `metode_pembayaran_temp`, `jumlah_transfer`, `tanggal_transfer`, `nama_pengirim`, `catatan_pembayaran`, `bukti_transfer`, `invoice_html`, `file_path`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(155, 'INV-202506160001', 268, 26, NULL, '2025-05-16', '2025-06-06', 'bulanan', '2025-05-16', '2025-06-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'lunas', NULL, NULL, 0, NULL, '2025-06-16 16:39:27', '2025-06-16 16:39:27', 'midtrans', NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506160001</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506160001</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>16/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081808496470</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-16 16:06:50', '2025-06-18 15:07:14'),
(156, 'INV-202506170001', 268, 27, NULL, '2025-05-17', '2025-06-06', 'bulanan', '2025-05-16', '2025-06-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'lunas', NULL, NULL, 0, NULL, '2025-06-16 17:06:47', '2025-06-16 17:06:47', 'midtrans', NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506170001</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506170001</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>17/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-16 17:00:30', '2025-06-18 15:07:14'),
(157, 'INV-202506170002', 268, 28, NULL, '2025-06-17', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'lunas', NULL, NULL, 0, NULL, '2025-06-16 20:04:22', '2025-06-16 20:04:22', 'Midtrans - snap', NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506170002</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506170002</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>17/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, NULL, '2025-06-16 20:01:52', '2025-06-18 15:07:14'),
(158, 'INV-202506180001', 268, 61, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'lunas', NULL, NULL, 0, NULL, '2025-06-18 04:48:30', '2025-06-18 04:48:30', 'QRIS', NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180001</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180001</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, NULL, '2025-06-18 03:12:37', '2025-06-18 15:07:14');
INSERT INTO `invoices` (`id`, `nomor_invoice`, `pelanggan_id`, `payment_id`, `template_invoice_id`, `tanggal_invoice`, `tanggal_jatuh_tempo`, `periode_tagihan`, `periode_dari`, `periode_sampai`, `subtotal`, `biaya_instalasi`, `diskon`, `ppn_persen`, `ppn_amount`, `total_amount`, `is_prorate`, `prorate_info`, `status`, `status_pembayaran`, `payment_link`, `payment_gateway`, `auto_payment`, `payment_due_date`, `tanggal_bayar`, `tanggal_pembayaran`, `metode_pembayaran`, `metode_pembayaran_temp`, `jumlah_transfer`, `tanggal_transfer`, `nama_pengirim`, `catatan_pembayaran`, `bukti_transfer`, `invoice_html`, `file_path`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(159, 'INV-202506180002', 268, 63, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'lunas', NULL, NULL, 0, NULL, '2025-06-18 05:07:25', '2025-06-18 05:07:25', 'QRIS', NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180002</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180002</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-18 05:06:07', '2025-06-18 15:07:14'),
(160, 'INV-202506180003', 268, 78, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'paid', NULL, NULL, 0, NULL, '2025-06-18 05:58:56', NULL, 'QRIS', NULL, NULL, NULL, NULL, 'Pembayaran otomatis via Tripay', NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180003</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180003</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, NULL, '2025-06-18 05:11:18', '2025-06-18 15:07:14'),
(161, 'INV-202506180004', 268, 80, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'paid', NULL, NULL, 0, NULL, '2025-06-18 11:41:37', NULL, 'snap', NULL, NULL, NULL, NULL, 'Pembayaran otomatis via Midtrans', NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180004</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180004</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, NULL, '2025-06-18 11:40:21', '2025-06-18 15:07:14'),
(162, 'INV-202506180005', 268, 81, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'paid', NULL, NULL, 0, NULL, '2025-06-18 11:51:47', NULL, 'snap', NULL, NULL, NULL, NULL, 'Pembayaran otomatis via Midtrans', NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180005</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180005</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, NULL, '2025-06-18 11:50:52', '2025-06-18 15:07:14');
INSERT INTO `invoices` (`id`, `nomor_invoice`, `pelanggan_id`, `payment_id`, `template_invoice_id`, `tanggal_invoice`, `tanggal_jatuh_tempo`, `periode_tagihan`, `periode_dari`, `periode_sampai`, `subtotal`, `biaya_instalasi`, `diskon`, `ppn_persen`, `ppn_amount`, `total_amount`, `is_prorate`, `prorate_info`, `status`, `status_pembayaran`, `payment_link`, `payment_gateway`, `auto_payment`, `payment_due_date`, `tanggal_bayar`, `tanggal_pembayaran`, `metode_pembayaran`, `metode_pembayaran_temp`, `jumlah_transfer`, `tanggal_transfer`, `nama_pengirim`, `catatan_pembayaran`, `bukti_transfer`, `invoice_html`, `file_path`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(163, 'INV-202506180006', 268, 84, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'paid', 'paid', NULL, NULL, 0, NULL, '2025-06-18 11:58:31', NULL, 'QRIS2', NULL, NULL, NULL, NULL, 'Pembayaran otomatis via Tripay', NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180006</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180006</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, NULL, '2025-06-18 11:52:26', '2025-06-18 15:07:14'),
(164, 'INV-202506180007', 268, NULL, NULL, '2025-06-18', '2025-07-06', 'bulanan', '2025-06-16', '2025-07-15', 5000.00, 0.00, 0.00, 0.00, 0.00, 5000.00, 0, NULL, 'sent', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506180007</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"http://localhost:8000/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506180007</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>18/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>16/06/2025 - 15/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>isna</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506160001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>a</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081280090373</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>vocher wifi 1 Hari</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>vocher wifi 1 Hari</td>\r\n                    <td>16/06/2025 - 15/07/2025</td>\r\n                    <td class=\"text-right\">Rp 5.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 5.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> lima ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-18 12:48:20', '2025-06-18 15:07:14');

-- --------------------------------------------------------

--
-- Table structure for table `invoice_reminder_settings`
--

CREATE TABLE `invoice_reminder_settings` (
  `id` bigint UNSIGNED NOT NULL,
  `is_enabled` tinyint(1) NOT NULL DEFAULT '1',
  `execution_mode` enum('page_trigger','cronjob') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'page_trigger',
  `days_before_due` int NOT NULL DEFAULT '2',
  `send_time` time NOT NULL DEFAULT '09:00:00',
  `delay_between_sends` int NOT NULL DEFAULT '4',
  `template_slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pengiriman-invoice',
  `custom_message` text COLLATE utf8mb4_unicode_ci,
  `send_on_weekends` tinyint(1) NOT NULL DEFAULT '1',
  `skip_days` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `enable_retry` tinyint(1) NOT NULL DEFAULT '0',
  `max_retry_attempts` int NOT NULL DEFAULT '3',
  `retry_delay_hours` int NOT NULL DEFAULT '2',
  `notify_admin_on_failure` tinyint(1) NOT NULL DEFAULT '1',
  `admin_notification_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `admin_notification_whatsapp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `webhook_token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'default-secret-token',
  `cron_token` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `enable_webhook` tinyint(1) NOT NULL DEFAULT '1',
  `enable_manual_trigger` tinyint(1) NOT NULL DEFAULT '1',
  `detailed_logging` tinyint(1) NOT NULL DEFAULT '1',
  `log_retention_days` int NOT NULL DEFAULT '30',
  `track_delivery_status` tinyint(1) NOT NULL DEFAULT '1',
  `last_executed_at` timestamp NULL DEFAULT NULL,
  `last_execution_summary` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `total_reminders_sent` int NOT NULL DEFAULT '0',
  `total_failed_sends` int NOT NULL DEFAULT '0',
  `created_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `updated_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `invoice_reminder_settings`
--

INSERT INTO `invoice_reminder_settings` (`id`, `is_enabled`, `execution_mode`, `days_before_due`, `send_time`, `delay_between_sends`, `template_slug`, `custom_message`, `send_on_weekends`, `skip_days`, `enable_retry`, `max_retry_attempts`, `retry_delay_hours`, `notify_admin_on_failure`, `admin_notification_email`, `admin_notification_whatsapp`, `webhook_token`, `cron_token`, `enable_webhook`, `enable_manual_trigger`, `detailed_logging`, `log_retention_days`, `track_delivery_status`, `last_executed_at`, `last_execution_summary`, `total_reminders_sent`, `total_failed_sends`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(1, 1, 'cronjob', 2, '09:00:00', 4, 'pengiriman-invoice', NULL, 1, NULL, 0, 3, 2, 1, NULL, NULL, 'default-secret-token', 'reminder_455bc7c05faecddcd467069220758d34', 1, 1, 1, 30, 1, NULL, NULL, 0, 0, 'Administrator', 'Administrator', '2025-06-04 16:16:07', '2025-06-06 01:48:15');

-- --------------------------------------------------------

--
-- Table structure for table `jobs`
--

CREATE TABLE `jobs` (
  `id` bigint UNSIGNED NOT NULL,
  `queue` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `payload` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `attempts` tinyint UNSIGNED NOT NULL,
  `reserved_at` int UNSIGNED DEFAULT NULL,
  `available_at` int UNSIGNED NOT NULL,
  `created_at` int UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `karyawans`
--

CREATE TABLE `karyawans` (
  `id` bigint UNSIGNED NOT NULL,
  `user_id` bigint UNSIGNED NOT NULL,
  `nip` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `departemen` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jabatan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `tanggal_bergabung` date NOT NULL,
  `status` enum('aktif','nonaktif','cuti') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `is_customer_service` tinyint(1) NOT NULL DEFAULT '0',
  `gaji_perhari` decimal(15,2) DEFAULT NULL,
  `gaji_perbulan` decimal(15,2) DEFAULT NULL,
  `tunjangan_lain` decimal(15,2) DEFAULT NULL,
  `asuransi_perbulan` decimal(15,2) DEFAULT NULL,
  `bonus` decimal(15,2) DEFAULT NULL,
  `kasbon_perbulan` decimal(15,2) DEFAULT NULL,
  `ijin_cuti` int NOT NULL DEFAULT '12',
  `ijin_sakit` int NOT NULL DEFAULT '12',
  `sisa_cuti` int NOT NULL DEFAULT '12',
  `sisa_sakit` int NOT NULL DEFAULT '12',
  `nilai_pencapaian` decimal(5,2) DEFAULT NULL,
  `alamat` text COLLATE utf8mb4_unicode_ci,
  `foto` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `catatan` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `atasan_langsung_id` bigint UNSIGNED DEFAULT NULL,
  `head_leader_id` bigint UNSIGNED DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `karyawans`
--

INSERT INTO `karyawans` (`id`, `user_id`, `nip`, `departemen`, `jabatan`, `tanggal_bergabung`, `status`, `is_customer_service`, `gaji_perhari`, `gaji_perbulan`, `tunjangan_lain`, `asuransi_perbulan`, `bonus`, `kasbon_perbulan`, `ijin_cuti`, `ijin_sakit`, `sisa_cuti`, `sisa_sakit`, `nilai_pencapaian`, `alamat`, `foto`, `catatan`, `created_at`, `updated_at`, `atasan_langsung_id`, `head_leader_id`) VALUES
(1, 7, '0000001', 'it', 'Admin', '2025-06-06', 'aktif', 0, 200000.00, 6000000.00, NULL, NULL, NULL, NULL, 6, 4, 6, 4, NULL, 'Gadog', 'karyawan_1749181069_6842628d0fce0.png', NULL, '2025-06-06 03:37:49', '2025-06-06 03:37:49', 1, NULL);

-- --------------------------------------------------------

--
-- Table structure for table `kategoris`
--

CREATE TABLE `kategoris` (
  `id` bigint UNSIGNED NOT NULL,
  `nama` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `warna` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#007bff',
  `icon` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `jenis` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'konten',
  `aktif` tinyint(1) NOT NULL DEFAULT '1',
  `urutan` int NOT NULL DEFAULT '0',
  `parent_id` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `kategoris`
--

INSERT INTO `kategoris` (`id`, `nama`, `slug`, `deskripsi`, `warna`, `icon`, `jenis`, `aktif`, `urutan`, `parent_id`, `created_at`, `updated_at`) VALUES
(1, 'Konten Website', 'konten-website', 'Kategori untuk konten dan halaman website', '#007bff', 'fas fa-file-alt', 'konten', 1, 1, NULL, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(2, 'Halaman Utama', 'halaman-utama', 'Halaman-halaman utama website', '#007bff', 'fas fa-home', 'konten', 1, 1, 1, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(3, 'Informasi', 'informasi', 'Halaman informasi dan artikel', '#17a2b8', 'fas fa-info-circle', 'konten', 1, 2, 1, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(4, 'Galeri Foto', 'galeri-foto', 'Kategori untuk galeri foto dan media', '#28a745', 'fas fa-images', 'galeri', 1, 2, NULL, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(5, 'Produk', 'produk', 'Foto-foto produk layanan', '#28a745', 'fas fa-box', 'galeri', 1, 1, 4, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(6, 'Kantor', 'kantor', 'Foto kantor dan fasilitas', '#ffc107', 'fas fa-building', 'galeri', 1, 2, 4, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(7, 'Kegiatan', 'kegiatan', 'Foto kegiatan dan event', '#fd7e14', 'fas fa-calendar-alt', 'galeri', 1, 3, 4, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(8, 'Berita & Artikel', 'berita-artikel', 'Kategori untuk berita dan artikel', '#dc3545', 'fas fa-newspaper', 'berita', 1, 3, NULL, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(9, 'Pengumuman', 'pengumuman', 'Pengumuman resmi perusahaan', '#dc3545', 'fas fa-bullhorn', 'berita', 1, 1, 8, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(10, 'Tips & Tutorial', 'tips-tutorial', 'Tips dan tutorial penggunaan layanan', '#6f42c1', 'fas fa-lightbulb', 'berita', 1, 2, 8, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(11, 'Layanan ISP', 'layanan-isp', 'Kategori untuk layanan ISP', '#6610f2', 'fas fa-wifi', 'layanan', 1, 4, NULL, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(12, 'Internet Rumahan', 'internet-rumahan', 'Paket internet untuk rumahan', '#6610f2', 'fas fa-home', 'layanan', 1, 1, 11, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(13, 'Internet Bisnis', 'internet-bisnis', 'Paket internet untuk bisnis dan corporate', '#20c997', 'fas fa-building', 'layanan', 1, 2, 11, '2025-06-01 14:52:20', '2025-06-01 14:52:20'),
(14, 'Dedicated Server', 'dedicated-server', 'Layanan dedicated server dan hosting', '#fd7e14', 'fas fa-server', 'layanan', 1, 3, 11, '2025-06-01 14:52:20', '2025-06-01 14:52:20');

-- --------------------------------------------------------

--
-- Table structure for table `kategori_keuangans`
--

CREATE TABLE `kategori_keuangans` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_kategori` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kode_kategori` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `tipe` enum('pendapatan','pengeluaran') COLLATE utf8mb4_unicode_ci NOT NULL,
  `jenis` enum('operasional','non_operasional','investasi','lainnya') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'operasional',
  `warna_badge` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#007bff',
  `icon` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'fas fa-coins',
  `status` enum('aktif','non_aktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `urutan` int NOT NULL DEFAULT '0',
  `parent_id` bigint UNSIGNED DEFAULT NULL,
  `is_default` tinyint(1) NOT NULL DEFAULT '0',
  `catatan` text COLLATE utf8mb4_unicode_ci,
  `created_by` bigint UNSIGNED DEFAULT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `kategori_keuangans`
--

INSERT INTO `kategori_keuangans` (`id`, `nama_kategori`, `kode_kategori`, `deskripsi`, `tipe`, `jenis`, `warna_badge`, `icon`, `status`, `urutan`, `parent_id`, `is_default`, `catatan`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(4, 'Pendapatan Lain-lain', 'PEN004', 'Pendapatan dari sumber lain di luar operasional utama', 'pendapatan', 'non_operasional', '#6c757d', 'fas fa-coins', 'aktif', 4, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(5, 'Biaya Operasional', 'OUT001', 'Biaya operasional harian seperti listrik, internet, dll', 'pengeluaran', 'operasional', '#dc3545', 'fas fa-bolt', 'aktif', 1, NULL, 1, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(6, 'Gaji dan Tunjangan', 'OUT002', 'Pengeluaran untuk gaji karyawan dan tunjangan', 'pengeluaran', 'operasional', '#fd7e14', 'fas fa-users', 'aktif', 2, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(7, 'Pembelian Peralatan', 'OUT003', 'Pengeluaran untuk pembelian peralatan dan hardware', 'pengeluaran', 'investasi', '#6f42c1', 'fas fa-server', 'aktif', 3, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(8, 'Maintenance dan Perbaikan', 'OUT004', 'Biaya maintenance dan perbaikan infrastruktur', 'pengeluaran', 'operasional', '#20c997', 'fas fa-wrench', 'aktif', 4, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(9, 'Biaya Administrasi', 'OUT005', 'Biaya administrasi, pajak, dan biaya bank', 'pengeluaran', 'operasional', '#e83e8c', 'fas fa-file-invoice', 'aktif', 5, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(10, 'Marketing dan Promosi', 'OUT006', 'Biaya marketing, iklan, dan promosi', 'pengeluaran', 'operasional', '#fd7e14', 'fas fa-bullhorn', 'aktif', 6, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(11, 'Pengeluaran Lain-lain', 'OUT007', 'Pengeluaran lain-lain di luar kategori utama', 'pengeluaran', 'lainnya', '#6c757d', 'fas fa-ellipsis-h', 'aktif', 7, NULL, 0, NULL, 1, NULL, '2025-06-01 06:11:08', '2025-06-01 06:11:08'),
(13, 'Pendapatan Layanan Internet', 'PEN001', 'Pendapatan Layanan Internet', 'pendapatan', 'lainnya', '#007bff', 'mdi mdi-folder', 'aktif', 999, NULL, 0, NULL, 1, NULL, '2025-06-19 19:27:23', '2025-06-19 19:27:23');

-- --------------------------------------------------------

--
-- Table structure for table `layanan_hotspots`
--

CREATE TABLE `layanan_hotspots` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_paket` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kode_paket` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `bandwidth_download` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `bandwidth_upload` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kuota_data` int DEFAULT NULL,
  `masa_aktif` int NOT NULL,
  `max_device` int NOT NULL DEFAULT '1',
  `jam_mulai` time NOT NULL DEFAULT '00:00:00',
  `jam_selesai` time NOT NULL DEFAULT '23:59:59',
  `hari_aktif` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `harga_bulanan` decimal(10,2) NOT NULL,
  `harga_harian` decimal(10,2) DEFAULT NULL,
  `harga_mingguan` decimal(10,2) DEFAULT NULL,
  `tipe_billing` enum('bulanan','harian','mingguan','sekali_bayar') COLLATE utf8mb4_unicode_ci NOT NULL,
  `fair_usage_policy` tinyint(1) NOT NULL DEFAULT '0',
  `fup_threshold` int DEFAULT NULL,
  `fup_speed` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `auto_renewal` tinyint(1) NOT NULL DEFAULT '0',
  `portal_login` tinyint(1) NOT NULL DEFAULT '1',
  `portal_template` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'default',
  `lokasi_coverage` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `radius_coverage` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `alamat_hotspot` text COLLATE utf8mb4_unicode_ci,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `mikrotik_profile` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `mikrotik_server` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `mikrotik_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `status` enum('aktif','non_aktif','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `total_user` int NOT NULL DEFAULT '0',
  `user_aktif` int NOT NULL DEFAULT '0',
  `is_featured` tinyint(1) NOT NULL DEFAULT '0',
  `tampil_register` tinyint(1) NOT NULL DEFAULT '1',
  `urutan` int NOT NULL DEFAULT '0',
  `gambar_paket` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `syarat_ketentuan` text COLLATE utf8mb4_unicode_ci,
  `catatan_admin` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `layanan_jasa`
--

CREATE TABLE `layanan_jasa` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_layanan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kode_layanan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `kategori` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'umum',
  `tipe_layanan` enum('one_time','recurring','subscription') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'one_time',
  `harga_dasar` decimal(15,2) NOT NULL DEFAULT '0.00',
  `harga_promo` decimal(15,2) DEFAULT NULL,
  `satuan_harga` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'paket',
  `durasi_estimasi` int DEFAULT NULL,
  `durasi_satuan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'jam',
  `status` enum('aktif','non_aktif','draft') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `is_featured` tinyint(1) NOT NULL DEFAULT '0',
  `tersedia` tinyint(1) NOT NULL DEFAULT '1',
  `kapasitas_maksimal` int DEFAULT NULL,
  `order_aktif` int NOT NULL DEFAULT '0',
  `persyaratan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `spesifikasi_teknis` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `peralatan_dibutuhkan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `catatan_khusus` text COLLATE utf8mb4_unicode_ci,
  `gambar_layanan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `galeri_gambar` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `rating_rata` int NOT NULL DEFAULT '0',
  `jumlah_rating` int NOT NULL DEFAULT '0',
  `total_order` int NOT NULL DEFAULT '0',
  `total_selesai` int NOT NULL DEFAULT '0',
  `area_layanan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `layanan_luar_kota` tinyint(1) NOT NULL DEFAULT '0',
  `biaya_transport_luar_kota` decimal(15,2) DEFAULT NULL,
  `jam_operasional` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `layanan_emergency` tinyint(1) NOT NULL DEFAULT '0',
  `biaya_emergency` decimal(15,2) DEFAULT NULL,
  `lead_time_hari` int NOT NULL DEFAULT '1',
  `masa_garansi_hari` int DEFAULT NULL,
  `syarat_garansi` text COLLATE utf8mb4_unicode_ci,
  `include_maintenance` tinyint(1) NOT NULL DEFAULT '0',
  `maintenance_periode_bulan` int DEFAULT NULL,
  `meta_title` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_description` text COLLATE utf8mb4_unicode_ci,
  `slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `tags` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `created_by` bigint UNSIGNED DEFAULT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `last_order_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `layanan_pppoes`
--

CREATE TABLE `layanan_pppoes` (
  `id` bigint UNSIGNED NOT NULL,
  `mikrotik_id` bigint UNSIGNED NOT NULL,
  `nama_layanan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `pppoe_profile` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kecepatan_download` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kecepatan_upload` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `harga_bulan` decimal(15,2) NOT NULL,
  `tampil_register` tinyint(1) NOT NULL DEFAULT '1',
  `keterangan` text COLLATE utf8mb4_unicode_ci,
  `gambar_layanan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('aktif','non_aktif','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `urutan` int NOT NULL DEFAULT '0',
  `is_featured` tinyint(1) NOT NULL DEFAULT '0',
  `fitur_tambahan` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `layanan_pppoes`
--

INSERT INTO `layanan_pppoes` (`id`, `mikrotik_id`, `nama_layanan`, `pppoe_profile`, `kecepatan_download`, `kecepatan_upload`, `harga_bulan`, `tampil_register`, `keterangan`, `gambar_layanan`, `status`, `urutan`, `is_featured`, `fitur_tambahan`, `created_at`, `updated_at`) VALUES
(31, 10, 'vocher wifi 1 Hari', '5Mbps', '8M', '8M', 5000.00, 1, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-15 07:58:20', '2025-06-15 07:58:20');

-- --------------------------------------------------------

--
-- Table structure for table `menus`
--

CREATE TABLE `menus` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_menu` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `posisi` enum('header','footer') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'header',
  `urutan` int NOT NULL DEFAULT '0',
  `status` enum('aktif','nonaktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `icon` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `target` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '_self',
  `parent_id` bigint UNSIGNED DEFAULT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `menus`
--

INSERT INTO `menus` (`id`, `nama_menu`, `url`, `posisi`, `urutan`, `status`, `icon`, `target`, `parent_id`, `description`, `created_at`, `updated_at`) VALUES
(4, 'Beranda', '/', 'header', 1, 'aktif', 'fas fa-home', '_self', NULL, 'Halaman utama website', '2025-06-05 16:15:18', '2025-06-05 16:15:18'),
(5, 'Layanan', 'layanan-kami', 'header', 2, 'aktif', 'fas fa-concierge-bell', '_self', NULL, 'Layanan yang kami tawarkan', '2025-06-05 16:15:18', '2025-06-05 16:21:03'),
(9, 'Paket Internet', 'paket-internet', 'header', 3, 'aktif', NULL, '_self', NULL, NULL, '2025-06-07 17:46:27', '2025-06-07 17:47:18'),
(10, 'Hubungi Kami', 'hubungi-kami', 'header', 5, 'aktif', NULL, '_self', NULL, NULL, '2025-06-07 17:54:34', '2025-06-07 17:54:34'),
(11, '1231231', 'kebijakan-privasi', 'header', 1, 'nonaktif', 'fas fa-concierge-bell', '_self', NULL, NULL, '2025-06-13 16:08:14', '2025-06-13 16:08:42'),
(12, 'Kasbon', 'paket-internet', 'header', 1, 'nonaktif', 'fas fa-concierge-bell', '_self', 4, NULL, '2025-06-13 16:26:22', '2025-06-13 16:26:22');

-- --------------------------------------------------------

--
-- Table structure for table `migrations`
--

CREATE TABLE `migrations` (
  `id` int UNSIGNED NOT NULL,
  `migration` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `batch` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `migrations`
--

INSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES
(41, '2014_10_12_000000_create_users_table', 1),
(42, '2014_10_12_100000_create_password_resets_table', 1),
(43, '2019_08_19_000000_create_failed_jobs_table', 1),
(44, '2019_12_14_000001_create_personal_access_tokens_table', 1),
(45, '2025_05_26_103127_modify_users_table', 1),
(46, '2025_05_26_123746_create_themes_table', 1),
(47, '2025_05_26_125038_create_mikrotiks_table', 1),
(48, '2025_05_26_153507_create_asset_categories_table', 1),
(49, '2025_05_26_153508_create_assets_table', 1),
(50, '2025_05_26_163124_create_coverage_areas_table', 1),
(51, '2025_05_26_164233_create_sidebar_menus_table', 1),
(52, '2025_05_26_164405_add_advanced_theme_fields_to_themes_table', 1),
(53, '2025_05_26_171516_remove_unused_columns_from_coverage_areas_table', 1),
(54, '2025_05_26_173725_create_perusahaan_table', 1),
(55, '2025_05_26_175806_create_banks_table', 1),
(56, '2025_05_26_180832_create_pesan_template_table', 1),
(57, '2025_05_26_185333_create_template_invoices_table', 1),
(58, '2025_05_26_190512_create_top_olts_table', 1),
(59, '2025_05_26_200000_create_top_odcs_table', 1),
(60, '2025_05_26_210000_create_top_odps_table', 1),
(61, '2025_05_27_042108_rename_jumlah_port_to_jml_port_odp_in_top_odps_table', 1),
(62, '2025_05_27_061701_create_layanan_pppoes_table', 1),
(63, '2025_05_27_210431_create_layanan_hotspots_table', 1),
(64, '2025_05_27_213236_create_whatsapp_gateways_table', 1),
(65, '2025_05_28_144034_create_layanan_jasa_table', 1),
(66, '2025_05_28_151915_create_pelanggan_table', 1),
(67, '2025_05_28_161732_add_coverage_area_id_to_top_odps_table', 1),
(68, '2025_05_29_103929_update_pelanggan_jatuh_tempo_fields', 1),
(69, '2025_05_29_104500_add_hari_pemakaian_to_pelanggan', 1),
(70, '2025_05_29_110000_create_invoices_table', 1),
(71, '2025_05_30_014806_create_auto_billing_settings_table', 1),
(72, '2025_05_30_014833_create_auto_billing_logs_table', 1),
(73, '2025_05_30_204542_update_existing_odp_with_coverage_area', 1),
(74, '2025_05_31_020000_create_auto_isolir_logs_table', 1),
(75, '2025_05_31_023740_create_invoice_reminder_settings_table', 1),
(76, '2025_05_31_192847_update_invoice_layout_template', 1),
(77, '2025_05_31_200710_add_bukti_transfer_to_invoices_table', 1),
(78, '2025_06_01_020741_create_produks_table', 1),
(79, '2025_06_01_020751_create_pembelians_table', 1),
(80, '2025_06_01_020800_create_pembelian_items_table', 1),
(81, '2025_06_01_123711_create_kategori_keuangans_table', 2),
(82, '2025_06_01_123517_create_pendapatans_table', 3),
(83, '2025_06_01_123700_create_pengeluarans_table', 4),
(84, '2025_06_01_133720_add_total_bersih_to_pengeluarans_table', 5),
(85, '2025_06_01_174701_create_menus_table', 6),
(86, '2025_06_01_174853_create_halamen_table', 6),
(87, '2025_06_01_174919_create_widgets_table', 6),
(88, '2025_06_01_174943_create_galeri_table', 6),
(89, '2025_06_01_175008_create_tentang_kamis_table', 6),
(90, '2025_06_01_214856_create_kategoris_table', 7),
(91, '2025_06_01_221120_create_website_themes_table', 8),
(92, '2025_06_02_000857_add_tampil_register_to_layanan_hotspots_table', 9),
(93, '2025_06_02_085629_add_parent_and_splitter_fields_to_top_odps_table', 10),
(94, '2025_06_02_090808_add_splitter_power_ratio_to_top_odps_table', 11),
(95, '2025_06_02_091526_remove_parent_port_from_top_odps_table', 12),
(96, '2025_06_02_153706_make_odc_port_nullable_in_top_odps_table', 13),
(97, '2025_06_05_154136_create_homepages_table', 14),
(98, '2025_06_05_040210_create_karyawans_table', 15),
(99, '2025_06_05_012546_create_payment_gateway_logs_table', 16),
(100, '2025_06_05_000001_create_payment_gateway_settings_table', 17),
(101, '2025_06_05_000002_create_payments_table', 18),
(102, '2024_01_01_000001_create_tickets_table', 19),
(103, '2024_01_01_000002_create_ticket_replies_table', 20),
(104, '2025_06_05_000003_add_payment_fields_to_invoices_table', 21),
(105, '2025_06_05_040554_add_additional_fields_to_karyawans_table', 21),
(106, '2025_06_05_141453_add_is_customer_service_to_karyawans_table', 21),
(107, '2025_06_05_151407_add_kategori_id_to_halamen_table', 21),
(108, '2025_06_05_151602_add_kategori_id_to_galeri_table', 21),
(109, '2025_06_06_002444_add_payment_id_to_invoices_table', 22),
(110, '2025_06_06_024747_update_auto_billing_settings_table_structure', 23),
(111, '2025_06_06_025646_add_execution_mode_to_auto_billing_settings', 24),
(112, '2025_06_06_084121_add_execution_mode_to_invoice_reminder_settings_table', 25),
(113, '2025_06_06_104326_create_absensis_table', 26),
(115, '2025_06_06_184232_modify_tickets_table_for_pelanggan_system', 27),
(116, '2025_06_06_194254_create_sla_records_table', 28),
(117, '2025_06_07_001444_create_mikrotik_logs_table', 29),
(118, '2025_06_07_024322_add_payment_fields_to_invoices_table', 30),
(119, '2024_12_19_000000_create_syslogs_table', 31),
(120, '2025_06_06_105212_create_broadcast_messages_table', 32),
(121, '2024_12_31_120000_create_system_logs_table', 33),
(122, '2024_12_31_120001_create_system_log_details_table', 33),
(123, '2025_06_06_084317_add_execution_mode_to_invoice_reminder_settings_table', 34),
(124, '2025_06_07_145126_create_syslogs_table', 35),
(125, '2025_06_13_133104_update_auto_isolir_logs_status_enum', 36),
(126, '2025_06_08_222957_remove_total_tagihan_field_from_invoices_table', 37),
(127, '2025_06_15_000001_add_completed_status_to_payments_table', 38),
(129, '2025_06_16_002835_create_customerakun_table', 39),
(130, '2025_06_16_011931_create_iklan_table', 40),
(131, '2025_06_16_024444_add_nomer_layanan_to_customerakun_table', 41),
(132, '2025_01_19_000000_create_account_deletion_requests_table', 42);

-- --------------------------------------------------------

--
-- Table structure for table `mikrotiks`
--

CREATE TABLE `mikrotiks` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `host` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `username` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `api_port` int NOT NULL DEFAULT '8728',
  `ssh_port` int NOT NULL DEFAULT '22',
  `location` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `status` enum('online','offline','error','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'offline',
  `last_connected` timestamp NULL DEFAULT NULL,
  `system_info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `interfaces` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `is_active` tinyint(1) NOT NULL DEFAULT '1',
  `auto_backup` tinyint(1) NOT NULL DEFAULT '0',
  `backup_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `mikrotiks`
--

INSERT INTO `mikrotiks` (`id`, `name`, `host`, `username`, `password`, `api_port`, `ssh_port`, `location`, `description`, `status`, `last_connected`, `system_info`, `interfaces`, `is_active`, `auto_backup`, `backup_path`, `created_at`, `updated_at`) VALUES
(10, 'Eglobaltech', '43.243.142.38', 'root', 'eyJpdiI6IkovTjVLa1BnN0g4azN2aTdOWUZvalE9PSIsInZhbHVlIjoiYlRmNm9BWXN3WVdIQUZXb2piODRYQT09IiwibWFjIjoiZmI4MWEyMjZjZGZiMzY0ZDE1MzBhZWQ1YzVhNWYyZDVkMzA3YzQwZTQwZjJlZTdjNmY4NTFlZTMxMmRkYTVkMyIsInRhZyI6IiJ9', 3000, 22, NULL, NULL, 'online', '2025-06-19 01:44:49', NULL, '[{\"name\":\"ether1\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"28:80:23:A0:D0:D3\",\"comment\":\"OXY 400\"},{\"name\":\"ether2\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"28:80:23:A0:D0:D2\",\"comment\":\"ASNET 200\"},{\"name\":\"ether3\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"28:80:23:A0:D0:D1\",\"comment\":\"REMOTE HIOSO\"},{\"name\":\"ether4\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"28:80:23:A0:D0:D0\",\"comment\":\"LOCAL PC\"},{\"name\":\"ether5\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:67\",\"comment\":\"\"},{\"name\":\"ether6\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"ether7\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:65\",\"comment\":\"\"},{\"name\":\"ether8\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:64\",\"comment\":\"\"},{\"name\":\"ether13\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"00:E0:22:69:55:A0\",\"comment\":\"\"},{\"name\":\"sfp1\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"00:E0:ED:14:B8:FA\",\"comment\":\"\"},{\"name\":\"sfp2\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"00:E0:ED:14:B8:FB\",\"comment\":\"\"},{\"name\":\"sfp3\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"00:E0:ED:14:B8:FC\",\"comment\":\"\"},{\"name\":\"sfp4\",\"type\":\"ether\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"00:E0:ED:14:B8:FD\",\"comment\":\"\"},{\"name\":\"<l2tp-litbang>\",\"type\":\"l2tp-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1450\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ade.abdurachman@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ade@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-adedi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-aderaf@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-agus.vmala@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ahmadapandi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ajeng@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-alex@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-alya.kprawa@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-amelia@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-anes@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ani@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-anis@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ano.kprawa@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-arga@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ari.afriansyah@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-asep.vimala@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-asep@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-bencoy@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-boim@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-budi.sudarsono@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-buyung@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-caterin@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-chaya@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-dede@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-dedi.vmala@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-desagadog@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-desyaryanti@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-dheanti@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-dimas@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-edi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ega-egin@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ekoadrie@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-emon@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-engkus@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-fadila@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-fauziah@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-fitri-pipit@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-fitriah@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-gilang@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-gojel@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hambali@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hardi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hikmatul.asuroh@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hjandri@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-home@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot-anen@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot-empi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot-robi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot.agus@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot.bayu@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot.firman@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-hotspot.pos@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-icha@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ifah@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-iis.isdawati.bonie@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-iis@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ika@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ilham@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-irsyad@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-irvan@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-isna>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-iwan.anwar@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-iyus@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-jafar.sidik@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-jarwo@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-kamal@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-kania@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-karya@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-kasmininadi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-leli-ogi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-leli-vmala@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-mahdi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-mamba@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-mangjejen@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-mariyam@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-masjid@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-maspur@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-melinda@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-muhammadreza@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-mynet@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-nanang@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-nenden@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-nenti@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-nova@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-novarel@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-novitasari@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ocep@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-oki.heryansyah@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-oleholeh@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-omjes@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-pelanggan-1>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-pelanggan>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-pt.ipf-kandang@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-pt.ipf-office@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-pt.suprimgadog@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-puji.marwanti@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rafi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ramdani@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-ratna@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rena@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-reyhansyah@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-riana.wahyu@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rida@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rival@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rt.pandi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rt.tono@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-rw02>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-sandivmala@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-selviana.kprawa@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-sri@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-sulinda@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-tatang@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-uci@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-vega@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-velly.andra@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-vera@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-vina@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-visabila@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-wahyu@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-wawan.suandi@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yadin@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yaman@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yana.suryana@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yuli@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yuliana@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yulitoko@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"<pppoe-yustin@gadog.net>\",\"type\":\"pppoe-in\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"ASNET\",\"type\":\"pppoe-out\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1480\",\"mac_address\":\"Unknown\",\"comment\":\"\"},{\"name\":\"PELANGGAN-OLT\",\"type\":\"bridge\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"auto\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"vlan101-HOTSPOT\",\"type\":\"vlan\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"vlan102-HOTSPOT\",\"type\":\"vlan\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"vlan103-CCTV\",\"type\":\"vlan\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"vlan104\",\"type\":\"vlan\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"vlan105\",\"type\":\"vlan\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"},{\"name\":\"vlan106-CCTV IPF\",\"type\":\"vlan\",\"running\":\"up\",\"disabled\":\"no\",\"mtu\":\"1500\",\"mac_address\":\"3C:A8:2A:EC:A8:66\",\"comment\":\"\"}]', 1, 0, NULL, '2025-06-14 18:58:21', '2025-06-19 01:44:49');

-- --------------------------------------------------------

--
-- Table structure for table `mikrotik_logs`
--

CREATE TABLE `mikrotik_logs` (
  `id` bigint UNSIGNED NOT NULL,
  `mikrotik_id` bigint UNSIGNED NOT NULL,
  `action` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `old_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `new_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `ip_address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `success` tinyint(1) NOT NULL DEFAULT '1',
  `response_time` decimal(8,3) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `mikrotik_logs`
--

INSERT INTO `mikrotik_logs` (`id`, `mikrotik_id`, `action`, `old_status`, `new_status`, `message`, `details`, `ip_address`, `user_agent`, `success`, `response_time`, `created_at`, `updated_at`) VALUES
(12, 10, 'create', NULL, NULL, 'Router Eglobaltech berhasil ditambahkan', '{\"host\":\"43.243.142.38\",\"location\":null}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, '2025-06-14 18:58:21', '2025-06-14 18:58:21'),
(13, 10, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"43.243.142.38\",\"port\":3000,\"response_data\":{\"success\":true,\"message\":\"Koneksi berhasil! Router online.\",\"status\":\"online\",\"data\":[{\"name\":\"Eglobaltech-X86\"}]}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 0.212, '2025-06-14 18:58:23', '2025-06-14 18:58:23'),
(14, 10, 'test_connection', 'error', 'error', 'Koneksi gagal: Invalid user name or password', '{\"host\":\"43.243.142.38\",\"port\":3000,\"response_data\":{\"success\":false,\"message\":\"Koneksi gagal: Invalid user name or password\",\"status\":\"error\"}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 0, 0.033, '2025-06-15 07:33:10', '2025-06-15 07:33:10'),
(15, 10, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"43.243.142.38\",\"port\":3000,\"response_data\":{\"success\":true,\"message\":\"Koneksi berhasil! Router online.\",\"status\":\"online\",\"data\":[{\"name\":\"Eglobaltech-X86\"}]}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 0.101, '2025-06-15 07:33:23', '2025-06-15 07:33:23'),
(16, 10, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"43.243.142.38\",\"port\":3000,\"response_data\":{\"success\":true,\"message\":\"Koneksi berhasil! Router online.\",\"status\":\"online\",\"data\":[{\"name\":\"Eglobaltech-X86\"}]}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 0.111, '2025-06-16 16:11:40', '2025-06-16 16:11:40'),
(17, 10, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"43.243.142.38\",\"port\":3000,\"response_data\":{\"success\":true,\"message\":\"Koneksi berhasil! Router online.\",\"status\":\"online\",\"data\":[{\"name\":\"Eglobaltech-X86\"}]}}', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 0.108, '2025-06-19 01:44:49', '2025-06-19 01:44:49');

-- --------------------------------------------------------

--
-- Table structure for table `model_has_permissions`
--

CREATE TABLE `model_has_permissions` (
  `permission_id` bigint UNSIGNED NOT NULL,
  `model_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `model_id` bigint UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `model_has_roles`
--

CREATE TABLE `model_has_roles` (
  `role_id` bigint UNSIGNED NOT NULL,
  `model_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `model_id` bigint UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `password_resets`
--

CREATE TABLE `password_resets` (
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `token` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `password_resets`
--

INSERT INTO `password_resets` (`email`, `token`, `created_at`) VALUES
('ekoadrie@gmail.com', '$2y$10$LaXRHV0BHaBOc3jK4.lueOaquFPcLlusJsqzsM1YWzMpi/StODk1S', '2025-06-21 01:41:25');

-- --------------------------------------------------------

--
-- Table structure for table `payments`
--

CREATE TABLE `payments` (
  `id` bigint UNSIGNED NOT NULL,
  `invoice_id` bigint UNSIGNED NOT NULL,
  `pelanggan_id` bigint UNSIGNED NOT NULL,
  `payment_gateway` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `payment_method` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `gateway_transaction_id` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `amount` decimal(15,2) NOT NULL,
  `status` enum('pending','success','completed','failed','cancelled','expired') COLLATE utf8mb4_unicode_ci DEFAULT 'pending',
  `gateway_response` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `payment_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `paid_at` timestamp NULL DEFAULT NULL,
  `expired_at` timestamp NULL DEFAULT NULL,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `payments`
--

INSERT INTO `payments` (`id`, `invoice_id`, `pelanggan_id`, `payment_gateway`, `payment_method`, `gateway_transaction_id`, `amount`, `status`, `gateway_response`, `payment_url`, `paid_at`, `expired_at`, `notes`, `created_at`, `updated_at`, `deleted_at`) VALUES
(26, 155, 268, 'midtrans', 'default', 'INV-155-1750091940', 500000.00, 'success', '\"{\\\"snap_token\\\":\\\"3b07462e-80ed-423a-8914-4ad234bda697\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/3b07462e-80ed-423a-8914-4ad234bda697', '2025-06-16 16:39:27', '2025-06-17 16:39:00', 'Pembayaran invoice INV-202506160001', '2025-06-16 16:39:00', '2025-06-16 16:39:27', NULL),
(27, 156, 268, 'midtrans', 'default', 'INV-156-1750093582', 500000.00, 'success', '\"{\\\"snap_token\\\":\\\"8ab2ba18-d854-4bff-8bc1-1967c526f829\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/8ab2ba18-d854-4bff-8bc1-1967c526f829', '2025-06-16 17:06:47', '2025-06-17 17:06:22', 'Pembayaran invoice INV-202506170001', '2025-06-16 17:06:22', '2025-06-16 17:06:47', NULL),
(28, 157, 268, 'midtrans', 'snap', 'INV-157-1750104129', 500000.00, 'success', '\"{\\\"snap_token\\\":\\\"a1efe315-7dbb-49f0-bc74-85cce0f5e0de\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/a1efe315-7dbb-49f0-bc74-85cce0f5e0de', '2025-06-16 20:04:22', '2025-06-17 20:02:09', 'Pembayaran invoice INV-202506170002', '2025-06-16 20:02:09', '2025-06-16 20:04:22', NULL),
(29, 158, 268, 'midtrans', 'snap', 'INV-158-1750216520', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"842d63ce-e706-4d51-831f-170129c5acf6\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/842d63ce-e706-4d51-831f-170129c5acf6', NULL, '2025-06-19 03:15:20', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:15:20', '2025-06-18 03:15:21', NULL),
(30, 158, 268, 'midtrans', 'snap', 'INV-158-1750216777', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"ee232d55-ea1f-4ff8-b6d6-4e5aeee03260\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/ee232d55-ea1f-4ff8-b6d6-4e5aeee03260', NULL, '2025-06-19 03:19:37', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:19:37', '2025-06-18 03:19:37', NULL),
(31, 158, 268, 'midtrans', 'snap', 'INV-158-1750217046', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"9e00e870-ef09-4f39-83d9-bc27ea645201\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/9e00e870-ef09-4f39-83d9-bc27ea645201', NULL, '2025-06-19 03:24:06', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:24:06', '2025-06-18 03:24:07', NULL),
(32, 158, 268, 'midtrans', 'snap', 'INV-158-1750217099', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"ab7342ad-e9cc-4325-a8f0-69c8d4079f5d\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/ab7342ad-e9cc-4325-a8f0-69c8d4079f5d', NULL, '2025-06-19 03:24:59', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:24:59', '2025-06-18 03:24:59', NULL),
(33, 158, 268, 'midtrans', 'snap', 'INV-158-1750217153', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"fae131fc-8d46-4113-a47a-ae97adfd7f71\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/fae131fc-8d46-4113-a47a-ae97adfd7f71', NULL, '2025-06-19 03:25:53', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:25:53', '2025-06-18 03:25:53', NULL),
(34, 158, 268, 'midtrans', 'snap', 'INV-158-1750217184', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"b524ff10-a910-45f9-be99-c3aa5b501b03\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/b524ff10-a910-45f9-be99-c3aa5b501b03', NULL, '2025-06-19 03:26:24', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:26:24', '2025-06-18 03:26:24', NULL),
(35, 158, 268, 'midtrans', 'snap', 'INV-158-1750217254', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"17dd31a6-04eb-4a04-bf62-436099dfe707\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/17dd31a6-04eb-4a04-bf62-436099dfe707', NULL, '2025-06-19 03:27:34', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:27:34', '2025-06-18 03:27:34', NULL),
(36, 158, 268, 'midtrans', 'snap', 'INV-158-1750217360', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"e7ae00b8-a035-403f-95df-cea186443cf7\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/e7ae00b8-a035-403f-95df-cea186443cf7', NULL, '2025-06-19 03:29:20', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:29:20', '2025-06-18 03:29:20', NULL),
(37, 158, 268, 'midtrans', 'snap', 'INV-158-1750217603', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"49ac2ef0-1f66-4570-a81d-f2cd461e930f\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/49ac2ef0-1f66-4570-a81d-f2cd461e930f', NULL, '2025-06-19 03:33:23', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:33:23', '2025-06-18 03:33:23', NULL),
(38, 158, 268, 'midtrans', 'snap', 'INV-158-1750217705', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"254ff48d-c86a-414a-b9a2-639a4d4bb872\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/254ff48d-c86a-414a-b9a2-639a4d4bb872', NULL, '2025-06-19 03:35:05', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:35:05', '2025-06-18 03:35:05', NULL),
(39, 158, 268, 'midtrans', 'snap', 'INV-158-1750217837', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"e8f9bbdd-781a-4941-93b8-9cc738bae5c4\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/e8f9bbdd-781a-4941-93b8-9cc738bae5c4', NULL, '2025-06-19 03:37:17', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:37:17', '2025-06-18 03:37:18', NULL),
(40, 158, 268, 'midtrans', 'snap', 'INV-158-1750217986', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"9d144237-3628-4194-b084-6f92358fd6a1\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/9d144237-3628-4194-b084-6f92358fd6a1', NULL, '2025-06-19 03:39:46', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:39:46', '2025-06-18 03:39:46', NULL),
(41, 158, 268, 'midtrans', 'snap', 'INV-158-1750218029', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"20bc645b-a5a6-41b1-aad5-167ac7f63605\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/20bc645b-a5a6-41b1-aad5-167ac7f63605', NULL, '2025-06-19 03:40:29', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:40:29', '2025-06-18 03:40:29', NULL),
(42, 158, 268, 'midtrans', 'snap', 'INV-158-1750218187', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"42df60e9-01e0-41ef-a79f-6cdc6775354f\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/42df60e9-01e0-41ef-a79f-6cdc6775354f', NULL, '2025-06-19 03:43:07', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:43:07', '2025-06-18 03:43:07', NULL),
(43, 158, 268, 'tripay', 'default', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 03:59:18', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:59:18', '2025-06-18 03:59:18', NULL),
(44, 158, 268, 'tripay', 'default', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 03:59:28', 'Pembayaran invoice INV-202506180001', '2025-06-18 03:59:28', '2025-06-18 03:59:28', NULL),
(45, 158, 268, 'tripay', 'default', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:05:26', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:05:26', '2025-06-18 04:05:26', NULL),
(46, 158, 268, 'tripay', 'default', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:05:41', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:05:41', '2025-06-18 04:05:41', NULL),
(47, 158, 268, 'tripay', 'default', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:07:13', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:07:13', '2025-06-18 04:07:13', NULL),
(48, 158, 268, 'tripay', 'QRIS', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:09:25', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:09:25', '2025-06-18 04:09:25', NULL),
(49, 158, 268, 'tripay', 'QRIS', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:09:47', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:09:47', '2025-06-18 04:09:47', NULL),
(50, 158, 268, 'tripay', 'QRIS', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:11:40', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:11:40', '2025-06-18 04:11:40', NULL),
(51, 158, 268, 'tripay', 'QRIS', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:14:02', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:14:02', '2025-06-18 04:14:02', NULL),
(52, 158, 268, 'tripay', 'QRIS', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:15:54', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:15:54', '2025-06-18 04:15:54', NULL),
(53, 158, 268, 'tripay', 'QRIS', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 04:17:10', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:17:10', '2025-06-18 04:17:10', NULL),
(54, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247533VDUAF', 500000.00, 'pending', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247533VDUAF\\\",\\\"merchant_ref\\\":\\\"INV-158-1750220231\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/158\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247533VDUAF\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750223770,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_158\\\",\\\"name\\\":\\\"Invoice #158\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247533VDUAF\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247533VDUAF', NULL, '2025-06-19 04:17:11', NULL, '2025-06-18 04:17:11', '2025-06-18 04:17:11', NULL),
(55, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247534LYFDE', 500000.00, 'pending', NULL, 'https://tripay.co.id/checkout/DEV-T33175247534LYFDE', NULL, '2025-06-19 04:18:44', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:18:44', '2025-06-18 04:18:44', NULL),
(56, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247534LYFDE', 500000.00, 'pending', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247534LYFDE\\\",\\\"merchant_ref\\\":\\\"INV-158-1750220324\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/158\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247534LYFDE\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750223864,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_158\\\",\\\"name\\\":\\\"Invoice #158\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247534LYFDE\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247534LYFDE', NULL, '2025-06-19 04:18:44', NULL, '2025-06-18 04:18:44', '2025-06-18 04:18:44', NULL),
(57, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247538HJRVC', 500000.00, 'pending', NULL, 'https://tripay.co.id/checkout/DEV-T33175247538HJRVC', NULL, '2025-06-19 04:28:34', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:28:34', '2025-06-18 04:28:34', NULL),
(58, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247538HJRVC', 500000.00, 'pending', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247538HJRVC\\\",\\\"merchant_ref\\\":\\\"INV-158-1750220914\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/158\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247538HJRVC\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750224454,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_158\\\",\\\"name\\\":\\\"Invoice #158\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247538HJRVC\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247538HJRVC', NULL, '2025-06-19 04:28:34', NULL, '2025-06-18 04:28:34', '2025-06-18 04:28:34', NULL),
(59, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247539ZEF25', 500000.00, 'pending', NULL, 'https://tripay.co.id/checkout/DEV-T33175247539ZEF25', NULL, '2025-06-19 04:29:50', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:29:50', '2025-06-18 04:29:50', NULL),
(60, 158, 268, 'tripay', 'QRIS', 'DEV-T33175247539ZEF25', 500000.00, 'pending', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247539ZEF25\\\",\\\"merchant_ref\\\":\\\"INV-158-1750220990\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/158\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247539ZEF25\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750224529,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_158\\\",\\\"name\\\":\\\"Invoice #158\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247539ZEF25\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247539ZEF25', NULL, '2025-06-19 04:29:50', NULL, '2025-06-18 04:29:50', '2025-06-18 04:29:50', NULL),
(61, 158, 268, 'tripay', 'QRIS', 'DEV-T331752475400CZCA', 500000.00, 'success', NULL, 'https://tripay.co.id/checkout/DEV-T331752475400CZCA', '2025-06-18 04:48:30', '2025-06-19 04:30:56', 'Pembayaran invoice INV-202506180001', '2025-06-18 04:30:56', '2025-06-18 04:48:30', NULL),
(62, 158, 268, 'tripay', 'QRIS', 'DEV-T331752475400CZCA', 500000.00, 'success', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T331752475400CZCA\\\",\\\"merchant_ref\\\":\\\"INV-158-1750221056\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/158\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T331752475400CZCA\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750224596,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_158\\\",\\\"name\\\":\\\"Invoice #158\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T331752475400CZCA\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T331752475400CZCA', '2025-06-18 04:48:09', '2025-06-19 04:30:56', NULL, '2025-06-18 04:30:56', '2025-06-18 04:48:09', NULL),
(63, 159, 268, 'tripay', 'QRIS', 'DEV-T33175247553KWK51', 500000.00, 'success', NULL, 'https://tripay.co.id/checkout/DEV-T33175247553KWK51', '2025-06-18 05:07:25', '2025-06-19 05:06:40', 'Pembayaran invoice INV-202506180002', '2025-06-18 05:06:40', '2025-06-18 05:07:25', NULL),
(64, 159, 268, 'tripay', 'QRIS', 'DEV-T33175247553KWK51', 500000.00, 'pending', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247553KWK51\\\",\\\"merchant_ref\\\":\\\"INV-159-1750223200\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/159\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247553KWK51\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750226740,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_159\\\",\\\"name\\\":\\\"Invoice #159\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247553KWK51\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247553KWK51', NULL, '2025-06-19 05:06:40', NULL, '2025-06-18 05:06:40', '2025-06-18 05:06:40', NULL),
(65, 160, 268, 'midtrans', 'snap', 'INV-160-1750223657', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"69834f46-ede5-4c03-af31-a3825ad42676\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/69834f46-ede5-4c03-af31-a3825ad42676', NULL, '2025-06-19 05:14:17', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:14:17', '2025-06-18 05:14:17', NULL),
(66, 160, 268, 'midtrans', 'snap', 'INV-160-1750223778', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"a723d4cd-85a4-43dc-801a-a8a62b9eb5ca\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/a723d4cd-85a4-43dc-801a-a8a62b9eb5ca', NULL, '2025-06-19 05:16:18', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:16:18', '2025-06-18 05:16:18', NULL),
(67, 160, 268, 'midtrans', 'snap', 'INV-160-1750224252', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"d676372d-eecb-49fc-96ce-279b0bb22101\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/d676372d-eecb-49fc-96ce-279b0bb22101', NULL, '2025-06-19 05:24:12', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:24:12', '2025-06-18 05:24:12', NULL),
(68, 160, 268, 'midtrans', 'snap', 'INV-160-1750224442', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"21147d3a-220f-40b3-ab65-e2b17c2522bf\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/21147d3a-220f-40b3-ab65-e2b17c2522bf', NULL, '2025-06-19 05:27:22', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:27:22', '2025-06-18 05:27:22', NULL),
(69, 160, 268, 'midtrans', 'snap', 'INV-160-1750224499', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"9b741544-d974-4384-bcd1-5ccaeb7e970e\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/9b741544-d974-4384-bcd1-5ccaeb7e970e', NULL, '2025-06-19 05:28:19', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:28:19', '2025-06-18 05:28:19', NULL),
(70, 160, 268, 'midtrans', 'snap', 'INV-160-1750224511', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"d0df4882-ef48-40f5-8e93-b8230d579545\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/d0df4882-ef48-40f5-8e93-b8230d579545', NULL, '2025-06-19 05:28:31', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:28:31', '2025-06-18 05:28:31', NULL),
(71, 160, 268, 'midtrans', 'snap', 'INV-160-1750224599', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"97bf1ebc-abba-4555-aec8-3240a012ab68\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/97bf1ebc-abba-4555-aec8-3240a012ab68', NULL, '2025-06-19 05:29:59', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:29:59', '2025-06-18 05:29:59', NULL),
(72, 160, 268, 'midtrans', 'snap', 'INV-160-1750224660', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"e8b0f552-dbca-42ef-a0da-b7a0587274a4\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/e8b0f552-dbca-42ef-a0da-b7a0587274a4', NULL, '2025-06-19 05:31:00', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:31:00', '2025-06-18 05:31:00', NULL),
(73, 160, 268, 'midtrans', 'snap', 'INV-160-1750225272', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"b7e44c0b-4c68-48ac-a358-1227d28399f6\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/b7e44c0b-4c68-48ac-a358-1227d28399f6', NULL, '2025-06-19 05:41:12', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:41:12', '2025-06-18 05:41:12', NULL),
(74, 160, 268, 'midtrans', 'snap', 'INV-160-1750225350', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"f4351da6-8b36-4012-9421-f43ad5e833f5\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/f4351da6-8b36-4012-9421-f43ad5e833f5', NULL, '2025-06-19 05:42:30', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:42:30', '2025-06-18 05:42:30', NULL),
(75, 160, 268, 'midtrans', 'snap', 'INV-160-1750225455', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"bd8fe1b7-b7e5-4ae8-8d14-b9d3cc09cb1a\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/bd8fe1b7-b7e5-4ae8-8d14-b9d3cc09cb1a', NULL, '2025-06-19 05:44:15', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:44:15', '2025-06-18 05:44:16', NULL),
(76, 160, 268, 'midtrans', 'snap', 'INV-160-1750225816', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"1061b66f-ad56-4374-abf2-dffd22c2afd9\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/1061b66f-ad56-4374-abf2-dffd22c2afd9', NULL, '2025-06-19 05:50:16', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:50:16', '2025-06-18 05:50:17', NULL),
(77, 160, 268, 'midtrans', 'snap', 'INV-160-1750225890', 500000.00, 'pending', '\"{\\\"snap_token\\\":\\\"d0b36571-17e7-4310-a55a-082c0b18cadd\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/d0b36571-17e7-4310-a55a-082c0b18cadd', NULL, '2025-06-19 05:51:30', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:51:30', '2025-06-18 05:51:30', NULL),
(78, 160, 268, 'tripay', 'QRIS', 'DEV-T33175247571ERHC7', 500000.00, 'pending', NULL, 'https://tripay.co.id/checkout/DEV-T33175247571ERHC7', NULL, '2025-06-19 05:58:10', 'Pembayaran invoice INV-202506180003', '2025-06-18 05:58:10', '2025-06-18 05:58:10', NULL),
(79, 160, 268, 'tripay', 'QRIS', 'DEV-T33175247571ERHC7', 500000.00, 'success', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247571ERHC7\\\",\\\"merchant_ref\\\":\\\"INV-160-1750226290\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS\\\",\\\"payment_name\\\":\\\"QRIS by ShopeePay\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/160\\\",\\\"amount\\\":5785,\\\"fee_merchant\\\":0,\\\"fee_customer\\\":785,\\\"total_fee\\\":785,\\\"amount_received\\\":5000,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247571ERHC7\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750229830,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_160\\\",\\\"name\\\":\\\"Invoice #160\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS (ShopeePay)\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247571ERHC7\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247571ERHC7', '2025-06-18 05:58:56', '2025-06-19 05:58:10', NULL, '2025-06-18 05:58:10', '2025-06-18 05:58:56', NULL),
(80, 161, 268, 'midtrans', 'snap', 'INV-161-1750246865', 500000.00, 'success', '\"{\\\"snap_token\\\":\\\"9e97d7f5-6d60-4522-bf29-ea79c7a9c2e3\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/9e97d7f5-6d60-4522-bf29-ea79c7a9c2e3', '2025-06-18 11:41:37', '2025-06-19 11:41:05', 'Pembayaran invoice INV-202506180004', '2025-06-18 11:41:05', '2025-06-18 11:41:37', NULL),
(81, 162, 268, 'midtrans', 'snap', 'INV-162-1750247471', 500000.00, 'success', '\"{\\\"snap_token\\\":\\\"782d07f2-db49-40cc-a8ac-423cd14260a8\\\"}\"', 'https://app.sandbox.midtrans.com/snap/v2/vtweb/782d07f2-db49-40cc-a8ac-423cd14260a8', '2025-06-18 11:51:47', '2025-06-19 11:51:11', 'Pembayaran invoice INV-202506180005', '2025-06-18 11:51:11', '2025-06-18 11:51:47', NULL),
(82, 163, 268, 'tripay', 'ALFAMART', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 11:57:26', 'Pembayaran invoice INV-202506180006 via ALFAMART', '2025-06-18 11:57:26', '2025-06-18 11:57:26', NULL),
(83, 163, 268, 'tripay', 'INDOMARET', NULL, 500000.00, 'pending', NULL, NULL, NULL, '2025-06-19 11:57:45', 'Pembayaran invoice INV-202506180006 via INDOMARET', '2025-06-18 11:57:45', '2025-06-18 11:57:45', NULL),
(84, 163, 268, 'tripay', 'QRIS2', 'DEV-T33175247703BGZMX', 500000.00, 'pending', NULL, 'https://tripay.co.id/checkout/DEV-T33175247703BGZMX', NULL, '2025-06-19 11:58:05', 'Pembayaran invoice INV-202506180006 via QRIS2', '2025-06-18 11:58:05', '2025-06-18 11:58:06', NULL),
(85, 163, 268, 'tripay', 'QRIS2', 'DEV-T33175247703BGZMX', 500000.00, 'success', '\"{\\\"success\\\":true,\\\"message\\\":\\\"\\\",\\\"data\\\":{\\\"reference\\\":\\\"DEV-T33175247703BGZMX\\\",\\\"merchant_ref\\\":\\\"INV-163-1750247885\\\",\\\"payment_selection_type\\\":\\\"static\\\",\\\"payment_method\\\":\\\"QRIS2\\\",\\\"payment_name\\\":\\\"QRIS\\\",\\\"customer_name\\\":\\\"isna\\\",\\\"customer_email\\\":\\\"202506160001@domain.com\\\",\\\"customer_phone\\\":\\\"081280090373\\\",\\\"callback_url\\\":null,\\\"return_url\\\":\\\"http:\\\\\\/\\\\\\/localhost:8000\\\\\\/customer\\\\\\/payment\\\\\\/callback\\\\\\/163\\\",\\\"amount\\\":5000,\\\"fee_merchant\\\":785,\\\"fee_customer\\\":0,\\\"total_fee\\\":785,\\\"amount_received\\\":4215,\\\"pay_code\\\":null,\\\"pay_url\\\":null,\\\"checkout_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/checkout\\\\\\/DEV-T33175247703BGZMX\\\",\\\"status\\\":\\\"UNPAID\\\",\\\"expired_time\\\":1750334226,\\\"order_items\\\":[{\\\"sku\\\":\\\"invoice_163\\\",\\\"name\\\":\\\"Invoice #163\\\",\\\"price\\\":5000,\\\"quantity\\\":1,\\\"subtotal\\\":5000,\\\"product_url\\\":null,\\\"image_url\\\":null}],\\\"instructions\\\":[{\\\"title\\\":\\\"Pembayaran via QRIS\\\",\\\"steps\\\":[\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Pindai\\\\\\/Scan QR Code yang tersedia\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]},{\\\"title\\\":\\\"Pembayaran via QRIS (Mobile)\\\",\\\"steps\\\":[\\\"Download QR Code pada invoice\\\",\\\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\\\",\\\"Upload QR Code yang telah di download tadi\\\",\\\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\\\",\\\"Selesaikan proses pembayaran Anda\\\",\\\"Transaksi selesai. Simpan bukti pembayaran Anda\\\"]}],\\\"qr_string\\\":\\\"SANDBOX MODE\\\",\\\"qr_url\\\":\\\"https:\\\\\\/\\\\\\/tripay.co.id\\\\\\/qr\\\\\\/DEV-T33175247703BGZMX\\\"}}\"', 'https://tripay.co.id/checkout/DEV-T33175247703BGZMX', '2025-06-18 11:58:31', '2025-06-19 11:58:06', NULL, '2025-06-18 11:58:06', '2025-06-18 11:58:31', NULL);

-- --------------------------------------------------------

--
-- Table structure for table `payment_gateway_logs`
--

CREATE TABLE `payment_gateway_logs` (
  `id` bigint UNSIGNED NOT NULL,
  `gateway` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `status` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `action` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `request_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `response_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `transaction_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `invoice_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `payment_id` int DEFAULT NULL,
  `amount` decimal(15,2) DEFAULT NULL,
  `ip_address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_id` int DEFAULT NULL,
  `duration_ms` int DEFAULT NULL,
  `error_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `stack_trace` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `payment_gateway_logs`
--

INSERT INTO `payment_gateway_logs` (`id`, `gateway`, `type`, `status`, `action`, `message`, `request_data`, `response_data`, `transaction_id`, `invoice_id`, `payment_id`, `amount`, `ip_address`, `user_agent`, `user_id`, `duration_ms`, `error_code`, `stack_trace`, `created_at`, `updated_at`) VALUES
(1, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-05 15:34:16', '2025-06-05 15:34:16'),
(2, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 2715, NULL, NULL, '2025-06-05 15:34:35', '2025-06-05 15:34:35'),
(3, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 49, NULL, NULL, '2025-06-05 15:34:36', '2025-06-05 15:34:36'),
(4, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 70, NULL, NULL, '2025-06-05 16:41:43', '2025-06-05 16:41:43'),
(5, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 45, NULL, NULL, '2025-06-05 17:18:34', '2025-06-05 17:18:34'),
(6, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 53, NULL, NULL, '2025-06-05 18:41:23', '2025-06-05 18:41:23'),
(7, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 53, NULL, NULL, '2025-06-05 18:41:31', '2025-06-05 18:41:31'),
(8, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"193b3959-e2c2-4638-8998-b9190d20ab5e\"}', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 2142, '401', NULL, '2025-06-05 18:41:36', '2025-06-05 18:41:36'),
(9, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 96, NULL, NULL, '2025-06-07 07:17:26', '2025-06-07 07:17:26'),
(10, 'midtrans', 'connection_test', 'success', 'test_connection', 'Connection test successful - All API endpoints reachable', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 245, NULL, NULL, '2025-06-07 07:42:34', '2025-06-07 07:42:34'),
(11, 'midtrans', 'payment_create', 'success', 'create_payment', 'Payment created successfully for invoice INV-001', NULL, '{\"transaction_id\":\"TXN-12345\",\"amount\":100000,\"payment_method\":\"bank_transfer\",\"redirect_url\":\"https:\\/\\/app.sandbox.midtrans.com\\/snap\\/v3\\/redirection\\/...\"}', 'TXN-12345', 'INV-001', NULL, 100000.00, '127.0.0.1', 'Symfony', NULL, NULL, NULL, NULL, '2025-06-07 07:42:34', '2025-06-07 07:42:34'),
(12, 'midtrans', 'webhook', 'success', 'process_webhook', 'Webhook processed successfully - Payment status updated to PAID', '{\"notification_type\":\"transaction_status\",\"transaction_status\":\"capture\",\"fraud_status\":\"accept\",\"order_id\":\"INV-001\"}', NULL, 'TXN-12345', NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, NULL, NULL, NULL, '2025-06-07 07:42:34', '2025-06-07 07:42:34'),
(13, 'midtrans', 'configuration', 'success', 'update_configuration', 'Gateway configuration updated - Production mode enabled', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, NULL, NULL, NULL, '2025-06-07 07:42:34', '2025-06-07 07:42:34'),
(14, 'xendit', 'connection_test', 'failed', 'test_connection', 'Connection failed - Invalid API key provided', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 2340, 'AUTHENTICATION_ERROR', NULL, '2025-06-07 07:42:34', '2025-06-07 07:42:34'),
(15, 'tripay', 'payment_create', 'error', 'create_payment', 'Payment creation failed - Insufficient merchant balance', '{\"amount\":75000,\"payment_method\":\"BRIVA\",\"customer_name\":\"John Doe\"}', '{\"success\":false,\"message\":\"Insufficient balance\",\"data\":null}', 'TXN-67890', 'INV-002', NULL, 75000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', NULL, 1823, 'INSUFFICIENT_BALANCE', 'Exception in TripayService::createPayment() at line 156', '2025-06-07 07:37:34', '2025-06-07 07:37:34'),
(16, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 2049, NULL, NULL, '2025-06-07 07:44:20', '2025-06-07 07:44:20'),
(17, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-07 07:44:20', '2025-06-07 07:44:20'),
(21, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 83, NULL, NULL, '2025-06-07 07:45:52', '2025-06-07 07:45:52'),
(22, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-07 07:45:52', '2025-06-07 07:45:52'),
(23, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 44, NULL, NULL, '2025-06-07 07:46:18', '2025-06-07 07:46:18'),
(24, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-07 07:46:18', '2025-06-07 07:46:18'),
(25, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 77, NULL, NULL, '2025-06-07 17:00:48', '2025-06-07 17:00:48'),
(26, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-07 17:00:48', '2025-06-07 17:00:48'),
(27, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 70, NULL, NULL, '2025-06-07 17:05:08', '2025-06-07 17:05:08'),
(28, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 74, NULL, NULL, '2025-06-07 17:17:05', '2025-06-07 17:17:05'),
(29, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-07 17:17:05', '2025-06-07 17:17:05'),
(30, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 55, NULL, NULL, '2025-06-07 18:34:03', '2025-06-07 18:34:03'),
(31, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-07 18:34:03', '2025-06-07 18:34:03'),
(32, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 62, NULL, NULL, '2025-06-09 07:04:35', '2025-06-09 07:04:35'),
(33, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-09 07:04:35', '2025-06-09 07:04:35'),
(34, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 30, NULL, NULL, '2025-06-09 07:04:58', '2025-06-09 07:04:58'),
(35, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-09 07:05:15', '2025-06-09 07:05:15'),
(36, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 36, NULL, NULL, '2025-06-09 07:05:15', '2025-06-09 07:05:15'),
(37, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 28, NULL, NULL, '2025-06-09 07:05:15', '2025-06-09 07:05:15'),
(38, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '43.252.237.146', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-09 07:05:15', '2025-06-09 07:05:15'),
(39, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 441, NULL, NULL, '2025-06-11 20:45:20', '2025-06-11 20:45:20'),
(40, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-11 20:45:20', '2025-06-11 20:45:20'),
(41, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-11 20:47:06', '2025-06-11 20:47:06'),
(42, 'tripay', 'connection_test', 'failed', 'test_connection', 'Koneksi gagal: HTTP 400', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 215, NULL, NULL, '2025-06-11 20:47:06', '2025-06-11 20:47:06'),
(43, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 44, NULL, NULL, '2025-06-11 20:47:11', '2025-06-11 20:47:11'),
(44, 'tripay', 'connection_test', 'failed', 'test_connection', 'Koneksi gagal: HTTP 400', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 150, NULL, NULL, '2025-06-11 20:47:11', '2025-06-11 20:47:11'),
(45, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-11 20:47:16', '2025-06-11 20:47:16'),
(46, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"3dd4016e-223f-4af3-8d53-0ea26f1731fa\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 164, '401', NULL, '2025-06-11 20:47:17', '2025-06-11 20:47:17'),
(47, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"41805ea1-49d3-40b2-8c8a-046722c22405\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 134, '401', NULL, '2025-06-11 20:47:18', '2025-06-11 20:47:18'),
(48, 'tripay', 'webhook', 'failed', 'process_webhook', 'Webhook processing failed: Invalid webhook data', '{\"reference\":null,\"merchant_ref\":null,\"payment_method\":\"DANA\",\"payment_method_code\":\"DANA\",\"total_amount\":200000,\"fee_merchant\":2000,\"fee_customer\":2000,\"total_fee\":4000,\"amount_received\":196000,\"is_closed_payment\":1,\"status\":\"UNPAID\",\"paid_at\":null,\"note\":\"Test Callback\"}', NULL, NULL, NULL, NULL, NULL, '95.111.200.230', 'TriPay Payment/1.0 (+https://tripay.co.id/developer?tab=callback)', NULL, NULL, NULL, NULL, '2025-06-11 20:49:08', '2025-06-11 20:49:08'),
(49, 'tripay', 'webhook', 'failed', 'process_webhook', 'Webhook processing failed: Invalid webhook data', '{\"reference\":null,\"merchant_ref\":null,\"payment_method\":\"DANA\",\"payment_method_code\":\"DANA\",\"total_amount\":200000,\"fee_merchant\":2000,\"fee_customer\":2000,\"total_fee\":4000,\"amount_received\":196000,\"is_closed_payment\":1,\"status\":\"PAID\",\"paid_at\":1749674970,\"note\":\"Test Callback\"}', NULL, NULL, NULL, NULL, NULL, '95.111.200.230', 'TriPay Payment/1.0 (+https://tripay.co.id/developer?tab=callback)', NULL, NULL, NULL, NULL, '2025-06-11 20:49:30', '2025-06-11 20:49:30'),
(50, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"ec975c64-bd25-4e91-9700-825f255c7f8f\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 145, '401', NULL, '2025-06-11 20:49:44', '2025-06-11 20:49:44'),
(51, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"d76d0934-0c3d-4e31-8051-b871f1782ffe\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 110, '401', NULL, '2025-06-11 20:51:47', '2025-06-11 20:51:47'),
(52, 'tripay', 'connection_test', 'failed', 'test_connection', 'Koneksi gagal: HTTP 400', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 152, NULL, NULL, '2025-06-11 20:51:47', '2025-06-11 20:51:47'),
(53, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"9a0c7183-7166-4eb6-af7e-4f70de3fe638\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 117, '401', NULL, '2025-06-11 20:52:56', '2025-06-11 20:52:56'),
(54, 'tripay', 'connection_test', 'failed', 'test_connection', 'Koneksi gagal: HTTP 400', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 143, NULL, NULL, '2025-06-11 20:52:56', '2025-06-11 20:52:56'),
(55, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-11 20:53:27', '2025-06-11 20:53:27'),
(56, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 199, NULL, NULL, '2025-06-11 20:53:27', '2025-06-11 20:53:27'),
(57, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"53835aad-07f3-4b52-9dc6-0fbc2a0f849e\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 117, '401', NULL, '2025-06-11 20:53:27', '2025-06-11 20:53:27'),
(58, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 145, NULL, NULL, '2025-06-11 20:53:27', '2025-06-11 20:53:27'),
(59, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 153, NULL, NULL, '2025-06-11 20:53:35', '2025-06-11 20:53:35'),
(60, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"bca20453-cbb9-4d1a-9dd9-38fd05e09e86\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 124, '401', NULL, '2025-06-11 20:58:24', '2025-06-11 20:58:24'),
(61, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 142, NULL, NULL, '2025-06-11 20:58:24', '2025-06-11 20:58:24'),
(62, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Test koneksi gagal: Midtrans API is returning API error. HTTP status code: 401 API response: {\"status_code\":\"401\",\"status_message\":\"Unknown Merchant server_key/id\",\"id\":\"e2d510e6-90e8-4e48-adb9-308fb6fa6f1a\"}', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 146, '401', NULL, '2025-06-11 21:08:18', '2025-06-11 21:08:18'),
(63, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 208, NULL, NULL, '2025-06-11 21:08:18', '2025-06-11 21:08:18'),
(64, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-11 21:08:44', '2025-06-11 21:08:44'),
(65, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 216, NULL, NULL, '2025-06-11 21:08:44', '2025-06-11 21:08:44'),
(66, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 118, NULL, NULL, '2025-06-11 21:08:44', '2025-06-11 21:08:44'),
(67, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 169, NULL, NULL, '2025-06-11 21:08:44', '2025-06-11 21:08:44'),
(68, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 126, NULL, NULL, '2025-06-11 21:08:50', '2025-06-11 21:08:50'),
(69, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 1, 200, NULL, NULL, '2025-06-12 03:23:22', '2025-06-12 03:23:22'),
(70, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 1, 216, NULL, NULL, '2025-06-12 03:23:22', '2025-06-12 03:23:22'),
(71, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 1, NULL, NULL, NULL, '2025-06-12 03:24:45', '2025-06-12 03:24:45'),
(72, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 1, 207, NULL, NULL, '2025-06-12 03:24:45', '2025-06-12 03:24:45'),
(73, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 1, 116, NULL, NULL, '2025-06-12 03:24:46', '2025-06-12 03:24:46'),
(74, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '43.243.142.38', 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile Safari/537.36', 1, 143, NULL, NULL, '2025-06-12 03:24:46', '2025-06-12 03:24:46'),
(75, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 182, NULL, NULL, '2025-06-13 10:30:20', '2025-06-13 10:30:20'),
(76, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 231, NULL, NULL, '2025-06-13 10:30:21', '2025-06-13 10:30:21'),
(77, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 183, NULL, NULL, '2025-06-13 10:39:41', '2025-06-13 10:39:41'),
(78, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 224, NULL, NULL, '2025-06-13 10:39:41', '2025-06-13 10:39:41'),
(79, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 213, NULL, NULL, '2025-06-13 10:41:11', '2025-06-13 10:41:11'),
(80, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 142, NULL, NULL, '2025-06-13 10:45:08', '2025-06-13 10:45:08'),
(81, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 207, NULL, NULL, '2025-06-13 10:45:08', '2025-06-13 10:45:08'),
(82, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 145, NULL, NULL, '2025-06-13 10:45:29', '2025-06-13 10:45:29'),
(83, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 211, NULL, NULL, '2025-06-13 10:45:29', '2025-06-13 10:45:29'),
(84, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 164, NULL, NULL, '2025-06-13 10:45:33', '2025-06-13 10:45:33'),
(85, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 187, NULL, NULL, '2025-06-13 10:45:34', '2025-06-13 10:45:34'),
(86, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-13 10:53:52', '2025-06-13 10:53:52'),
(87, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 211, NULL, NULL, '2025-06-13 10:53:52', '2025-06-13 10:53:52'),
(88, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 147, NULL, NULL, '2025-06-13 10:53:52', '2025-06-13 10:53:52'),
(89, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 185, NULL, NULL, '2025-06-13 10:53:53', '2025-06-13 10:53:53'),
(90, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 170, NULL, NULL, '2025-06-13 10:54:00', '2025-06-13 10:54:00'),
(91, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 174, NULL, NULL, '2025-06-13 10:55:20', '2025-06-13 10:55:20'),
(92, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-13 12:14:33', '2025-06-13 12:14:33'),
(93, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 178, NULL, NULL, '2025-06-13 12:14:33', '2025-06-13 12:14:33'),
(94, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-13 12:14:33', '2025-06-13 12:14:33'),
(95, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 10 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 171, NULL, NULL, '2025-06-13 12:14:33', '2025-06-13 12:14:33'),
(96, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-13 17:06:39', '2025-06-13 17:06:39'),
(97, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-13 17:06:39', '2025-06-13 17:06:39'),
(98, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 07:36:05', '2025-06-15 07:36:05'),
(99, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 07:36:05', '2025-06-15 07:36:05'),
(100, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 07:36:29', '2025-06-15 07:36:29'),
(101, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 220, NULL, NULL, '2025-06-15 07:36:29', '2025-06-15 07:36:29'),
(102, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 162, NULL, NULL, '2025-06-15 07:36:29', '2025-06-15 07:36:29'),
(103, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 07:36:29', '2025-06-15 07:36:29'),
(104, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 134, NULL, NULL, '2025-06-15 07:36:34', '2025-06-15 07:36:34'),
(105, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 188, NULL, NULL, '2025-06-15 07:36:37', '2025-06-15 07:36:37'),
(106, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 07:36:37', '2025-06-15 07:36:37'),
(107, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 170, NULL, NULL, '2025-06-15 08:01:52', '2025-06-15 08:01:52'),
(108, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 08:01:52', '2025-06-15 08:01:52'),
(109, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 141, NULL, NULL, '2025-06-15 08:01:59', '2025-06-15 08:01:59'),
(110, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode production', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 08:02:01', '2025-06-15 08:02:01'),
(111, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 154, NULL, NULL, '2025-06-15 08:02:01', '2025-06-15 08:02:01'),
(112, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 159, NULL, NULL, '2025-06-15 08:02:01', '2025-06-15 08:02:01'),
(113, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-15 08:02:01', '2025-06-15 08:02:01'),
(114, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 184, NULL, NULL, '2025-06-16 18:59:41', '2025-06-16 18:59:41'),
(115, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 18:59:41', '2025-06-16 18:59:41'),
(116, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 149, NULL, NULL, '2025-06-16 19:25:06', '2025-06-16 19:25:06'),
(117, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 19:25:06', '2025-06-16 19:25:06'),
(118, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 153, NULL, NULL, '2025-06-16 19:25:09', '2025-06-16 19:25:09'),
(119, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 19:25:09', '2025-06-16 19:25:09'),
(120, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 137, NULL, NULL, '2025-06-16 19:25:14', '2025-06-16 19:25:14'),
(121, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 19:25:14', '2025-06-16 19:25:14'),
(122, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 169, NULL, NULL, '2025-06-16 19:29:56', '2025-06-16 19:29:56'),
(123, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 19:29:56', '2025-06-16 19:29:56'),
(124, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 20:01:39', '2025-06-16 20:01:39'),
(125, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 156, NULL, NULL, '2025-06-16 20:01:39', '2025-06-16 20:01:39'),
(126, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 58, NULL, NULL, '2025-06-16 20:01:40', '2025-06-16 20:01:40'),
(127, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-16 20:01:40', '2025-06-16 20:01:40'),
(128, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 132, NULL, NULL, '2025-06-18 03:43:42', '2025-06-18 03:43:42'),
(129, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:43:42', '2025-06-18 03:43:42'),
(130, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 66, NULL, NULL, '2025-06-18 03:43:58', '2025-06-18 03:43:58'),
(131, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:43:58', '2025-06-18 03:43:58'),
(132, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 54, NULL, NULL, '2025-06-18 03:44:11', '2025-06-18 03:44:11'),
(133, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:44:11', '2025-06-18 03:44:11'),
(134, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 111, NULL, NULL, '2025-06-18 03:52:23', '2025-06-18 03:52:23'),
(135, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:52:23', '2025-06-18 03:52:23'),
(136, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 76, NULL, NULL, '2025-06-18 03:57:59', '2025-06-18 03:57:59'),
(137, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:57:59', '2025-06-18 03:57:59'),
(138, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:58:08', '2025-06-18 03:58:08'),
(139, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:58:08', '2025-06-18 03:58:08'),
(140, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:58:10', '2025-06-18 03:58:10'),
(141, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:58:10', '2025-06-18 03:58:10'),
(142, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:58:33', '2025-06-18 03:58:33'),
(143, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 0 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 966, NULL, NULL, '2025-06-18 03:58:34', '2025-06-18 03:58:34'),
(144, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 03:58:34', '2025-06-18 03:58:34'),
(145, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 0 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 201, NULL, NULL, '2025-06-18 03:58:34', '2025-06-18 03:58:34');
INSERT INTO `payment_gateway_logs` (`id`, `gateway`, `type`, `status`, `action`, `message`, `request_data`, `response_data`, `transaction_id`, `invoice_id`, `payment_id`, `amount`, `ip_address`, `user_agent`, `user_id`, `duration_ms`, `error_code`, `stack_trace`, `created_at`, `updated_at`) VALUES
(146, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 0 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 201, NULL, NULL, '2025-06-18 03:58:50', '2025-06-18 03:58:50'),
(147, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 04:05:53', '2025-06-18 04:05:53'),
(148, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 0 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 205, NULL, NULL, '2025-06-18 04:05:54', '2025-06-18 04:05:54'),
(149, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 04:05:54', '2025-06-18 04:05:54'),
(150, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 0 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 203, NULL, NULL, '2025-06-18 04:05:54', '2025-06-18 04:05:54'),
(151, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 0 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 198, NULL, NULL, '2025-06-18 04:06:00', '2025-06-18 04:06:00'),
(152, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 158 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247533VDUAF\",\"merchant_ref\":\"INV-158-1750220231\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/158\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247533VDUAF\",\"status\":\"UNPAID\",\"expired_time\":1750223770,\"order_items\":[{\"sku\":\"invoice_158\",\"name\":\"Invoice #158\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247533VDUAF\"}}', 'DEV-T33175247533VDUAF', '158', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 04:17:11', '2025-06-18 04:17:11'),
(153, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 158 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247534LYFDE\",\"merchant_ref\":\"INV-158-1750220324\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/158\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247534LYFDE\",\"status\":\"UNPAID\",\"expired_time\":1750223864,\"order_items\":[{\"sku\":\"invoice_158\",\"name\":\"Invoice #158\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247534LYFDE\"}}', 'DEV-T33175247534LYFDE', '158', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 04:18:44', '2025-06-18 04:18:44'),
(154, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 04:27:43', '2025-06-18 04:27:43'),
(155, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 255, NULL, NULL, '2025-06-18 04:27:43', '2025-06-18 04:27:43'),
(156, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 158 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247538HJRVC\",\"merchant_ref\":\"INV-158-1750220914\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/158\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247538HJRVC\",\"status\":\"UNPAID\",\"expired_time\":1750224454,\"order_items\":[{\"sku\":\"invoice_158\",\"name\":\"Invoice #158\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247538HJRVC\"}}', 'DEV-T33175247538HJRVC', '158', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 04:28:34', '2025-06-18 04:28:34'),
(157, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 158 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247539ZEF25\",\"merchant_ref\":\"INV-158-1750220990\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/158\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247539ZEF25\",\"status\":\"UNPAID\",\"expired_time\":1750224529,\"order_items\":[{\"sku\":\"invoice_158\",\"name\":\"Invoice #158\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247539ZEF25\"}}', 'DEV-T33175247539ZEF25', '158', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 04:29:50', '2025-06-18 04:29:50'),
(158, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 158 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T331752475400CZCA\",\"merchant_ref\":\"INV-158-1750221056\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/158\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T331752475400CZCA\",\"status\":\"UNPAID\",\"expired_time\":1750224596,\"order_items\":[{\"sku\":\"invoice_158\",\"name\":\"Invoice #158\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T331752475400CZCA\"}}', 'DEV-T331752475400CZCA', '158', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 04:30:56', '2025-06-18 04:30:56'),
(159, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 159 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247553KWK51\",\"merchant_ref\":\"INV-159-1750223200\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/159\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247553KWK51\",\"status\":\"UNPAID\",\"expired_time\":1750226740,\"order_items\":[{\"sku\":\"invoice_159\",\"name\":\"Invoice #159\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247553KWK51\"}}', 'DEV-T33175247553KWK51', '159', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 05:06:40', '2025-06-18 05:06:40'),
(160, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:07:54', '2025-06-18 05:07:54'),
(161, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:07:54', '2025-06-18 05:07:54'),
(162, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:07:56', '2025-06-18 05:07:56'),
(163, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:07:56', '2025-06-18 05:07:56'),
(164, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:08:01', '2025-06-18 05:08:01'),
(165, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 55, NULL, NULL, '2025-06-18 05:08:01', '2025-06-18 05:08:01'),
(166, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 63, NULL, NULL, '2025-06-18 05:08:01', '2025-06-18 05:08:01'),
(167, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:08:01', '2025-06-18 05:08:01'),
(168, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 52, NULL, NULL, '2025-06-18 05:11:08', '2025-06-18 05:11:08'),
(169, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:11:08', '2025-06-18 05:11:08'),
(170, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:17:15', '2025-06-18 05:17:15'),
(171, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 65, NULL, NULL, '2025-06-18 05:17:15', '2025-06-18 05:17:15'),
(172, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 53, NULL, NULL, '2025-06-18 05:17:15', '2025-06-18 05:17:15'),
(173, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:17:15', '2025-06-18 05:17:15'),
(174, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 51, NULL, NULL, '2025-06-18 05:24:07', '2025-06-18 05:24:07'),
(175, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 61, NULL, NULL, '2025-06-18 05:24:22', '2025-06-18 05:24:22'),
(176, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:24:22', '2025-06-18 05:24:22'),
(177, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 132, NULL, NULL, '2025-06-18 05:36:34', '2025-06-18 05:36:34'),
(178, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 65, NULL, NULL, '2025-06-18 05:36:45', '2025-06-18 05:36:45'),
(179, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 65, NULL, NULL, '2025-06-18 05:38:00', '2025-06-18 05:38:00'),
(180, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:42:04', '2025-06-18 05:42:04'),
(181, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 86, NULL, NULL, '2025-06-18 05:42:04', '2025-06-18 05:42:04'),
(182, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 74, NULL, NULL, '2025-06-18 05:42:04', '2025-06-18 05:42:04'),
(183, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:42:04', '2025-06-18 05:42:04'),
(184, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 59, NULL, NULL, '2025-06-18 05:42:09', '2025-06-18 05:42:09'),
(185, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:56:57', '2025-06-18 05:56:57'),
(186, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:56:57', '2025-06-18 05:56:57'),
(187, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:57:27', '2025-06-18 05:57:27'),
(188, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:57:27', '2025-06-18 05:57:27'),
(189, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:57:45', '2025-06-18 05:57:45'),
(190, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:57:45', '2025-06-18 05:57:45'),
(191, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:57:50', '2025-06-18 05:57:50'),
(192, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 280, NULL, NULL, '2025-06-18 05:57:50', '2025-06-18 05:57:50'),
(193, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 05:57:50', '2025-06-18 05:57:50'),
(194, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 245, NULL, NULL, '2025-06-18 05:57:51', '2025-06-18 05:57:51'),
(195, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 203, NULL, NULL, '2025-06-18 05:57:55', '2025-06-18 05:57:55'),
(196, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 160 dengan metode QRIS', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247571ERHC7\",\"merchant_ref\":\"INV-160-1750226290\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS\",\"payment_name\":\"QRIS by ShopeePay\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/160\",\"amount\":5785,\"fee_merchant\":0,\"fee_customer\":785,\"total_fee\":785,\"amount_received\":5000,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247571ERHC7\",\"status\":\"UNPAID\",\"expired_time\":1750229830,\"order_items\":[{\"sku\":\"invoice_160\",\"name\":\"Invoice #160\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS (ShopeePay)\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247571ERHC7\"}}', 'DEV-T33175247571ERHC7', '160', NULL, 5000.00, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 05:58:10', '2025-06-18 05:58:10'),
(197, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Symfony', NULL, 239, NULL, NULL, '2025-06-18 06:03:52', '2025-06-18 06:03:52'),
(198, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:37:08', '2025-06-18 11:37:08'),
(199, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 737, NULL, NULL, '2025-06-18 11:37:09', '2025-06-18 11:37:09'),
(200, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:23', '2025-06-18 11:39:23'),
(201, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 219, NULL, NULL, '2025-06-18 11:39:23', '2025-06-18 11:39:23'),
(202, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:41', '2025-06-18 11:39:41'),
(203, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 189, NULL, NULL, '2025-06-18 11:39:41', '2025-06-18 11:39:41'),
(204, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:54', '2025-06-18 11:39:54'),
(205, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:54', '2025-06-18 11:39:54'),
(206, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:57', '2025-06-18 11:39:57'),
(207, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:57', '2025-06-18 11:39:57'),
(208, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:58', '2025-06-18 11:39:58'),
(209, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:39:58', '2025-06-18 11:39:58'),
(210, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:40:03', '2025-06-18 11:40:03'),
(211, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 48, NULL, NULL, '2025-06-18 11:40:03', '2025-06-18 11:40:03'),
(212, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 52, NULL, NULL, '2025-06-18 11:40:04', '2025-06-18 11:40:04'),
(213, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:40:04', '2025-06-18 11:40:04'),
(214, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 49, NULL, NULL, '2025-06-18 11:40:07', '2025-06-18 11:40:07'),
(215, 'midtrans', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil ke Midtrans API', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 113, NULL, NULL, '2025-06-18 11:52:32', '2025-06-18 11:52:32'),
(216, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:52:32', '2025-06-18 11:52:32'),
(217, 'midtrans', 'configuration', 'success', 'update_configuration', 'Konfigurasi midtrans berhasil diperbarui - Gateway dinonaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:52:39', '2025-06-18 11:52:39'),
(218, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:52:39', '2025-06-18 11:52:39'),
(219, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:52:40', '2025-06-18 11:52:40'),
(220, 'tripay', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:52:40', '2025-06-18 11:52:40'),
(221, 'tripay', 'configuration', 'success', 'update_configuration', 'Konfigurasi tripay berhasil diperbarui - Gateway diaktifkan, Mode sandbox', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:53:11', '2025-06-18 11:53:11'),
(222, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 268, NULL, NULL, '2025-06-18 11:53:12', '2025-06-18 11:53:12'),
(223, 'midtrans', 'connection_test', 'failed', 'test_connection', 'Gateway tidak aktif', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, NULL, NULL, NULL, '2025-06-18 11:53:12', '2025-06-18 11:53:12'),
(224, 'tripay', 'connection_test', 'success', 'test_connection', 'Koneksi berhasil - 7 payment channels tersedia', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', 1, 400, NULL, NULL, '2025-06-18 11:53:12', '2025-06-18 11:53:12'),
(225, 'tripay', 'payment_create', 'success', 'create_payment', 'Payment berhasil dibuat untuk invoice 163 dengan metode QRIS2', NULL, '{\"success\":true,\"message\":\"\",\"data\":{\"reference\":\"DEV-T33175247703BGZMX\",\"merchant_ref\":\"INV-163-1750247885\",\"payment_selection_type\":\"static\",\"payment_method\":\"QRIS2\",\"payment_name\":\"QRIS\",\"customer_name\":\"isna\",\"customer_email\":\"202506160001@domain.com\",\"customer_phone\":\"081280090373\",\"callback_url\":null,\"return_url\":\"http:\\/\\/localhost:8000\\/customer\\/payment\\/callback\\/163\",\"amount\":5000,\"fee_merchant\":785,\"fee_customer\":0,\"total_fee\":785,\"amount_received\":4215,\"pay_code\":null,\"pay_url\":null,\"checkout_url\":\"https:\\/\\/tripay.co.id\\/checkout\\/DEV-T33175247703BGZMX\",\"status\":\"UNPAID\",\"expired_time\":1750334226,\"order_items\":[{\"sku\":\"invoice_163\",\"name\":\"Invoice #163\",\"price\":5000,\"quantity\":1,\"subtotal\":5000,\"product_url\":null,\"image_url\":null}],\"instructions\":[{\"title\":\"Pembayaran via QRIS\",\"steps\":[\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Pindai\\/Scan QR Code yang tersedia\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]},{\"title\":\"Pembayaran via QRIS (Mobile)\",\"steps\":[\"Download QR Code pada invoice\",\"Masuk ke aplikasi dompet digital Anda yang telah mendukung QRIS\",\"Upload QR Code yang telah di download tadi\",\"Akan muncul detail transaksi. Pastikan data transaksi sudah sesuai\",\"Selesaikan proses pembayaran Anda\",\"Transaksi selesai. Simpan bukti pembayaran Anda\"]}],\"qr_string\":\"SANDBOX MODE\",\"qr_url\":\"https:\\/\\/tripay.co.id\\/qr\\/DEV-T33175247703BGZMX\"}}', 'DEV-T33175247703BGZMX', '163', NULL, 5000.00, '::1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36', NULL, NULL, NULL, NULL, '2025-06-18 11:58:06', '2025-06-18 11:58:06');

-- --------------------------------------------------------

--
-- Table structure for table `payment_gateway_settings`
--

CREATE TABLE `payment_gateway_settings` (
  `id` bigint UNSIGNED NOT NULL,
  `gateway` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT '0',
  `is_production` tinyint(1) NOT NULL DEFAULT '0',
  `configuration` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `supported_methods` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `webhook_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `payment_gateway_settings`
--

INSERT INTO `payment_gateway_settings` (`id`, `gateway`, `is_active`, `is_production`, `configuration`, `supported_methods`, `webhook_url`, `created_at`, `updated_at`) VALUES
(1, 'midtrans', 0, 0, '{\"server_key\":\"SB-Mid-server-UA0l_3na_JKQ8FYTRQAYywoF\",\"client_key\":\"SB-Mid-client-v8YXgRBXymXbdvIX\",\"supported_methods\":[\"credit_card\",\"bank_transfer\",\"gopay\",\"qris\"]}', '[\"credit_card\",\"bank_transfer\",\"gopay\",\"qris\"]', 'http://localhost:8000/webhook/midtrans', '2025-06-05 15:34:33', '2025-06-18 11:52:38'),
(2, 'tripay', 1, 0, '{\"api_key\":\"DEV-XrzmXEslm3ycYeGDgCqg34MaNyd9QSjKHAxgjueo\",\"private_key\":\"1mAHd-7IKPG-iGTpp-ybLfC-seTfP\",\"merchant_code\":\"T33175\",\"supported_methods\":[\"virtual_account\",\"e_wallet\",\"convenience_store\"]}', '[\"virtual_account\",\"e_wallet\",\"convenience_store\"]', 'http://localhost:8000/webhook/tripay', '2025-06-07 07:17:59', '2025-06-18 11:53:11'),
(3, 'xendit', 0, 0, '{\"secret_key\":\"\",\"public_key\":\"\",\"webhook_token\":\"\"}', '[\"virtual_account\",\"ewallet\",\"credit_card\",\"retail_outlet\"]', NULL, '2025-06-13 10:56:14', '2025-06-13 10:56:14');

-- --------------------------------------------------------

--
-- Table structure for table `pelanggan`
--

CREATE TABLE `pelanggan` (
  `id` bigint UNSIGNED NOT NULL,
  `nomer_layanan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nama_lengkap` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jenis_kelamin` enum('L','P') COLLATE utf8mb4_unicode_ci NOT NULL,
  `no_ktp_sim` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `foto_ktp_sim` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `no_hp_whatsapp` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `alamat_rumah` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `koordinat_lat` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `koordinat_lng` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `ssid` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `password_wifi` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `role` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pelanggan',
  `layanan_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `layanan_id` bigint UNSIGNED NOT NULL,
  `jenis_tagihan` enum('pascabayar','prabayar') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pascabayar',
  `tagihan_prorate` tinyint(1) NOT NULL DEFAULT '0',
  `hari_pemakaian` int DEFAULT NULL,
  `metode_prorate` enum('auto','manual') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'auto',
  `keterangan_prorate` text COLLATE utf8mb4_unicode_ci,
  `ppn` tinyint(1) NOT NULL DEFAULT '0',
  `ppn_persen` decimal(5,2) NOT NULL DEFAULT '0.00',
  `biaya_instalasi` decimal(15,2) NOT NULL DEFAULT '0.00',
  `diskon` decimal(15,2) NOT NULL DEFAULT '0.00',
  `jatuh_tempo_tanggal` int DEFAULT '1',
  `periode_billing` int NOT NULL DEFAULT '1',
  `total_biaya` decimal(15,2) NOT NULL DEFAULT '0.00',
  `keterangan_biaya` text COLLATE utf8mb4_unicode_ci,
  `coverage_area_id` bigint UNSIGNED DEFAULT NULL,
  `top_odp_id` bigint UNSIGNED DEFAULT NULL,
  `port_odp` int DEFAULT NULL,
  `mode_pelanggan` enum('PPPOE','HOTSPOT','STATIC','LAIN-LAIN') COLLATE utf8mb4_unicode_ci NOT NULL,
  `mikrotik_id` bigint UNSIGNED DEFAULT NULL,
  `secret_ppp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `password_ppp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `profile_ppp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `username_hotspot` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `profile_hotspot` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `ip_address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `username_static` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `password_static` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `keterangan_static` text COLLATE utf8mb4_unicode_ci,
  `status` enum('aktif','non_aktif','suspend','putus') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `tanggal_daftar` date NOT NULL,
  `didaftarkan_oleh` bigint UNSIGNED NOT NULL,
  `akun_mikrotik_created` tinyint(1) NOT NULL DEFAULT '0',
  `mikrotik_response` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `pelanggan`
--

INSERT INTO `pelanggan` (`id`, `nomer_layanan`, `nama_lengkap`, `jenis_kelamin`, `no_ktp_sim`, `foto_ktp_sim`, `email`, `no_hp_whatsapp`, `alamat_rumah`, `koordinat_lat`, `koordinat_lng`, `ssid`, `password_wifi`, `role`, `layanan_type`, `layanan_id`, `jenis_tagihan`, `tagihan_prorate`, `hari_pemakaian`, `metode_prorate`, `keterangan_prorate`, `ppn`, `ppn_persen`, `biaya_instalasi`, `diskon`, `jatuh_tempo_tanggal`, `periode_billing`, `total_biaya`, `keterangan_biaya`, `coverage_area_id`, `top_odp_id`, `port_odp`, `mode_pelanggan`, `mikrotik_id`, `secret_ppp`, `password_ppp`, `profile_ppp`, `username_hotspot`, `profile_hotspot`, `ip_address`, `username_static`, `password_static`, `keterangan_static`, `status`, `tanggal_daftar`, `didaftarkan_oleh`, `akun_mikrotik_created`, `mikrotik_response`, `created_at`, `updated_at`) VALUES
(268, '202506160001', 'isna', 'P', '1111111111', NULL, NULL, '081280090373', 'a', '-6.6554004012411045', '106.86123490333557', NULL, NULL, 'pelanggan', 'pppoe', 31, 'prabayar', 0, NULL, 'auto', NULL, 0, 0.00, 0.00, 0.00, 6, 1, 5000.00, 'Rincian Biaya:\r\n=== PERIODE TAGIHAN ===\r\n- Periode: Bulanan (1 bulan)\r\n=== KOMPONEN BIAYA ===\r\n- Layanan Internet: Rp 0\r\n\r\n=== TOTAL ===\r\nTotal Tagihan Bulanan: Rp 5.000\r\n\r\n=== INFO JATUH TEMPO ===\r\n- Jatuh Tempo: Tanggal 6 setiap bulan\r\n- Tagihan Berikutnya: 06/07/2025\r\n- Status: Akan Jatuh Tempo\r\n\r\nCatatan: Ini adalah rincian lengkap biaya layanan internet.', 5, 17, 1, 'PPPOE', 10, 'isna', 'isna', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'aktif', '2025-06-16', 1, 1, 'PPP Secret created successfully', '2025-06-16 16:06:48', '2025-06-19 01:45:42');

-- --------------------------------------------------------

--
-- Table structure for table `pembelians`
--

CREATE TABLE `pembelians` (
  `id` bigint UNSIGNED NOT NULL,
  `nomor_transaksi` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `tanggal_pembelian` date NOT NULL,
  `pelanggan_id` bigint UNSIGNED DEFAULT NULL,
  `nama_pembeli` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `nomor_hp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `alamat` text COLLATE utf8mb4_unicode_ci,
  `tipe_transaksi` enum('produk','layanan','campuran') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'campuran',
  `subtotal` decimal(15,2) NOT NULL DEFAULT '0.00',
  `diskon_persen` decimal(5,2) NOT NULL DEFAULT '0.00',
  `diskon_amount` decimal(15,2) NOT NULL DEFAULT '0.00',
  `ppn_persen` decimal(5,2) NOT NULL DEFAULT '0.00',
  `ppn_amount` decimal(15,2) NOT NULL DEFAULT '0.00',
  `biaya_lain` decimal(15,2) NOT NULL DEFAULT '0.00',
  `keterangan_biaya_lain` text COLLATE utf8mb4_unicode_ci,
  `total_amount` decimal(15,2) NOT NULL DEFAULT '0.00',
  `status_pembayaran` enum('belum_bayar','lunas','cicilan') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'belum_bayar',
  `metode_pembayaran` enum('tunai','transfer','kartu_kredit','cicilan') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'tunai',
  `tanggal_bayar` date DEFAULT NULL,
  `catatan` text COLLATE utf8mb4_unicode_ci,
  `template_invoice_id` bigint UNSIGNED DEFAULT NULL,
  `invoice_html` longtext COLLATE utf8mb4_unicode_ci,
  `invoice_file_path` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_by` bigint UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `pembelian_items`
--

CREATE TABLE `pembelian_items` (
  `id` bigint UNSIGNED NOT NULL,
  `pembelian_id` bigint UNSIGNED NOT NULL,
  `item_type` enum('produk','layanan_jasa','layanan_pppoe','layanan_hotspot') COLLATE utf8mb4_unicode_ci NOT NULL,
  `item_id` bigint UNSIGNED NOT NULL,
  `nama_item` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi_item` text COLLATE utf8mb4_unicode_ci,
  `harga_satuan` decimal(15,2) NOT NULL,
  `quantity` int NOT NULL DEFAULT '1',
  `unit` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pcs',
  `diskon_item_persen` decimal(5,2) NOT NULL DEFAULT '0.00',
  `diskon_item_amount` decimal(15,2) NOT NULL DEFAULT '0.00',
  `subtotal_item` decimal(15,2) NOT NULL,
  `catatan_item` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `pendapatans`
--

CREATE TABLE `pendapatans` (
  `id` bigint UNSIGNED NOT NULL,
  `kode_transaksi` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
  `tanggal_transaksi` date NOT NULL,
  `kategori_id` bigint UNSIGNED NOT NULL,
  `deskripsi` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jumlah` decimal(15,2) NOT NULL,
  `metode_pembayaran` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `nomor_referensi` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `pelanggan_id` bigint UNSIGNED DEFAULT NULL,
  `nama_pembayar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `pembelian_id` bigint UNSIGNED DEFAULT NULL,
  `status` enum('draft','konfirmasi','selesai','batal') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'konfirmasi',
  `recurring` enum('tidak','harian','mingguan','bulanan','tahunan') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'tidak',
  `tanggal_recurring_berikutnya` date DEFAULT NULL,
  `file_bukti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `catatan` text COLLATE utf8mb4_unicode_ci,
  `pajak` decimal(15,2) NOT NULL DEFAULT '0.00',
  `biaya_admin` decimal(15,2) NOT NULL DEFAULT '0.00',
  `total_bersih` decimal(15,2) DEFAULT NULL,
  `created_by` bigint UNSIGNED DEFAULT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `pendapatans`
--

INSERT INTO `pendapatans` (`id`, `kode_transaksi`, `tanggal_transaksi`, `kategori_id`, `deskripsi`, `jumlah`, `metode_pembayaran`, `nomor_referensi`, `pelanggan_id`, `nama_pembayar`, `pembelian_id`, `status`, `recurring`, `tanggal_recurring_berikutnya`, `file_bukti`, `catatan`, `pajak`, `biaya_admin`, `total_bersih`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(2, 'IN2506020001', '2025-06-02', 4, 'Pembayaran Invoice INV-202506020001 - Eko adrie (Periode: 06/06/2025 - 05/07/2025)', 200000.00, 'Cash', 'INV-202506020001', NULL, 'Eko adrie', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Dibayar langsung oleh admin: Administrator', 0.00, 0.00, 200000.00, 1, NULL, '2025-06-02 16:47:41', '2025-06-02 16:47:41'),
(3, 'IN2506070001', '2025-06-07', 4, 'Pembayaran Invoice INV-202506040028 - Eko adrie (Periode: 06/06/2025 - 05/07/2025)', 50000.00, 'Cash', 'INV-202506040028', NULL, 'Eko adrie', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Dibayar langsung oleh admin: Administrator', 0.00, 0.00, 50000.00, 1, NULL, '2025-06-07 14:28:55', '2025-06-07 14:28:55'),
(4, 'IN2506090001', '2025-06-09', 4, 'Pembayaran Invoice INV-202506090002 - RCN (Periode: 20/06/2025 - 19/07/2025)', 111000.00, 'Transfer Bank', 'INV-202506090002', NULL, 'RCN', NULL, 'selesai', 'tidak', NULL, NULL, 'Pembayaran otomatis dari invoice INV-202506090002', 0.00, 0.00, 111000.00, 1, NULL, '2025-06-09 06:59:25', '2025-06-09 06:59:25'),
(5, 'IN2506090002', '2025-06-09', 4, 'Pembayaran Invoice INV-202506040038 - Bpk.Hardi (Periode: 06/06/2025 - 05/07/2025)', 200000.00, 'Transfer Bank', 'INV-202506040038', NULL, 'Bpk.Hardi', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Dibayar langsung oleh admin: Administrator', 0.00, 0.00, 200000.00, 1, NULL, '2025-06-09 07:58:57', '2025-06-09 07:58:57'),
(6, 'IN2506120001', '2025-06-12', 4, 'Pembayaran Invoice INV-202506090001 - Eko adrie (Periode: 06/06/2025 - 05/07/2025)', 50000.00, 'E-Wallet', 'INV-202506090001', NULL, 'Eko adrie', NULL, 'selesai', 'tidak', NULL, NULL, 'Pembayaran otomatis dari invoice INV-202506090001', 0.00, 0.00, 50000.00, 1, NULL, '2025-06-12 03:29:22', '2025-06-12 03:29:22'),
(7, 'IN2506150001', '2025-06-15', 4, 'Pembayaran Invoice INV-202506150001 - Isnaeni (Periode: 15/05/2025 - 06/06/2025)', 5000.00, 'Transfer Bank', 'INV-202506150001', NULL, 'Isnaeni', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Dibayar langsung oleh admin: Administrator', 0.00, 0.00, 5000.00, 1, NULL, '2025-06-15 08:42:53', '2025-06-15 08:42:53'),
(8, 'IN2506180001', '2025-06-18', 4, 'Pembayaran Invoice INV-202506180003 - isna (Periode: 16/06/2025 - 15/07/2025)', 5000.00, 'Transfer Bank', 'INV-202506180003', 268, 'isna', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Pembayaran otomatis via Tripay', 0.00, 0.00, 5000.00, NULL, NULL, '2025-06-18 05:58:56', '2025-06-18 05:58:56'),
(9, 'IN2506180002', '2025-06-18', 4, 'Pembayaran Invoice INV-202506180004 - isna (Periode: 16/06/2025 - 15/07/2025)', 5000.00, 'Transfer Bank', 'INV-202506180004', 268, 'isna', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Pembayaran otomatis via Midtrans', 0.00, 0.00, 5000.00, NULL, NULL, '2025-06-18 11:41:37', '2025-06-18 11:41:37'),
(10, 'IN2506180003', '2025-06-18', 4, 'Pembayaran Invoice INV-202506180005 - isna (Periode: 16/06/2025 - 15/07/2025)', 5000.00, 'Transfer Bank', 'INV-202506180005', 268, 'isna', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Pembayaran otomatis via Midtrans', 0.00, 0.00, 5000.00, NULL, NULL, '2025-06-18 11:51:47', '2025-06-18 11:51:47'),
(11, 'IN2506180004', '2025-06-18', 4, 'Pembayaran Invoice INV-202506180006 - isna (Periode: 16/06/2025 - 15/07/2025)', 5000.00, 'Transfer Bank', 'INV-202506180006', 268, 'isna', NULL, 'selesai', 'tidak', NULL, NULL, 'Invoice Payment: Pembayaran otomatis via Tripay', 0.00, 0.00, 5000.00, NULL, NULL, '2025-06-18 11:58:31', '2025-06-18 11:58:31');

-- --------------------------------------------------------

--
-- Table structure for table `pengeluarans`
--

CREATE TABLE `pengeluarans` (
  `id` bigint UNSIGNED NOT NULL,
  `kode_transaksi` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
  `tanggal_transaksi` date NOT NULL,
  `kategori_id` bigint UNSIGNED NOT NULL,
  `deskripsi` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jumlah` decimal(15,2) NOT NULL,
  `metode_pembayaran` enum('tunai','transfer','kartu_kredit','e_wallet','lainnya') COLLATE utf8mb4_unicode_ci NOT NULL,
  `nomor_referensi` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `nama_vendor` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `kontak_vendor` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('draft','disetujui','dibayar','selesai','batal') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'draft',
  `recurring` enum('tidak','harian','mingguan','bulanan','tahunan') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'tidak',
  `tanggal_recurring_berikutnya` date DEFAULT NULL,
  `file_bukti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `catatan` text COLLATE utf8mb4_unicode_ci,
  `ppn` decimal(15,2) NOT NULL DEFAULT '0.00',
  `pph` decimal(15,2) NOT NULL DEFAULT '0.00',
  `biaya_lain` decimal(15,2) NOT NULL DEFAULT '0.00',
  `total_dibayar` decimal(15,2) DEFAULT NULL,
  `total_bersih` decimal(15,2) DEFAULT NULL,
  `tanggal_jatuh_tempo` date DEFAULT NULL,
  `prioritas` enum('rendah','normal','tinggi','urgent') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'normal',
  `disetujui_oleh` bigint UNSIGNED DEFAULT NULL,
  `tanggal_persetujuan` timestamp NULL DEFAULT NULL,
  `created_by` bigint UNSIGNED DEFAULT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `permissions`
--

CREATE TABLE `permissions` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `guard_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `permissions`
--

INSERT INTO `permissions` (`id`, `name`, `guard_name`, `created_at`, `updated_at`) VALUES
(26, 'pelanggan.edit', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(27, 'pelanggan.delete', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(28, 'reports.view', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(29, 'reports.export', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(30, 'settings.view', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(31, 'settings.edit', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(32, 'roles.manage', 'web', '2025-06-11 10:48:28', '2025-06-11 10:48:28'),
(33, 'tickets.view', 'web', '2025-06-11 12:12:23', '2025-06-11 12:12:23'),
(34, 'tickets.create', 'web', '2025-06-11 12:12:23', '2025-06-11 12:12:23'),
(35, 'tickets.edit', 'web', '2025-06-11 12:12:23', '2025-06-11 12:12:23'),
(36, 'tickets.delete', 'web', '2025-06-11 12:12:23', '2025-06-11 12:12:23'),
(37, 'payments.create', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(38, 'payments.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(39, 'cms.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(40, 'cms.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(41, 'themes.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(42, 'themes.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(43, 'syslog.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(44, 'profile.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(45, 'profile.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(46, 'vouchers.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(47, 'vouchers.create', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(48, 'vouchers.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(49, 'vouchers.delete', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(50, 'companies.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(51, 'companies.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(52, 'payment-gateways.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(53, 'payment-gateways.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(54, 'whatsapp.view', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03'),
(55, 'whatsapp.edit', 'web', '2025-06-11 12:55:03', '2025-06-11 12:55:03');

-- --------------------------------------------------------

--
-- Table structure for table `personal_access_tokens`
--

CREATE TABLE `personal_access_tokens` (
  `id` bigint UNSIGNED NOT NULL,
  `tokenable_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `tokenable_id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
  `abilities` text COLLATE utf8mb4_unicode_ci,
  `last_used_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `personal_access_tokens`
--

INSERT INTO `personal_access_tokens` (`id`, `tokenable_type`, `tokenable_id`, `name`, `token`, `abilities`, `last_used_at`, `created_at`, `updated_at`) VALUES
(1, 'App\\Models\\CustomerAkun', 1, 'mobile-app', 'bfae7c201322f8520d2d4863b0f9f2e1c9fd903fae57dac04526782ba99ca30c', '[\"*\"]', '2025-06-23 11:06:43', '2025-06-23 11:06:33', '2025-06-23 11:06:43'),
(2, 'App\\Models\\CustomerAkun', 2, 'mobile-app', '21d4156f54503bbbdc67cb0df2aa0abd98454ba7a4d80842b93e81c290d230b0', '[\"*\"]', '2025-06-23 12:24:40', '2025-06-23 11:15:44', '2025-06-23 12:24:40'),
(3, 'App\\Models\\CustomerAkun', 1, 'mobile-app', '795f2ea3cd8dbefca1060696450d1acfff9e5664cb7dfbc970cc023f692bdc3c', '[\"*\"]', '2025-06-23 11:52:00', '2025-06-23 11:22:15', '2025-06-23 11:52:00'),
(4, 'App\\Models\\CustomerAkun', 1, 'mobile-app', '253474a49199299d5f9111ebccc983de9006128c6954550ddce0ac7c07801e43', '[\"*\"]', '2025-06-23 11:58:52', '2025-06-23 11:53:03', '2025-06-23 11:58:52');

-- --------------------------------------------------------

--
-- Table structure for table `perusahaan`
--

CREATE TABLE `perusahaan` (
  `id` bigint UNSIGNED NOT NULL,
  `perusahaan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `singkatan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `moto` text COLLATE utf8mb4_unicode_ci,
  `owner` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `wa_owner` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `alamat_kantor` text COLLATE utf8mb4_unicode_ci,
  `telp_kantor` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `email_kantor` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `web_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `logo_kantor` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `ppn_berlaku` decimal(5,2) NOT NULL DEFAULT '11.00',
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `perusahaan`
--

INSERT INTO `perusahaan` (`id`, `perusahaan`, `singkatan`, `moto`, `owner`, `wa_owner`, `alamat_kantor`, `telp_kantor`, `email_kantor`, `web_url`, `logo_kantor`, `ppn_berlaku`, `latitude`, `longitude`, `created_at`, `updated_at`) VALUES
(1, 'PT. EKO GLOBAL TECHNO', 'by ASNET', 'Connecting Indonesia with Reliable Internet Solutions', 'Eko Adrie', '081399909101', 'Kp.Gadog RT 03/03 Desa Gadog', '08988409756', 'admin@eglobaltech.id', 'https://eglobaltech.id', 'logos/logo_1750253749.png', 11.00, -6.65503666, 106.86331093, '2025-06-01 06:09:43', '2025-06-18 13:35:49');

-- --------------------------------------------------------

--
-- Table structure for table `pesan_template`
--

CREATE TABLE `pesan_template` (
  `id` bigint UNSIGNED NOT NULL,
  `pesan_template` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `desk_template` text COLLATE utf8mb4_unicode_ci,
  `kont_template` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `aktif` tinyint(1) NOT NULL DEFAULT '1',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `pesan_template`
--

INSERT INTO `pesan_template` (`id`, `pesan_template`, `slug`, `desk_template`, `kont_template`, `aktif`, `created_at`, `updated_at`) VALUES
(1, 'Selamat Datang Pelanggan Baru', 'selamat-datang-pelanggan-baru', 'Template untuk menyambut pelanggan baru yang baru saja mendaftar layanan internet', 'Halo {{nama_pelanggan}}! 👋\n\nSelamat datang di {{nama_perusahaan}}! \n\nTerima kasih telah mempercayai kami sebagai penyedia layanan internet Anda. Berikut detail paket yang Anda pilih:\n\n📦 Paket: {{nama_paket}}\n📍 Alamat: {{alamat_pelanggan}}\n📞 Nomor HP: {{nomor_hp}}\n\nTim teknisi kami akan segera menghubungi Anda untuk proses instalasi. \n\nJika ada pertanyaan, silakan hubungi customer service kami.\n\nSalam,\nCustomer Service\n{{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(2, 'Pengiriman Invoice', 'pengiriman-invoice', 'Template untuk mengirim invoice tagihan kepada pelanggan melalui WhatsApp', 'Halo {{nama_pelanggan}}! 📋\r\n\r\nTagihan internet Anda untuk periode {{periode_tagihan}} sudah tersedia.\r\n\r\n📄 No. Invoice: {{nomor_invoice}}\r\n💰 Total Tagihan: {{total_tagihan}}\r\n📅 Jatuh Tempo: {{tanggal_jatuh_tempo}}\r\n{{link_download_invoice}}\r\n\r\n\r\nSilakan lakukan pembayaran sebelum tanggal jatuh tempo untuk menghindari gangguan layanan.\r\n\r\n\r\n💳 Cara Pembayaran:\r\n• {{rekening_utama}}\r\n• {{link_bayar_online}}\r\n• Bayar langsung di kantor {{nama_perusahaan}}\r\n\r\n📞 Konfirmasi pembayaran dapat dilakukan melalui WhatsApp ini atau hubungi customer service kami.\r\n\r\nTerima kasih atas kepercayaan Anda menggunakan layanan {{nama_perusahaan}}.\r\n\r\nSalam,\r\n{{nama_perusahaan}}\r\n📞 Customer Service', 1, '2025-06-01 06:09:43', '2025-06-07 17:31:53'),
(3, 'Konfirmasi Pembayaran Lunas', 'konfirmasi-pembayaran-lunas', 'Template untuk mengkonfirmasi pembayaran yang telah diterima dan invoice sudah lunas', 'Halo {{nama_pelanggan}}! 🎉\r\n\r\nPembayaran tagihan internet Anda telah kami terima dan dikonfirmasi. ✅\r\n\r\n📄 No. Invoice: {{nomor_invoice}}\r\n💰 Jumlah: {{total_tagihan}}\r\n💳 Metode: {{metode_pembayaran}}\r\n📅 Tanggal Bayar: {{tanggal_bayar}}\r\n💲 Status :  {{status_pembayaran}}\r\n{{link_download_invoice}}\r\n\r\nLayanan internet Anda akan tetap aktif untuk periode berikutnya. Terima kasih atas kepercayaan Anda menggunakan layanan {{nama_perusahaan}}.\r\n\r\nJika ada pertanyaan, jangan ragu untuk menghubungi customer service kami.\r\n\r\nSalam hangat,\r\n{{nama_perusahaan}}\r\n📞 Customer Service', 1, '2025-06-01 06:09:43', '2025-06-07 17:26:12'),
(4, 'Tunggu Konfirmasi Pembayaran', 'tunggu-konfirmasi', 'Template untuk memberitahu customer bahwa pembayaran sedang dalam proses verifikasi', 'Halo {{nama_pelanggan}}! 🕐\n\nTerima kasih telah melakukan konfirmasi pembayaran untuk:\n\n📄 No. Invoice: {{nomor_invoice}}\n💰 Jumlah: {{total_tagihan}}\n💳 Metode: {{metode_pembayaran}}\n📅 Tanggal Submit: {{tanggal_bayar}}\n\n✅ Bukti pembayaran Anda telah kami terima dan sedang dalam proses verifikasi.\n\n⏰ Tim kami akan memverifikasi pembayaran dalam maksimal 1x24 jam.\n\nTerima kasih atas kesabaran Anda.\n\n{{nama_perusahaan}}\n📞 Customer Service', 1, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(5, 'Notifikasi Admin - Ada Pembayaran Baru', 'ada-pembayaran-yang-harus-dikonfirmasi', 'Template notifikasi untuk admin ketika ada pembayaran baru yang perlu dikonfirmasi', '🔔 NOTIFIKASI ADMIN\n\nAda pembayaran baru yang perlu dikonfirmasi:\n\n👤 Pelanggan: {{nama_pelanggan}}\n📄 Invoice: {{nomor_invoice}}\n💰 Amount: {{total_tagihan}}\n💳 Metode: {{metode_pembayaran}}\n📱 HP: {{nomor_hp}}\n📅 Submit: {{tanggal_bayar}}\n\n🔗 Konfirmasi di: {{link_konfirmasi}}\n\nSegera verifikasi untuk memberikan service terbaik!\n\n{{nama_perusahaan}} Admin System', 1, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(6, 'Reminder Tagihan Bulanan', 'reminder-tagihan-bulanan', 'Template untuk mengingatkan pelanggan tentang tagihan bulanan yang akan jatuh tempo', 'Halo {{nama_pelanggan}},\n\nIni adalah pengingat bahwa tagihan internet Anda untuk bulan ini akan jatuh tempo.\n\n💰 Jumlah Tagihan: {{total_tagihan}}\n📅 Tanggal Jatuh Tempo: {{tanggal_jatuh_tempo}}\n📦 Paket: {{nama_layanan}}\n\nSilakan lakukan pembayaran sebelum tanggal jatuh tempo untuk menghindari gangguan layanan.\n\nCara pembayaran:\n• Transfer ke rekening bank kami\n• Bayar di kantor {{nama_perusahaan}}\n• Melalui aplikasi mobile banking\n\nTerima kasih atas perhatiannya.\n\nCustomer Service\n{{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(7, 'Konfirmasi Pembayaran', 'konfirmasi-pembayaran', 'Template untuk mengkonfirmasi pembayaran yang telah diterima dari pelanggan', 'Halo {{nama_pelanggan}},\n\nPembayaran Anda telah kami terima! ✅\n\n💰 Jumlah: {{total_tagihan}}\n📅 Tanggal Pembayaran: {{tanggal_bayar}}\n📦 Paket: {{nama_paket}}\n\nLayanan internet Anda akan tetap aktif untuk periode berikutnya. Terima kasih atas kepercayaan Anda menggunakan layanan {{nama_perusahaan}}.\n\nJika ada pertanyaan, jangan ragu untuk menghubungi kami.\n\nSalam,\nCustomer Service\n{{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(8, 'Notifikasi Gangguan Jaringan', 'notifikasi-gangguan-jaringan', 'Template untuk memberitahu pelanggan tentang gangguan jaringan yang sedang terjadi', 'Halo {{nama_pelanggan}},\n\nKami ingin menginformasikan bahwa saat ini sedang terjadi gangguan jaringan di area {{alamat_pelanggan}}.\n\n🔧 Status: Sedang dalam perbaikan\n⏰ Estimasi Selesai: 2-4 jam\n📞 Kontak Darurat: {{nomor_hp}}\n\nTim teknisi kami sedang bekerja keras untuk mengatasi masalah ini sesegera mungkin. Mohon maaf atas ketidaknyamanan yang terjadi.\n\nUpdate terbaru akan kami informasikan melalui WhatsApp ini.\n\nTerima kasih atas kesabaran Anda.\n\nCustomer Service\n{{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(9, 'Promo Paket Upgrade', 'promo-paket-upgrade', 'Template untuk menawarkan upgrade paket kepada pelanggan existing', 'Halo {{nama_pelanggan}}! 🎉\n\nAda kabar baik untuk Anda! Kami memiliki promo spesial upgrade paket internet:\n\n📦 Paket Saat Ini: {{nama_paket}}\n⬆️ Upgrade ke Paket Premium\n🚀 Kecepatan 2x Lipat\n💰 Harga Spesial untuk pelanggan setia\n\nKeuntungan upgrade:\n✅ Internet lebih cepat\n✅ Kuota unlimited\n✅ Prioritas customer service\n✅ Gratis instalasi ulang\n\nPromo terbatas sampai akhir bulan!\n\nTertarik? Hubungi kami sekarang juga.\n\nCustomer Service\n{{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(10, 'Jadwal Maintenance', 'jadwal-maintenance', 'Template untuk memberitahu pelanggan tentang jadwal maintenance rutin', 'Halo {{nama_pelanggan}},\n\nKami akan melakukan maintenance rutin untuk meningkatkan kualitas layanan.\n\n📅 Tanggal: {{tanggal_maintenance}}\n⏰ Waktu: 01:00 - 05:00 WIB\n📍 Area: {{alamat_pelanggan}}\n⚠️ Dampak: Internet akan terputus sementara\n\nMaintenance ini bertujuan untuk:\n• Upgrade perangkat jaringan\n• Optimasi kecepatan internet\n• Peningkatan stabilitas koneksi\n\nMohon maaf atas ketidaknyamanan yang mungkin terjadi.\n\nCustomer Service\n{{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(11, 'Survey Kepuasan Pelanggan', 'survey-kepuasan-pelanggan', 'Template untuk meminta feedback dan survey kepuasan dari pelanggan', 'Halo {{nama_pelanggan}},\n\nBagaimana pengalaman Anda menggunakan layanan {{nama_perusahaan}}? \n\nKami sangat menghargai feedback Anda untuk terus meningkatkan kualitas layanan.\n\n📋 Mohon luangkan 2 menit untuk mengisi survey singkat:\n\n1. Bagaimana kualitas internet kami? (1-5)\n2. Bagaimana pelayanan customer service? (1-5)\n3. Apakah Anda akan merekomendasikan kami?\n4. Saran untuk perbaikan?\n\nFeedback Anda sangat berharga bagi kami.\n\nTerima kasih atas partisipasinya!\n\nCustomer Service\n{{nama_perusahaan}}', 0, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(12, 'Ucapan Hari Raya', 'ucapan-hari-raya', 'Template untuk memberikan ucapan selamat hari raya kepada pelanggan', 'Selamat Hari Raya {{nama_pelanggan}}! 🎉\n\nDi hari yang penuh berkah ini, seluruh tim {{nama_perusahaan}} mengucapkan:\n\n🌙 Selamat Hari Raya\n🙏 Mohon Maaf Lahir & Batin\n✨ Semoga diberkahi kebahagiaan\n\nTerima kasih telah menjadi bagian dari keluarga besar {{nama_perusahaan}}. Kepercayaan Anda adalah motivasi terbesar bagi kami.\n\nSelamat merayakan bersama keluarga tercinta!\n\nSalam hangat,\nCustomer Service\n{{nama_perusahaan}}', 0, '2025-06-01 06:09:43', '2025-06-01 06:16:25'),
(13, 'Isolir Layanan', 'isolir-layanan', 'Template notifikasi isolir layanan internet pelanggan karena tunggakan pembayaran', 'Yth. {{nama_pelanggan}} ⚠️\n\nDengan berat hati kami informasikan bahwa layanan internet Anda telah kami **ISOLIR** sementara karena adanya tunggakan pembayaran.\n\n📋 **Detail Tagihan:**\n📄 No. Invoice: {{nomor_invoice}}\n💰 Total Tunggakan: {{total_tagihan}}\n📅 Jatuh Tempo: {{tanggal_jatuh_tempo}}\n📦 Layanan: {{paket_layanan}}\n\n⚠️ **Dampak Isolir:**\n🚫 Koneksi internet dihentikan\n🚫 Tidak dapat mengakses internet\n🚫 Layanan tidak aktif\n\n💳 **Cara Mengaktifkan Kembali:**\n1️⃣ Lakukan pembayaran tunggakan\n2️⃣ Konfirmasi pembayaran ke CS kami\n3️⃣ Tunggu aktivasi maksimal 2x24 jam\n\n📞 **Hubungi Kami:**\nCS: {{cs_phone}}\nKantor: {{alamat_kantor}}\n\nSegera lakukan pembayaran untuk mengaktifkan kembali layanan Anda.\n\nTerima kasih,\nTim {{nama_perusahaan}}', 1, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(14, 'Pembayaran Dikonfirmasi - Layanan Aktif', 'pembayaran-dikonfirmasi-layanan-aktif', 'Template enhanced untuk konfirmasi pembayaran dengan informasi aktivasi layanan lengkap', 'Halo {{nama_pelanggan}}! 🎉✅\n\nSelamat! Pembayaran tagihan internet Anda telah dikonfirmasi dan layanan telah diaktifkan kembali.\n\n📄 **Detail Pembayaran:**\n• No. Invoice: {{nomor_invoice}}\n• Total: {{total_amount}}\n• Metode: {{metode_pembayaran}}\n• Konfirmasi: {{tanggal_konfirmasi}}\n• Periode: {{periode_tagihan}}\n\n🌐 **Status Layanan:**\n• Paket: {{nama_paket}}\n• Bandwidth: {{bandwidth}}\n• Username: {{username_ppp}}\n• Status: ✅ AKTIF\n\n🔌 Koneksi internet Anda telah diaktifkan dan dapat digunakan kembali.\n\n📞 **Kontak Support:**\n{{kontak_perusahaan}}\n\nTerima kasih atas kepercayaan Anda!\n\nSalam,\n{{nama_perusahaan}}\n📞 Customer Service', 1, '2025-06-01 06:16:25', '2025-06-01 06:16:25'),
(15, 'Aktivasi Layanan', 'aktivasi-layanan', 'Template untuk memberitahu pelanggan bahwa layanan telah diaktifkan kembali', 'Halo {{nama_pelanggan}}! 🎉\r\n\r\n🌐 **LAYANAN INTERNET DIAKTIFKAN**\r\n\r\nLayanan internet Anda telah berhasil diaktifkan kembali:\r\n\r\n📋 **Detail Layanan:**\r\n• No. Layanan: {{nomer_layanan}}\r\n• Paket: {{paket_layanan}}\r\n• Tanggal Aktivasi: {{tanggal_aktivasi}}\r\n• Status: ✅ AKTIF\r\n\r\n🔌 Koneksi internet Anda sekarang sudah dapat digunakan kembali.\r\n\r\nSilakan restart modem/router Anda jika diperlukan.\r\n\r\nJika masih ada kendala, silakan hubungi customer service kami.\r\n\r\nTerima kasih!\r\n\r\nSalam,\r\n{{nama_perusahaan}}\r\n📞 Customer Service', 1, '2025-06-01 06:16:25', '2025-06-18 15:01:32'),
(16, 'Admin - Gagal Aktivasi PPP', 'admin-gagal-aktivasi-ppp', 'Template notifikasi untuk admin ketika gagal mengaktifkan PPP secret di Mikrotik', '🚨 **ALERT - GAGAL AKTIVASI PPP SECRET**\n\n**Invoice:** {{nomor_invoice}}\n**Pelanggan:** {{nama_pelanggan}}\n**Total:** {{total_amount}}\n**Error:** {{error_message}}\n\n⚠️ Pembayaran sudah dikonfirmasi, tetapi PPP secret gagal diaktifkan.\nSilakan aktivasi manual di Mikrotik.\n\n**Username PPP:** {{username_ppp}}\n**Secret Name:** {{secret_ppp}}\n\n_Alert otomatis sistem billing_', 1, '2025-06-01 06:16:25', '2025-06-01 06:16:25'),
(17, 'Invoice Pembelian Produk', 'invoice-pembelian-produk', 'Template untuk mengirim invoice pembelian produk kepada pelanggan', 'Halo {{nama_pembeli}}! 📋\n\nTerima kasih atas pembelian produk dari {{nama_perusahaan}}.\n\n📄 **Detail Transaksi:**\n• No. Invoice: {{nomor_transaksi}}\n• Tanggal: {{tanggal_pembelian}}\n• Total: {{total_amount}}\n\n🛒 **Barang yang dibeli:**\n{{items_list}}\n\n💳 **Pembayaran:**\nStatus: {{status_pembayaran}}\nMetode: {{metode_pembayaran}}\n\n📞 Jika ada pertanyaan, silakan hubungi customer service kami.\n\nTerima kasih!\n\nSalam,\n{{nama_perusahaan}}\n📞 Customer Service', 1, '2025-06-01 06:16:25', '2025-06-01 06:16:25'),
(18, 'Konfirmasi Pembayaran Pembelian', 'konfirmasi-pembayaran-pembelian', 'Template untuk mengkonfirmasi pembayaran pembelian produk', 'Halo {{nama_pembeli}}! 🎉\n\nPembayaran pembelian Anda telah dikonfirmasi! ✅\n\n📄 **Detail Pembayaran:**\n• No. Transaksi: {{nomor_transaksi}}\n• Total: {{total_amount}}\n• Metode: {{metode_pembayaran}}\n• Tanggal: {{tanggal_bayar}}\n\n🚚 **Status Barang:**\n{{status_pengiriman}}\n\n📞 Tim kami akan menghubungi Anda untuk proses pengiriman/pengambilan.\n\nTerima kasih atas kepercayaan Anda!\n\nSalam,\n{{nama_perusahaan}}\n📞 Customer Service', 1, '2025-06-01 06:16:25', '2025-06-01 06:16:25'),
(19, 'Notifikasi Pelanggan Baru Daftar', 'pelanggan-baru-daftar', 'Template notifikasi WhatsApp untuk admin ketika ada pelanggan baru yang mendaftar melalui form registrasi public', 'Halo Admin RT RWNET! 👋\r\n\r\nAda pelanggan baru yang mendaftar:\r\n\r\n👤 *INFORMASI PELANGGAN*\r\n📋 Nama: {{nama_pelanggan}}\r\n🆔 Nomor Layanan: {{nomor_layanan}}\r\n👤 Jenis Kelamin: {{jenis_kelamin}}\r\n🪪 KTP/SIM: {{no_ktp_sim}}\r\n📱 WhatsApp: {{no_whatsapp}}\r\n🏠 Alamat: {{alamat_rumah}}\r\n\r\n🌐 *PAKET LAYANAN*\r\n📦 Paket: {{paket_layanan}}\r\n💰 Harga: {{harga_paket}}\r\n⚡ Kecepatan: {{kecepatan}}\r\n\r\n📅 *WAKTU PENDAFTARAN*\r\n📊 Status: {{status}}\r\n📅 Tanggal: {{tanggal_daftar}}\r\n🕐 Waktu: {{waktu_daftar}}\r\n\r\n⏭️ *LANGKAH SELANJUTNYA:*\r\n1. Verifikasi data dan dokumen\r\n2. Hubungi pelanggan untuk konfirmasi\r\n3. Jadwalkan survei lokasi\r\n4. Proses instalasi dan aktivasi\r\n\r\nSegera tindak lanjuti pendaftaran ini! \r\n\r\n--\r\n{{nama_perusahaan}}\r\n💻 Connecting Indonesia with Reliable Internet', 1, '2025-06-07 18:47:41', '2025-06-07 19:14:20'),
(20, 'Selamat Datang Pelanggan Baru (Admin)', 'pelanggan-baru', 'Template untuk notifikasi pelanggan baru yang didaftarkan oleh admin', 'Yth. {nama_pelanggan},\r\n\r\nPendaftaran Anda telah berhasil!\r\n\r\n📄 *DETAIL AKUN:*\r\n• Nomor Layanan: {nomer_layanan}  \r\n• Nama: {nama_pelanggan}  \r\n• Layanan: {nama_layanan}  \r\n• Mode: {mode_pelanggan}  \r\n• Total Biaya: {total_biaya}  \r\n\r\n🔐 *AKSES LOGIN:*\r\n• Username: {username}  \r\n• Password: {password}  \r\n\r\n🗓️ *Tanggal Daftar:* {tanggal_daftar}\r\n\r\nUntuk aktivasi dan informasi lebih lanjut, silakan hubungi customer service kami.\r\n\r\nTerima kasih telah mempercayai layanan kami!', 1, '2025-06-07 19:36:10', '2025-06-15 22:34:52');

-- --------------------------------------------------------

--
-- Table structure for table `produks`
--

CREATE TABLE `produks` (
  `id` bigint UNSIGNED NOT NULL,
  `kode_produk` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nama_produk` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `kategori` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `merk` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `tipe` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `unit` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pcs',
  `harga_beli` decimal(15,2) NOT NULL DEFAULT '0.00',
  `harga_jual` decimal(15,2) NOT NULL DEFAULT '0.00',
  `stok` int NOT NULL DEFAULT '0',
  `stok_minimum` int NOT NULL DEFAULT '0',
  `supplier` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `spesifikasi` text COLLATE utf8mb4_unicode_ci,
  `foto_produk` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('aktif','nonaktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `keterangan` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `produks`
--

INSERT INTO `produks` (`id`, `kode_produk`, `nama_produk`, `deskripsi`, `kategori`, `merk`, `tipe`, `unit`, `harga_beli`, `harga_jual`, `stok`, `stok_minimum`, `supplier`, `spesifikasi`, `foto_produk`, `status`, `keterangan`, `created_at`, `updated_at`) VALUES
(25, 'PRD25060001', 'Router', 'ROUTER', 'rOUTER', 'ZTE', 'ac1200', 'unit', 100000.00, 120000.00, 10, 5, '-', '-', '/storage/uploads/produk/1750363432_router.png', 'aktif', '-', '2025-06-19 20:03:52', '2025-06-19 20:03:52');

-- --------------------------------------------------------

--
-- Table structure for table `roles`
--

CREATE TABLE `roles` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `guard_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `role_has_permissions`
--

CREATE TABLE `role_has_permissions` (
  `permission_id` bigint UNSIGNED NOT NULL,
  `role_id` bigint UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `role_permissions`
--

CREATE TABLE `role_permissions` (
  `id` bigint UNSIGNED NOT NULL,
  `role` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `permission_id` bigint UNSIGNED NOT NULL,
  `is_granted` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Table structure for table `sidebar_menus`
--

CREATE TABLE `sidebar_menus` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `icon` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `route` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `parent_id` int DEFAULT NULL,
  `order` int NOT NULL DEFAULT '0',
  `is_active` tinyint(1) NOT NULL DEFAULT '1',
  `permissions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `target` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '_self',
  `css_class` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `badge_text` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `badge_class` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'badge-primary',
  `show_badge` tinyint(1) NOT NULL DEFAULT '0',
  `description` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `sidebar_menus`
--

INSERT INTO `sidebar_menus` (`id`, `name`, `icon`, `url`, `route`, `parent_id`, `order`, `is_active`, `permissions`, `target`, `css_class`, `badge_text`, `badge_class`, `show_badge`, `description`, `created_at`, `updated_at`) VALUES
(1, 'Dashboard', 'fas fa-chart-pie', NULL, 'dashboard', NULL, 1, 1, '[\"administrator\",\"admin\",\"teknisi\",\"reseler\",\"pelanggan\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Halaman utama dashboard', '2025-06-01 06:09:43', '2025-06-01 16:34:14'),
(2, 'Pelanggan', 'fas fa-users', NULL, NULL, NULL, 2, 1, '[\"administrator\",\"admin\",\"teknisi\",\"reseler\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu manajemen pelanggan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(3, 'Daftar Pelanggan', 'fas fa-list', NULL, 'pelanggan.index', 2, 1, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Daftar semua pelanggan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(4, 'Pelanggan Aktif', 'fas fa-user-check', '/pelanggan?status=aktif', 'pelanggan.index', 2, 2, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Daftar pelanggan aktif', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(5, 'Laporan Pelanggan', 'fas fa-chart-bar', NULL, 'laporan-pelanggan.index', 2, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Laporan data pelanggan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(6, 'Topologi', 'fas fa-network-wired', NULL, NULL, NULL, 3, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu topologi jaringan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(7, 'Coverage', 'fas fa-broadcast-tower', NULL, 'coverage-areas.index', 6, 1, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Area coverage jaringan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(8, 'OLT', 'fas fa-server', NULL, NULL, 6, 2, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Optical Line Terminal', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(9, 'ODC', 'fas fa-hdd', NULL, NULL, 6, 3, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Optical Distribution Cabinet', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(10, 'ODP', 'fas fa-box', NULL, NULL, 6, 4, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Optical Distribution Point', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(11, 'Maps', 'fas fa-map', NULL, NULL, 6, 5, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Peta topologi jaringan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(12, 'Layanan', 'fas fa-concierge-bell', NULL, NULL, NULL, 4, 1, '[\"administrator\",\"admin\",\"teknisi\",\"reseler\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu layanan produk', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(13, 'Internet Rumahan', 'fas fa-home', NULL, NULL, 12, 1, 1, '[\"administrator\",\"admin\",\"teknisi\",\"reseler\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Layanan internet rumahan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(14, 'Internet Hotspot', 'fas fa-wifi', NULL, NULL, 12, 2, 1, '[\"administrator\",\"admin\",\"teknisi\",\"reseler\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Layanan internet hotspot', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(15, 'Jaringan', 'fas fa-project-diagram', NULL, NULL, NULL, 5, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu jaringan', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(16, 'PPPOE Aktif', 'fas fa-link', NULL, 'pppoe.active-sessions', 15, 1, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Session PPPOE aktif', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(17, 'PPPOE Profile', 'fas fa-user-cog', NULL, 'pppoe.profiles', 15, 2, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Profile PPPOE', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(18, 'Hotspot Aktif', 'fas fa-wifi', NULL, 'hotspot.active-users', 15, 3, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'User hotspot aktif', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(19, 'Asset', 'fas fa-boxes', NULL, NULL, NULL, 7, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu manajemen asset', '2025-06-01 06:09:43', '2025-06-06 03:59:21'),
(20, 'Daftar Asset', 'fas fa-list', NULL, 'assets.index', 19, 1, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Daftar semua asset', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(21, 'Kategori Asset', 'fas fa-tags', NULL, 'asset-categories.index', 19, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Kategori asset', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(22, 'Pengaturan', 'fas fa-cogs', NULL, NULL, NULL, 8, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu pengaturan sistem', '2025-06-01 06:09:43', '2025-06-06 03:59:21'),
(23, 'Mikrotik', 'fas fa-router', NULL, 'mikrotiks.index', 22, 1, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manajemen Mikrotik', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(24, 'Tema', 'fas fa-palette', NULL, 'themes.index', 22, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Pengaturan tema aplikasi', '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(25, 'Menu Sidebar', 'fas fa-bars', NULL, 'sidebar-menus.index', 22, 4, 1, '[\"administrator\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Pengaturan menu sidebar', '2025-06-01 06:09:43', '2025-06-07 07:59:03'),
(26, 'Perusahaan', 'fas fa-building', NULL, 'perusahaan.index', 22, 5, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Data dan profil perusahaan', '2025-06-01 06:09:43', '2025-06-07 07:59:03'),
(27, 'Akun Bank', 'fas fa-university', NULL, 'banks.index', 22, 6, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manajemen akun bank perusahaan', '2025-06-01 06:09:43', '2025-06-07 07:59:03'),
(28, 'Profile', 'fas fa-user', NULL, 'profile', NULL, 9, 1, '[\"administrator\",\"admin\",\"teknisi\",\"reseler\",\"pelanggan\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Profile pengguna', '2025-06-01 06:09:43', '2025-06-06 03:59:21'),
(29, 'Users', 'fas fa-users-cog', NULL, 'users.index', 22, 8, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manajemen pengguna sistem', '2025-06-01 16:21:08', '2025-06-07 07:59:03'),
(30, 'Tagihan', 'fas fa-file-invoice', NULL, NULL, NULL, 9, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu tagihan dan invoice', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(31, 'Belum Bayar', 'fas fa-exclamation-circle text-danger', NULL, 'invoices.belum-bayar', 30, 1, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Invoice belum bayar', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(32, 'Sudah Bayar', 'fas fa-check-circle text-success', NULL, 'invoices.sudah-bayar', 30, 2, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Invoice sudah bayar', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(33, 'Konfirmasi', 'fas fa-clock text-warning', NULL, 'invoices.konfirmasi', 30, 3, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Invoice menunggu konfirmasi', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(34, 'Buat Invoice', 'fas fa-plus', NULL, 'invoices.create', 30, 4, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Buat invoice baru', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(35, 'History Tagihan', 'fas fa-history', NULL, NULL, 30, 5, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'History tagihan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(36, 'Keuangan', 'fas fa-money-bill-wave', NULL, NULL, NULL, 10, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu keuangan', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(37, 'Pendapatan', 'fas fa-arrow-up text-success', NULL, 'pendapatans.index', 36, 1, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Data pendapatan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(38, 'Pengeluaran', 'fas fa-arrow-down text-danger', NULL, 'pengeluarans.index', 36, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Data pengeluaran', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(39, 'Laporan Keuangan', 'fas fa-chart-line', NULL, 'laporan-keuangan.index', 36, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Laporan keuangan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(40, 'Pengaturan Keuangan', 'fas fa-cog', NULL, 'kategori-keuangans.index', 36, 4, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Pengaturan kategori keuangan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(41, 'CMS', 'fas fa-globe', NULL, NULL, NULL, 11, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Content Management System', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(42, 'Menu', 'fas fa-bars', NULL, 'menus.index', 41, 1, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Menu website', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(43, 'Halaman', 'fas fa-file-alt', NULL, 'halamen.index', 41, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Halaman website', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(44, 'Kategori', 'fas fa-folder', NULL, 'kategoris.index', 41, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Kategori konten', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(45, 'Widget', 'fas fa-puzzle-piece', NULL, 'widgets.index', 41, 4, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Widget website', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(46, 'Galeri', 'fas fa-images', NULL, 'galeri.index', 41, 5, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Galeri foto', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(47, 'Tentang Kami', 'fas fa-info-circle', NULL, 'tentang-kami.index', 41, 7, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Halaman tentang kami', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(48, 'Tema Dashboard', 'fas fa-paint-brush', NULL, 'themes.index', 41, 8, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Tema dashboard', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(49, 'Tema Halaman', 'fas fa-palette', NULL, 'website-themes.index', 41, 9, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Tema halaman website', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(55, 'Kategori Support', 'fas fa-tags', NULL, NULL, 50, 5, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Kategori support', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(56, 'Karyawan', 'fas fa-user-tie', NULL, NULL, NULL, 13, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manajemen karyawan', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(57, 'Absensi', 'fas fa-clock', NULL, NULL, 56, 1, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Absensi karyawan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(58, 'Kasbon', 'fas fa-money-check', NULL, NULL, 56, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Kasbon karyawan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(59, 'Struktur', 'fas fa-sitemap', NULL, NULL, 56, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Struktur organisasi', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(60, 'Laporan Karyawan', 'fas fa-chart-bar', NULL, NULL, 56, 4, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Laporan karyawan', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(61, 'Server', 'fas fa-database', NULL, NULL, NULL, 14, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manajemen server', '2025-06-01 16:36:25', '2025-06-06 03:59:21'),
(62, 'EPON-OLT', 'fas fa-ethernet', NULL, NULL, 61, 1, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'EPON OLT management', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(63, 'GPON-OLT', 'fas fa-satellite-dish', NULL, NULL, 61, 2, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'GPON OLT management', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(64, 'ACS', 'fas fa-cloud', NULL, NULL, 61, 3, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Auto Configuration Server', '2025-06-01 16:36:25', '2025-06-01 16:36:25'),
(65, 'Template Pesan', 'fas fa-sms', NULL, 'pesan-templates.index', 22, 9, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Template pesan WhatsApp', '2025-06-01 16:37:00', '2025-06-07 07:59:03'),
(66, 'Template Invoice', 'fas fa-file-invoice-dollar', NULL, 'template-invoices.index', 22, 10, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Template invoice', '2025-06-01 16:37:00', '2025-06-07 07:59:03'),
(67, 'Isolir', 'fas fa-ban text-danger', NULL, NULL, 22, 11, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Pengaturan isolir', '2025-06-01 16:37:00', '2025-06-07 07:59:03'),
(68, 'Auto Isolir', 'fas fa-robot text-danger', NULL, 'auto-isolir.index', 67, 1, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Auto isolir pelanggan', '2025-06-01 16:37:00', '2025-06-01 16:37:00'),
(69, 'Auto Isolir Logs', 'fas fa-file-text text-info', NULL, 'auto-isolir.logs.index', 67, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Log auto isolir', '2025-06-01 16:37:00', '2025-06-01 16:37:00'),
(70, 'Manual Isolir', 'fas fa-hand-paper text-warning', NULL, 'isolir.index', 67, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manual isolir pelanggan', '2025-06-01 16:37:00', '2025-06-01 16:37:00'),
(71, 'Payment Gateway', 'fas fa-credit-card', NULL, NULL, 22, 12, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Pengaturan payment gateway', '2025-06-01 16:37:00', '2025-06-07 07:59:03'),
(72, 'Whatsapp', 'fab fa-whatsapp text-success', NULL, 'whatsapp-gateways.index', 22, 13, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Gateway WhatsApp', '2025-06-01 16:37:00', '2025-06-07 07:59:03'),
(73, 'Kirim Pesan', 'fas fa-paper-plane', NULL, 'kirim-pesan.index', NULL, 6, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Kirim pesan broadcast WhatsApp ke pelanggan', '2025-06-06 03:59:21', '2025-06-06 03:59:21'),
(86, 'Tiket', 'fas fa-ticket-alt', NULL, NULL, NULL, 90, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Manajemen tiket laporan pelanggan', '2025-06-06 12:38:52', '2025-06-06 12:38:52'),
(87, 'Daftar Tiket', 'fas fa-list', NULL, 'tickets.index', 86, 1, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Lihat semua tiket', '2025-06-06 12:38:52', '2025-06-06 12:38:52'),
(88, 'Tiket Terbuka', 'fas fa-folder-open', NULL, 'tickets.ticket-terbuka', 86, 2, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Tiket yang belum selesai', '2025-06-06 12:38:52', '2025-06-06 12:38:52'),
(89, 'Buat Tiket Baru', 'fas fa-plus-circle', NULL, 'tickets.create', 86, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Buat tiket laporan baru', '2025-06-06 12:38:52', '2025-06-06 12:38:52'),
(90, 'Statistik Tiket', 'fas fa-chart-bar', NULL, 'tickets.statistik', 86, 4, 1, '[\"administrator\",\"admin\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Statistik dan analisis tiket', '2025-06-06 12:38:52', '2025-06-06 12:38:52'),
(91, 'Gateway Logs', 'fas fa-list-alt', NULL, 'payment-gateways.logs.index', 71, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, 'NEW', 'bg-success', 1, 'Log aktivitas payment gateway', '2025-06-07 07:42:22', '2025-06-07 07:42:22'),
(92, 'Syslog', 'fas fa-file-alt', NULL, 'syslog.index', 22, 3, 1, '[\"administrator\",\"admin\"]', '_self', NULL, 'NEW', 'bg-info', 1, 'System logs dan monitoring aktivitas sistem', '2025-06-07 07:59:03', '2025-06-07 07:59:03'),
(93, 'PETA', 'fas fa-map-marked-alt', NULL, 'peta.index', 6, 6, 1, '[\"administrator\",\"admin\",\"teknisi\"]', '_self', NULL, NULL, 'badge-primary', 0, 'Halaman PETA', '2025-06-18 15:49:03', '2025-06-18 15:49:03');

-- --------------------------------------------------------

--
-- Table structure for table `sla_records`
--

CREATE TABLE `sla_records` (
  `id` bigint UNSIGNED NOT NULL,
  `jenis_error` enum('isp','server_lokal') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Jenis error: ISP atau Server Lokal',
  `deskripsi_error` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Deskripsi masalah yang terjadi',
  `waktu_mulai_error` datetime NOT NULL COMMENT 'Waktu mulai terjadi error',
  `waktu_selesai_error` datetime DEFAULT NULL COMMENT 'Waktu error selesai diperbaiki',
  `durasi_downtime` int DEFAULT NULL COMMENT 'Durasi downtime dalam menit',
  `tingkat_dampak` enum('rendah','sedang','tinggi','kritis') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'sedang' COMMENT 'Tingkat dampak error',
  `penyebab_error` text COLLATE utf8mb4_unicode_ci COMMENT 'Penyebab error yang teridentifikasi',
  `solusi_perbaikan` text COLLATE utf8mb4_unicode_ci COMMENT 'Solusi yang diterapkan untuk perbaikan',
  `status` enum('ongoing','resolved') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ongoing' COMMENT 'Status error: ongoing atau resolved',
  `pic_penanganan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Person in charge yang menangani',
  `catatan_tambahan` text COLLATE utf8mb4_unicode_ci COMMENT 'Catatan tambahan',
  `created_by` bigint UNSIGNED NOT NULL COMMENT 'User yang membuat record',
  `updated_by` bigint UNSIGNED DEFAULT NULL COMMENT 'User yang terakhir update',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `sla_records`
--

INSERT INTO `sla_records` (`id`, `jenis_error`, `deskripsi_error`, `waktu_mulai_error`, `waktu_selesai_error`, `durasi_downtime`, `tingkat_dampak`, `penyebab_error`, `solusi_perbaikan`, `status`, `pic_penanganan`, `catatan_tambahan`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(1, 'server_lokal', 'Memory server habis karena memory leak', '2025-03-21 19:07:49', '2025-03-22 09:51:49', 884, 'tinggi', 'Bug pada sistem operasi', 'Konfigurasi ulang firewall rules', 'resolved', 'Gita Server Admin', 'Resource monitoring sudah ditingkatkan', 1, 1, '2025-03-21 12:08:49', '2025-03-22 03:20:49'),
(2, 'server_lokal', 'Server radius down tidak bisa autentikasi', '2025-04-07 04:03:49', '2025-04-07 08:07:49', 244, 'tinggi', 'Overload CPU karena traffic tinggi', 'Restart service yang bermasalah', 'resolved', 'Dedi IT Support', 'Preventive maintenance dijadwalkan minggu depan', 1, 1, '2025-04-06 21:25:49', '2025-04-07 01:28:49'),
(3, 'isp', 'Gangguan pada perangkat OLT provider', '2025-03-24 22:18:49', '2025-03-26 12:02:49', 2264, 'kritis', 'Gangguan power di data center provider', 'Menunggu maintenance selesai dari provider', 'resolved', 'Citra System Admin', 'Backup link sudah diaktifkan untuk antisipasi', 1, 1, '2025-03-24 15:34:49', '2025-03-26 05:18:49'),
(4, 'server_lokal', 'Gangguan listrik menyebabkan server restart', '2025-03-27 01:20:49', '2025-03-27 04:29:49', 189, 'sedang', 'Konfigurasi firewall yang salah', 'Monitoring resource usage', 'resolved', 'Gita Server Admin', 'Preventive maintenance dijadwalkan minggu depan', 1, 1, '2025-03-26 18:47:49', '2025-03-26 21:51:49'),
(6, 'isp', 'Maintenance terjadwal dari provider Telkom', '2025-04-08 07:04:49', '2025-04-09 13:43:49', 1839, 'kritis', 'Kerusakan perangkat OLT provider', 'Menunggu maintenance selesai dari provider', 'resolved', 'Hendra NOC Engineer', 'Customer sudah diberitahu via broadcast message', 1, 1, '2025-04-08 00:09:49', '2025-04-09 07:00:49');

-- --------------------------------------------------------

--
-- Table structure for table `syslogs`
--

CREATE TABLE `syslogs` (
  `id` bigint UNSIGNED NOT NULL,
  `level` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
  `category` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `action` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `context` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `user_id` bigint UNSIGNED DEFAULT NULL,
  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` text COLLATE utf8mb4_unicode_ci,
  `url` text COLLATE utf8mb4_unicode_ci,
  `method` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status_code` int DEFAULT NULL,
  `response_time` int DEFAULT NULL,
  `memory_usage` bigint DEFAULT NULL,
  `tags` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `system_logs`
--

CREATE TABLE `system_logs` (
  `id` bigint UNSIGNED NOT NULL,
  `log_type` enum('whatsapp_bulk','auto_billing','reminder_whatsapp','auto_isolir','manual_action') COLLATE utf8mb4_unicode_ci NOT NULL,
  `action_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `total_processed` int NOT NULL DEFAULT '0',
  `total_success` int NOT NULL DEFAULT '0',
  `total_failed` int NOT NULL DEFAULT '0',
  `success_rate` decimal(5,2) NOT NULL DEFAULT '0.00',
  `duration_seconds` decimal(8,2) NOT NULL DEFAULT '0.00',
  `started_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `completed_at` timestamp NULL DEFAULT NULL,
  `status` enum('running','completed','failed','cancelled') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'running',
  `error_message` text COLLATE utf8mb4_unicode_ci,
  `executed_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `settings_used` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `summary_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `system_log_details`
--

CREATE TABLE `system_log_details` (
  `id` bigint UNSIGNED NOT NULL,
  `system_log_id` bigint UNSIGNED NOT NULL,
  `item_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `item_id` bigint UNSIGNED DEFAULT NULL,
  `item_reference` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `item_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `status` enum('success','failed','skipped') COLLATE utf8mb4_unicode_ci NOT NULL,
  `message` text COLLATE utf8mb4_unicode_ci,
  `error_details` text COLLATE utf8mb4_unicode_ci,
  `phone_number` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `amount` decimal(15,2) DEFAULT NULL,
  `additional_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `processed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `processing_time_ms` decimal(8,2) NOT NULL DEFAULT '0.00',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `template_invoices`
--

CREATE TABLE `template_invoices` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_template` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `slug` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `deskripsi` text COLLATE utf8mb4_unicode_ci,
  `header_template` text COLLATE utf8mb4_unicode_ci,
  `body_template` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `footer_template` text COLLATE utf8mb4_unicode_ci,
  `css_custom` text COLLATE utf8mb4_unicode_ci,
  `format_paper` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'A4',
  `orientation` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'portrait',
  `settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `aktif` tinyint(1) NOT NULL DEFAULT '1',
  `is_default` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `template_invoices`
--

INSERT INTO `template_invoices` (`id`, `nama_template`, `slug`, `deskripsi`, `header_template`, `body_template`, `footer_template`, `css_custom`, `format_paper`, `orientation`, `settings`, `aktif`, `is_default`, `created_at`, `updated_at`) VALUES
(1, 'Template Invoice Default', 'template-invoice-default', 'Template invoice default dengan desain modern dan lengkap untuk billing internet', '', '<div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"{{logo_perusahaan}}\" alt=\"{{perusahaan}}\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>{{perusahaan}}</h2>\r\n            <p class=\"motto\">{{moto_perusahaan}}</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> {{alamat_perusahaan}}</p>\r\n                <p><i class=\"fas fa-phone\"></i> {{telepon_perusahaan}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> {{email_perusahaan}}</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>{{nomor_invoice}}</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>{{tanggal_invoice}}</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>{{tanggal_jatuh_tempo}}</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>{{periode_display}}</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>{{nama_pelanggan}}</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>{{nomer_layanan}}</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>{{alamat_pelanggan}}</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>{{nomor_hp}}</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>{{email_pelanggan}}</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>{{paket}}</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>{{kecepatan_download}} / {{kecepatan_upload}}</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>{{layanan_type}}</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td>{{coverage_area}}</td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>{{ssid}}</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>{{paket}}</td>\r\n                    <td>{{periode_display}}</td>\r\n                    <td class=\"text-right\">{{subtotal}}</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">{{biaya_instalasi}}</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-{{diskon}}</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>{{subtotal}}</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN {{ppn_persen}}%</td>\r\n                    <td class=\"text-right\">{{ppn_amount}}</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>{{total_amount}}</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> {{total_terbilang}}\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>{{tanggal_jatuh_tempo}}</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> {{telepon_perusahaan}}</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> {{email_perusahaan}}</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan {{perusahaan}}</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - {{perusahaan}}</small></p>\r\n    </div>\r\n</div>', '', '@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}', 'A4', 'portrait', '{\"show_logo\":true,\"show_company_info\":true,\"show_customer_details\":true,\"show_service_info\":true,\"show_payment_info\":true,\"show_terms\":true,\"currency_symbol\":\"Rp \",\"date_format\":\"d\\/m\\/Y\"}', 1, 1, '2025-06-01 06:09:43', '2025-06-18 15:41:45'),
(3, 'Template Invoice Sederhana', 'template-invoice-sederhana', 'Template invoice dengan desain sederhana dan minimalis', '', '<div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n{{logo_img_small}}\r\n    <h1 style=\"margin: 0; color: #333;\">{{perusahaan}}</h1>\r\n    <p style=\"margin: 5px 0;\">{{alamat_perusahaan}}</p>\r\n    <p style=\"margin: 0;\">Telp: {{telepon_perusahaan}} | Email: {{email_perusahaan}}</p>\r\n</div>\r\n\r\n<div style=\"display: flex; justify-content: space-between; margin-bottom: 30px;\">\r\n    <div>\r\n        <h2 style=\"margin: 0;\">INVOICE</h2>\r\n        <p>{{nomor_invoice}}</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> {{tanggal_invoice}}</p>\r\n        <p><strong>Jatuh Tempo:</strong> {{tanggal_jatuh_tempo}}</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>{{nama_pelanggan}}</strong></p>\r\n    <p>{{alamat_pelanggan}}</p>\r\n    <p>HP: {{nomor_hp}}</p>\r\n</div>\r\n\r\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0;\">\r\n    <thead>\r\n        <tr style=\"background: #f5f5f5;\">\r\n            <th style=\"border: 1px solid #ddd; padding: 10px; text-align: left;\">Deskripsi</th>\r\n            <th style=\"border: 1px solid #ddd; padding: 10px; text-align: left;\">Periode</th>\r\n            <th style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Jumlah</th>\r\n        </tr>\r\n    </thead>\r\n    <tbody>\r\n        <tr>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">{{paket}}</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">{{periode_display}}</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">{{subtotal}}</td>\r\n        </tr>\r\n    </tbody>\r\n    <tfoot>\r\n        <tr style=\"background: #f5f5f5; font-weight: bold;\">\r\n            <td colspan=\"2\" style=\"border: 1px solid #ddd; padding: 10px;\">TOTAL</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">{{total_amount}}</td>\r\n        </tr>\r\n    </tfoot>\r\n</table><div style=\"margin-top: 30px; padding-top: 20px; border-top: 1px solid #ddd;\">\r\n    <h4>Pembayaran:</h4>\r\n    {{#if rekening_utama}}\r\n    <p>Transfer ke: {{rekening_utama}}</p>\r\n    {{/if}}\r\n    \r\n    <p style=\"margin-top: 20px;\"><em>Terima kasih atas kepercayaan Anda.</em></p>\r\n</div>', '', 'body { \r\n    font-family: Arial, sans-serif; \r\n    font-size: 14px; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n}\r\n@media print { \r\n    body { margin: 0; padding: 15px; } \r\n}', 'A4', 'portrait', '{\"show_logo\":false,\"simple_design\":true,\"minimal_colors\":true}', 1, 0, '2025-06-01 06:09:43', '2025-06-18 15:37:06'),
(4, 'Tailwind Invoice', 'tailwind-invoice', NULL, '', '<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <title>Invoice</title>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n</head>\r\n<body>\r\n  <div class=\"max-w-4xl mx-auto p-6 bg-white text-slate-500 shadow-md rounded mt-10 border font-sans\">\r\n    \r\n    <!-- Header -->\r\n    <div class=\"border-b pb-8 mb-8 flex items-center\">\r\n      <div class=\"flex-1 text-left\">\r\n        {{logo_img_small}}\r\n        <h3 class=\"font-bold\">{{perusahaan}}</h3>\r\n        <p class=\"text-sm text-slate-500\">{{alamat_perusahaan}}</p>\r\n        <p class=\"text-sm text-slate-500\">{{telepon_perusahaan}}</p>\r\n        <p class=\"text-sm text-slate-500\">{{email_perusahaan}}</p>\r\n      </div>\r\n      <h1 class=\"text-4xl font-bold text-slate-400 uppercase flex-1 text-right\">Invoice</h1>\r\n    </div>\r\n\r\n    <!-- Info Pelanggan dan Invoice -->\r\n    <div class=\"pb-4 mb-4 flex items-start\">\r\n      <!-- Customer Information -->\r\n      <div class=\"mb-4\">\r\n        <h2 class=\"font-semibold text-slate-700\">Bill To:</h2>\r\n        <p class=\"text-sm text-slate-500\">Nama: {{nama_pelanggan}}</p>\r\n        <p class=\"text-sm text-slate-500\">No. Layanan: {{nomer_layanan}}</p>\r\n        <p class=\"text-sm text-slate-500\">No. Telp: {{nomor_hp}}</p>\r\n      </div>\r\n\r\n      <!-- Invoice Information -->\r\n      <div class=\"mb-4 text-right flex-1\">\r\n        <p class=\"text-sm text-slate-500\">Invoice #: {{nomor_invoice}}</p>\r\n        <p class=\"text-sm text-slate-500\">Tanggal: {{tanggal_invoice}}</p>\r\n        <p class=\"text-sm text-slate-500\">Jatuh Tempo: {{tanggal_jatuh_tempo}}</p>\r\n        <p class=\"text-sm text-slate-500\">Status: {{status_invoice_label}}</p>\r\n      </div>\r\n    </div>\r\n\r\n    <!-- Tabel Invoice -->\r\n    <table class=\"min-w-full table-auto mb-24\">\r\n      <thead>\r\n        <tr class=\"bg-slate-100\">\r\n          <th class=\"px-4 py-2 text-left\">Item / Layanan</th>\r\n          <th class=\"px-4 py-2 text-left\">Deskripsi</th>\r\n          <th class=\"px-4 py-2 text-left\">Qty</th>\r\n          <th class=\"px-4 py-2 text-left\">Harga</th>\r\n          <th class=\"px-4 py-2 text-right\">Jumlah</th>\r\n        </tr>\r\n      </thead>\r\n      <tbody>\r\n        <tr>\r\n          <td class=\"border px-4 py-2\">{{paket}}</td>\r\n          <td class=\"border px-4 py-2\">{{ssid}}</td>\r\n          <td class=\"border px-4 py-2\">-</td>\r\n          <td class=\"border px-4 py-2\">{{subtotal}}</td>\r\n          <td class=\"border px-4 py-2 text-right\">{{subtotal}}</td>\r\n        </tr>\r\n        <tr>\r\n          <td colspan=\"4\" class=\"border px-4 py-2 text-right\">Subtotal</td>\r\n          <td class=\"border px-4 py-2 text-right\">{{subtotal}}</td>\r\n        </tr>\r\n        <tr>\r\n          <td colspan=\"4\" class=\"border px-4 py-2 text-right\">PPN {{ppn_persen}}</td>\r\n          <td class=\"border px-4 py-2 text-right\">{{ppn_amount}}</td>\r\n        </tr>\r\n        <tr class=\"font-bold\">\r\n          <td colspan=\"4\" class=\"border px-4 py-2 text-right\">Total</td>\r\n          <td class=\"border px-4 py-2 text-right\">{{total}}</td>\r\n        </tr>\r\n      </tbody>\r\n    </table>\r\n\r\n<!-- Informasi Pembayaran -->\r\n<div class=\"bg-red-100 text-red-700 rounded-sm p-3 shadow-sm\">\r\n  <div class=\"text-sm text-slate-500 pt-2 mt-2\">\r\n    <p class=\"text-red-800 font-semibold mb-1\">Pembayaran Melalui:</p>\r\n    <p>{{rekening_utama}}</p>\r\n    <p>{{link_bayar_online}}</p>\r\n  </div>\r\n</div>\r\n\r\n\r\n\r\n    <!-- Footer -->\r\n    <div class=\"mb-6\"></div>\r\n    <p>Invoice ini dibuat otomatis oleh sistem biling pada tanggal {{tanggal_generate}}</p>\r\n    <p>{{url_view_invoice}}</p>\r\n\r\n  </div>\r\n</body>\r\n</html>', '', NULL, 'A4', 'portrait', NULL, 1, 0, '2025-06-18 12:55:24', '2025-06-18 15:41:45');

-- --------------------------------------------------------

--
-- Table structure for table `tentang_kamis`
--

CREATE TABLE `tentang_kamis` (
  `id` bigint UNSIGNED NOT NULL,
  `judul` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `konten` longtext COLLATE utf8mb4_unicode_ci,
  `visi` text COLLATE utf8mb4_unicode_ci,
  `misi` text COLLATE utf8mb4_unicode_ci,
  `sejarah` text COLLATE utf8mb4_unicode_ci,
  `gambar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('aktif','nonaktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `tentang_kamis`
--

INSERT INTO `tentang_kamis` (`id`, `judul`, `konten`, `visi`, `misi`, `sejarah`, `gambar`, `status`, `created_at`, `updated_at`) VALUES
(1, 'Tentang Perusahaan Kami', '<p>Kami adalah penyedia layanan internet terdepan yang berkomitmen memberikan koneksi berkualitas tinggi dengan pelayanan terbaik.</p><p>Dengan teknologi terkini dan tim profesional, kami melayani ribuan pelanggan di seluruh Indonesia.</p>', 'Menjadi penyedia layanan internet terpercaya yang menghubungkan Indonesia dengan dunia digital.', 'Memberikan layanan internet berkualitas tinggi dengan harga terjangkau dan dukungan teknis terbaik untuk semua kalangan.', 'Didirikan pada tahun 2018, perusahaan kami telah berkembang pesat dan melayani lebih dari 10.000 pelanggan aktif.', NULL, 'aktif', '2025-06-01 10:51:31', '2025-06-01 10:51:31');

-- --------------------------------------------------------

--
-- Table structure for table `themes`
--

CREATE TABLE `themes` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `display_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `colors` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `css_variables` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
  `border_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `card_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `component_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `component_style` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'modern',
  `typography_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `layout_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `animation_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `custom_css` longtext COLLATE utf8mb4_unicode_ci,
  `sidebar_config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `use_custom_sidebar` tinyint(1) NOT NULL DEFAULT '0',
  `preview_image` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT '0',
  `is_default` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `themes`
--

INSERT INTO `themes` (`id`, `name`, `display_name`, `description`, `colors`, `css_variables`, `border_settings`, `card_settings`, `component_settings`, `component_style`, `typography_settings`, `layout_settings`, `animation_settings`, `custom_css`, `sidebar_config`, `use_custom_sidebar`, `preview_image`, `is_active`, `is_default`, `created_at`, `updated_at`) VALUES
(1, 'corporate-blue', 'Corporate Blue', 'Tema default dengan warna biru profesional untuk lingkungan korporat', '{\"primary\":\"#2563eb\",\"primary_dark\":\"#1d4ed8\",\"secondary\":\"#64748b\",\"accent\":\"#0f172a\",\"success\":\"#059669\",\"warning\":\"#d97706\",\"danger\":\"#dc2626\",\"info\":\"#0284c7\",\"light_bg\":\"#f8fafc\"}', '{\"--primary-color\":\"#2563eb\",\"--primary-dark\":\"#1d4ed8\",\"--secondary-color\":\"#64748b\",\"--accent-color\":\"#0f172a\",\"--success-color\":\"#059669\",\"--warning-color\":\"#d97706\",\"--danger-color\":\"#dc2626\",\"--info-color\":\"#0284c7\",\"--light-bg\":\"#f8fafc\",\"--sidebar-gradient\":\"linear-gradient(135deg, #0f172a 0%, #1e293b 100%)\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 1, 1, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(2, 'professional-dark', 'Professional Dark', 'Tema gelap profesional dengan aksen hijau emerald untuk pengguna yang menyukai mode dark', '{\"primary\":\"#10b981\",\"primary_dark\":\"#059669\",\"secondary\":\"#6b7280\",\"accent\":\"#111827\",\"success\":\"#22c55e\",\"warning\":\"#f59e0b\",\"danger\":\"#ef4444\",\"info\":\"#06b6d4\",\"light_bg\":\"#1f2937\"}', '{\"--primary-color\":\"#10b981\",\"--primary-dark\":\"#059669\",\"--secondary-color\":\"#6b7280\",\"--accent-color\":\"#111827\",\"--success-color\":\"#22c55e\",\"--warning-color\":\"#f59e0b\",\"--danger-color\":\"#ef4444\",\"--info-color\":\"#06b6d4\",\"--light-bg\":\"#1f2937\",\"--sidebar-gradient\":\"linear-gradient(135deg, #111827 0%, #1f2937 100%)\",\"--text-color\":\"#f9fafb\",\"--card-bg\":\"#374151\",\"--border-color\":\"#4b5563\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(3, 'modern-light', 'Modern Light', 'Tema terang modern dengan aksen purple dan desain minimalis untuk tampilan yang fresh', '{\"primary\":\"#8b5cf6\",\"primary_dark\":\"#7c3aed\",\"secondary\":\"#64748b\",\"accent\":\"#f8fafc\",\"success\":\"#10b981\",\"warning\":\"#f59e0b\",\"danger\":\"#ef4444\",\"info\":\"#3b82f6\",\"light_bg\":\"#ffffff\"}', '{\"--primary-color\":\"#8b5cf6\",\"--primary-dark\":\"#7c3aed\",\"--secondary-color\":\"#64748b\",\"--accent-color\":\"#f8fafc\",\"--success-color\":\"#10b981\",\"--warning-color\":\"#f59e0b\",\"--danger-color\":\"#ef4444\",\"--info-color\":\"#3b82f6\",\"--light-bg\":\"#ffffff\",\"--sidebar-gradient\":\"linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%)\",\"--text-color\":\"#1e293b\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#e2e8f0\",\"--sidebar-text\":\"#475569\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(4, 'lara-admin', 'LaraAdmin', 'Tema bergaya LaraAdmin dengan desain modern, sidebar gelap, dan aksen orange yang eye-catching', '{\"primary\":\"#f97316\",\"primary_dark\":\"#ea580c\",\"secondary\":\"#64748b\",\"accent\":\"#1e293b\",\"success\":\"#22c55e\",\"warning\":\"#eab308\",\"danger\":\"#ef4444\",\"info\":\"#06b6d4\",\"light_bg\":\"#f1f5f9\"}', '{\"--primary-color\":\"#f97316\",\"--primary-dark\":\"#ea580c\",\"--secondary-color\":\"#64748b\",\"--accent-color\":\"#1e293b\",\"--success-color\":\"#22c55e\",\"--warning-color\":\"#eab308\",\"--danger-color\":\"#ef4444\",\"--info-color\":\"#06b6d4\",\"--light-bg\":\"#f1f5f9\",\"--sidebar-gradient\":\"linear-gradient(135deg, #1e293b 0%, #334155 100%)\",\"--text-color\":\"#1e293b\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#e2e8f0\",\"--sidebar-text\":\"#cbd5e1\",\"--sidebar-text-active\":\"#ffffff\",\"--sidebar-border\":\"#475569\",\"--header-bg\":\"#ffffff\",\"--header-shadow\":\"0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\"--card-shadow\":\"0 1px 3px 0 rgba(0, 0, 0, 0.1)\",\"--button-shadow\":\"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\"--orange-light\":\"#fed7aa\",\"--orange-lighter\":\"#ffedd5\",\"--gray-50\":\"#f8fafc\",\"--gray-100\":\"#f1f5f9\",\"--gray-200\":\"#e2e8f0\",\"--gray-300\":\"#cbd5e1\",\"--gray-400\":\"#94a3b8\",\"--gray-500\":\"#64748b\",\"--gray-600\":\"#475569\",\"--gray-700\":\"#334155\",\"--gray-800\":\"#1e293b\",\"--gray-900\":\"#0f172a\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(5, 'minimalist-mono', 'Minimalist Mono', 'Desain ultra minimalis dengan tipografi monospace, grid system, dan pendekatan flat design yang sangat bersih', '{\"primary\":\"#000000\",\"primary_dark\":\"#1a1a1a\",\"secondary\":\"#666666\",\"accent\":\"#f5f5f5\",\"success\":\"#28a745\",\"warning\":\"#ffc107\",\"danger\":\"#dc3545\",\"info\":\"#17a2b8\",\"light_bg\":\"#ffffff\"}', '{\"--primary-color\":\"#000000\",\"--primary-dark\":\"#1a1a1a\",\"--secondary-color\":\"#666666\",\"--accent-color\":\"#f5f5f5\",\"--success-color\":\"#28a745\",\"--warning-color\":\"#ffc107\",\"--danger-color\":\"#dc3545\",\"--info-color\":\"#17a2b8\",\"--light-bg\":\"#ffffff\",\"--sidebar-gradient\":\"#ffffff\",\"--text-color\":\"#333333\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#e0e0e0\",\"--sidebar-text\":\"#333333\",\"--sidebar-text-active\":\"#000000\",\"--sidebar-border\":\"#e0e0e0\",\"--header-bg\":\"#ffffff\",\"--header-shadow\":\"none\",\"--card-shadow\":\"none\",\"--button-shadow\":\"none\",\"--font-family\":\"\\\"JetBrains Mono\\\", \\\"Fira Code\\\", \\\"Monaco\\\", monospace\",\"--font-size-base\":\"13px\",\"--line-height-base\":\"1.6\",\"--border-radius\":\"0px\",\"--sidebar-width\":\"200px\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(6, 'material-glass', 'Material Glass', 'Inspired by Google Material Design dengan glassmorphism effect, elevation shadows, dan typography yang sangat readable', '{\"primary\":\"#1976d2\",\"primary_dark\":\"#1565c0\",\"secondary\":\"#424242\",\"accent\":\"#f3f4f6\",\"success\":\"#4caf50\",\"warning\":\"#ff9800\",\"danger\":\"#f44336\",\"info\":\"#2196f3\",\"light_bg\":\"#fafafa\"}', '{\"--primary-color\":\"#1976d2\",\"--primary-dark\":\"#1565c0\",\"--secondary-color\":\"#424242\",\"--accent-color\":\"#f3f4f6\",\"--success-color\":\"#4caf50\",\"--warning-color\":\"#ff9800\",\"--danger-color\":\"#f44336\",\"--info-color\":\"#2196f3\",\"--light-bg\":\"#fafafa\",\"--sidebar-gradient\":\"linear-gradient(135deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.8) 100%)\",\"--text-color\":\"#212121\",\"--card-bg\":\"rgba(255,255,255,0.7)\",\"--border-color\":\"rgba(0,0,0,0.12)\",\"--sidebar-text\":\"#424242\",\"--sidebar-text-active\":\"#1976d2\",\"--sidebar-border\":\"rgba(0,0,0,0.12)\",\"--header-bg\":\"rgba(255,255,255,0.8)\",\"--header-shadow\":\"0 2px 4px -1px rgba(0,0,0,0.2)\",\"--card-shadow\":\"0 2px 4px rgba(0,0,0,0.1)\",\"--button-shadow\":\"0 2px 4px rgba(0,0,0,0.2)\",\"--font-family\":\"\\\"Roboto\\\", -apple-system, BlinkMacSystemFont, sans-serif\",\"--font-size-base\":\"14px\",\"--line-height-base\":\"1.5\",\"--border-radius\":\"8px\",\"--backdrop-filter\":\"blur(10px)\",\"--elevation-1\":\"0 1px 3px rgba(0,0,0,0.12)\",\"--elevation-2\":\"0 2px 6px rgba(0,0,0,0.16)\",\"--elevation-3\":\"0 3px 8px rgba(0,0,0,0.2)\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(7, 'nordic-clean', 'Nordic Clean', 'Terinspirasi dari desain Skandinavia dengan color palette yang soft, spacing yang generous, dan clean typography', '{\"primary\":\"#5e81ac\",\"primary_dark\":\"#4c566a\",\"secondary\":\"#81a1c1\",\"accent\":\"#eceff4\",\"success\":\"#a3be8c\",\"warning\":\"#ebcb8b\",\"danger\":\"#bf616a\",\"info\":\"#88c0d0\",\"light_bg\":\"#eceff4\"}', '{\"--primary-color\":\"#5e81ac\",\"--primary-dark\":\"#4c566a\",\"--secondary-color\":\"#81a1c1\",\"--accent-color\":\"#eceff4\",\"--success-color\":\"#a3be8c\",\"--warning-color\":\"#ebcb8b\",\"--danger-color\":\"#bf616a\",\"--info-color\":\"#88c0d0\",\"--light-bg\":\"#eceff4\",\"--sidebar-gradient\":\"#e5e9f0\",\"--text-color\":\"#2e3440\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#d8dee9\",\"--sidebar-text\":\"#4c566a\",\"--sidebar-text-active\":\"#5e81ac\",\"--sidebar-border\":\"#d8dee9\",\"--header-bg\":\"#ffffff\",\"--header-shadow\":\"0 1px 3px rgba(0,0,0,0.05)\",\"--card-shadow\":\"0 1px 3px rgba(0,0,0,0.08)\",\"--button-shadow\":\"0 1px 2px rgba(0,0,0,0.05)\",\"--font-family\":\"\\\"Source Sans Pro\\\", -apple-system, BlinkMacSystemFont, sans-serif\",\"--font-size-base\":\"15px\",\"--line-height-base\":\"1.7\",\"--border-radius\":\"6px\",\"--spacing-unit\":\"24px\",\"--content-max-width\":\"1200px\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(8, 'terminal-dark', 'Terminal Dark', 'Tema gelap dengan estetika terminal/console, menggunakan font monospace dan color scheme hacker-style yang nyaman untuk mata', '{\"primary\":\"#00ff00\",\"primary_dark\":\"#00cc00\",\"secondary\":\"#888888\",\"accent\":\"#0d1117\",\"success\":\"#00ff00\",\"warning\":\"#ffff00\",\"danger\":\"#ff0000\",\"info\":\"#00ffff\",\"light_bg\":\"#161b22\"}', '{\"--primary-color\":\"#00ff00\",\"--primary-dark\":\"#00cc00\",\"--secondary-color\":\"#888888\",\"--accent-color\":\"#0d1117\",\"--success-color\":\"#00ff00\",\"--warning-color\":\"#ffff00\",\"--danger-color\":\"#ff0000\",\"--info-color\":\"#00ffff\",\"--light-bg\":\"#161b22\",\"--sidebar-gradient\":\"#0d1117\",\"--text-color\":\"#c9d1d9\",\"--card-bg\":\"#21262d\",\"--border-color\":\"#30363d\",\"--sidebar-text\":\"#7d8590\",\"--sidebar-text-active\":\"#00ff00\",\"--sidebar-border\":\"#30363d\",\"--header-bg\":\"#21262d\",\"--header-shadow\":\"0 1px 0 #30363d\",\"--card-shadow\":\"inset 0 1px 0 #30363d\",\"--button-shadow\":\"none\",\"--font-family\":\"\\\"Fira Code\\\", \\\"JetBrains Mono\\\", \\\"Consolas\\\", monospace\",\"--font-size-base\":\"13px\",\"--line-height-base\":\"1.6\",\"--border-radius\":\"3px\",\"--terminal-cursor\":\"#00ff00\",\"--terminal-selection\":\"rgba(0,255,0,0.2)\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(9, 'simple-white', 'Simple White', 'Tema putih ultra-simple dengan spacing minimal, typography yang bersih, dan fokus pada konten tanpa distraksi', '{\"primary\":\"#4a5568\",\"primary_dark\":\"#2d3748\",\"secondary\":\"#718096\",\"accent\":\"#ffffff\",\"success\":\"#48bb78\",\"warning\":\"#ed8936\",\"danger\":\"#f56565\",\"info\":\"#4299e1\",\"light_bg\":\"#ffffff\"}', '{\"--primary-color\":\"#4a5568\",\"--primary-dark\":\"#2d3748\",\"--secondary-color\":\"#718096\",\"--accent-color\":\"#ffffff\",\"--success-color\":\"#48bb78\",\"--warning-color\":\"#ed8936\",\"--danger-color\":\"#f56565\",\"--info-color\":\"#4299e1\",\"--light-bg\":\"#ffffff\",\"--sidebar-gradient\":\"#ffffff\",\"--text-color\":\"#2d3748\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#e2e8f0\",\"--sidebar-text\":\"#4a5568\",\"--sidebar-text-active\":\"#2d3748\",\"--sidebar-border\":\"#e2e8f0\",\"--header-bg\":\"#ffffff\",\"--header-shadow\":\"none\",\"--card-shadow\":\"none\",\"--button-shadow\":\"none\",\"--font-family\":\"-apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", sans-serif\",\"--font-size-base\":\"14px\",\"--line-height-base\":\"1.4\",\"--border-radius\":\"2px\",\"--spacing-minimal\":\"8px\",\"--spacing-small\":\"12px\",\"--spacing-medium\":\"16px\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(10, 'clean-compact', 'Clean Compact', 'Desain super kompak dengan sidebar kecil, padding minimal, dan layout yang sangat efisien untuk memaksimalkan workspace', '{\"primary\":\"#3182ce\",\"primary_dark\":\"#2c5282\",\"secondary\":\"#a0aec0\",\"accent\":\"#f7fafc\",\"success\":\"#38a169\",\"warning\":\"#d69e2e\",\"danger\":\"#e53e3e\",\"info\":\"#3182ce\",\"light_bg\":\"#f7fafc\"}', '{\"--primary-color\":\"#3182ce\",\"--primary-dark\":\"#2c5282\",\"--secondary-color\":\"#a0aec0\",\"--accent-color\":\"#f7fafc\",\"--success-color\":\"#38a169\",\"--warning-color\":\"#d69e2e\",\"--danger-color\":\"#e53e3e\",\"--info-color\":\"#3182ce\",\"--light-bg\":\"#f7fafc\",\"--sidebar-gradient\":\"#ffffff\",\"--text-color\":\"#2d3748\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#e2e8f0\",\"--sidebar-text\":\"#4a5568\",\"--sidebar-text-active\":\"#3182ce\",\"--sidebar-border\":\"#e2e8f0\",\"--header-bg\":\"#ffffff\",\"--header-shadow\":\"0 1px 0 #e2e8f0\",\"--card-shadow\":\"0 1px 2px rgba(0,0,0,0.05)\",\"--button-shadow\":\"none\",\"--font-family\":\"system-ui, -apple-system, sans-serif\",\"--font-size-base\":\"13px\",\"--line-height-base\":\"1.3\",\"--border-radius\":\"4px\",\"--sidebar-width\":\"180px\",\"--compact-padding\":\"6px\",\"--compact-margin\":\"4px\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(11, 'minimal-gray', 'Minimal Gray', 'Tema grayscale yang sangat minimal dengan kontras rendah, perfect untuk fokus jangka panjang dan mengurangi eye strain', '{\"primary\":\"#555555\",\"primary_dark\":\"#333333\",\"secondary\":\"#888888\",\"accent\":\"#f8f9fa\",\"success\":\"#6c757d\",\"warning\":\"#6c757d\",\"danger\":\"#555555\",\"info\":\"#6c757d\",\"light_bg\":\"#f8f9fa\"}', '{\"--primary-color\":\"#555555\",\"--primary-dark\":\"#333333\",\"--secondary-color\":\"#888888\",\"--accent-color\":\"#f8f9fa\",\"--success-color\":\"#6c757d\",\"--warning-color\":\"#6c757d\",\"--danger-color\":\"#555555\",\"--info-color\":\"#6c757d\",\"--light-bg\":\"#f8f9fa\",\"--sidebar-gradient\":\"#ffffff\",\"--text-color\":\"#333333\",\"--card-bg\":\"#ffffff\",\"--border-color\":\"#dee2e6\",\"--sidebar-text\":\"#666666\",\"--sidebar-text-active\":\"#333333\",\"--sidebar-border\":\"#dee2e6\",\"--header-bg\":\"#ffffff\",\"--header-shadow\":\"none\",\"--card-shadow\":\"none\",\"--button-shadow\":\"none\",\"--font-family\":\"system-ui, sans-serif\",\"--font-size-base\":\"14px\",\"--line-height-base\":\"1.5\",\"--border-radius\":\"1px\",\"--low-contrast\":\"true\",\"--grayscale-filter\":\"grayscale(0.2)\"}', NULL, NULL, NULL, 'modern', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, '2025-06-01 06:09:43', '2025-06-01 06:09:43');

-- --------------------------------------------------------

--
-- Table structure for table `tickets`
--

CREATE TABLE `tickets` (
  `id` bigint UNSIGNED NOT NULL,
  `no_ticket` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `pelanggan_id` bigint UNSIGNED NOT NULL,
  `nama_pelanggan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `no_wa_pelanggan` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kendala_error` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `kategori_ticket` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `foto_laporan` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `waktu_laporan` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `teknisi_id` bigint UNSIGNED DEFAULT NULL,
  `nama_teknisi` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `waktu_perbaikan` timestamp NULL DEFAULT NULL,
  `waktu_penyelesaian` timestamp NULL DEFAULT NULL,
  `keterangan_penyelesaian` text COLLATE utf8mb4_unicode_ci,
  `foto_penyelesaian` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` enum('menunggu_antrian','menunggu_teknisi_datang','proses_penyelesaian','selesai') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'menunggu_antrian',
  `created_by` bigint UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `tickets`
--

INSERT INTO `tickets` (`id`, `no_ticket`, `pelanggan_id`, `nama_pelanggan`, `no_wa_pelanggan`, `kendala_error`, `kategori_ticket`, `foto_laporan`, `waktu_laporan`, `teknisi_id`, `nama_teknisi`, `waktu_perbaikan`, `waktu_penyelesaian`, `keterangan_penyelesaian`, `foto_penyelesaian`, `status`, `created_by`, `created_at`, `updated_at`) VALUES
(56, 'TKT202506170001', 268, 'isna', '081280090373', 'Internet terasa lambat atau loading lama', 'Koneksi Lambat', 'tickets/laporan/FxMOts6MkBf4oO7Popd0zUg6QUHRz8XC8K45BT1F.png', '2025-06-16 17:00:03', NULL, NULL, NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-06-16 17:00:03', '2025-06-16 17:00:03');

-- --------------------------------------------------------

--
-- Table structure for table `ticket_replies`
--

CREATE TABLE `ticket_replies` (
  `id` bigint UNSIGNED NOT NULL,
  `ticket_id` bigint UNSIGNED NOT NULL,
  `user_id` bigint UNSIGNED NOT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `attachments` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `is_internal` tinyint(1) NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL
) ;

-- --------------------------------------------------------

--
-- Table structure for table `top_odcs`
--

CREATE TABLE `top_odcs` (
  `id` bigint UNSIGNED NOT NULL,
  `top_olt_id` bigint UNSIGNED NOT NULL,
  `pon_olt` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `nama_odc` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kode_odc` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jumlah_port` int NOT NULL,
  `status` enum('aktif','non_aktif','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `foto_odc` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `lokasi` text COLLATE utf8mb4_unicode_ci,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `keterangan` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `top_odcs`
--

INSERT INTO `top_odcs` (`id`, `top_olt_id`, `pon_olt`, `nama_odc`, `kode_odc`, `jumlah_port`, `status`, `foto_odc`, `lokasi`, `latitude`, `longitude`, `keterangan`, `created_at`, `updated_at`) VALUES
(1, 1, 'pon_1', 'EKONET-ODC01', 'EKONET-ODC01', 8, 'aktif', NULL, NULL, -6.65517661, 106.86321437, NULL, '2025-06-01 16:42:35', '2025-06-01 16:42:35'),
(2, 1, 'pon_2', 'EKONET-ODC02', 'EKONET-ODC02', 16, 'aktif', NULL, NULL, -6.65526187, 106.86335385, NULL, '2025-06-01 16:43:35', '2025-06-01 16:43:35');

-- --------------------------------------------------------

--
-- Table structure for table `top_odps`
--

CREATE TABLE `top_odps` (
  `id` bigint UNSIGNED NOT NULL,
  `top_odc_id` bigint UNSIGNED NOT NULL,
  `coverage_area_id` bigint UNSIGNED DEFAULT NULL,
  `parent_type` enum('odc','odp') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'odc',
  `parent_odp_id` bigint UNSIGNED DEFAULT NULL,
  `splitter_ratio` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `splitter_power_ratio` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `odc_port` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `nama_odp` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `kode_odp` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jml_port_odp` int NOT NULL,
  `redaman_rata_rata` decimal(5,2) DEFAULT NULL,
  `status` enum('aktif','non_aktif','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `foto_odp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `lokasi` text COLLATE utf8mb4_unicode_ci,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `keterangan` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `top_odps`
--

INSERT INTO `top_odps` (`id`, `top_odc_id`, `coverage_area_id`, `parent_type`, `parent_odp_id`, `splitter_ratio`, `splitter_power_ratio`, `odc_port`, `nama_odp`, `kode_odp`, `jml_port_odp`, `redaman_rata_rata`, `status`, `foto_odp`, `lokasi`, `latitude`, `longitude`, `keterangan`, `created_at`, `updated_at`) VALUES
(1, 1, 5, 'odc', NULL, NULL, NULL, 'port_1', 'ODP PRAPATAN BAWAH', 'ODP PRAPATAN BAWAH', 8, 22.00, 'aktif', NULL, NULL, -6.65664000, 106.86513000, NULL, '2025-06-01 16:46:31', '2025-06-02 18:07:20'),
(2, 1, 7, 'odc', NULL, NULL, NULL, 'port_4', 'ODP RT04 (NOVA)', 'ODP RT04 (NOVA)', 8, 22.00, 'aktif', NULL, NULL, -6.65602000, 106.86428000, NULL, '2025-06-01 16:48:25', '2025-06-01 16:48:25'),
(3, 2, 8, 'odc', NULL, NULL, NULL, 'port_10', 'ODP-KAMRA-001', 'ODP-KAMRA-001(CATERIN)', 8, 22.00, 'aktif', NULL, NULL, -6.65613000, 106.86375000, NULL, '2025-06-02 01:47:47', '2025-06-02 01:47:47'),
(9, 2, 10, 'odc', NULL, NULL, NULL, 'port_3', 'ODP-VMALA-A01', 'ODP-VMALA-A01 (Ustad Nanang)', 8, 22.00, 'aktif', NULL, NULL, -6.65731000, 106.86442000, NULL, '2025-06-02 10:21:58', '2025-06-02 10:21:58'),
(10, 2, 10, 'odp', 9, '1:2', '15:85', NULL, 'ODP-VMALA-A02', 'ODP-VMALA-A02 (LAPANGAN)', 8, 22.00, 'aktif', NULL, NULL, -6.65664000, 106.86513000, NULL, '2025-06-02 10:22:42', '2025-06-02 10:22:42'),
(11, 2, 10, 'odp', 10, '1:2', '15:85', NULL, 'ODP-VMALA-A03', 'ODP-VMALA-A03 (TIANG ORANGE)', 8, 22.00, 'aktif', NULL, NULL, -6.65641000, 106.86489000, NULL, '2025-06-02 10:26:41', '2025-06-02 10:26:41'),
(12, 2, 10, 'odc', NULL, NULL, NULL, 'port_9', 'ODP-VMALA-A04', 'ODP-VMALA-A04 (CIMENTENG)', 8, 22.00, 'aktif', NULL, NULL, -6.65666320, 106.86147630, NULL, '2025-06-02 10:28:04', '2025-06-02 10:28:04'),
(13, 2, 10, 'odp', 12, '1:2', '15:85', NULL, 'ODP-VMALA-A05', 'ODP-VMALA-A05 (MUSHOLA ALBAROKAH)', 8, 22.00, 'aktif', NULL, NULL, -6.65619964, 106.86070919, NULL, '2025-06-02 10:29:19', '2025-06-02 10:29:19'),
(14, 2, 11, 'odc', NULL, NULL, NULL, 'port_12', 'ODP-KPRAWA-IBU TITIN', 'ODP-IBU TITIN', 8, 22.00, 'aktif', NULL, NULL, -6.65573075, 106.86578393, NULL, '2025-06-02 10:45:53', '2025-06-02 10:45:53'),
(15, 2, 11, 'odp', 14, '1:2', '15:85', NULL, 'ODP-ROSET-SUKABIRUS', 'ODP-ROSET-SUKABIRUS', 4, 22.00, 'aktif', NULL, NULL, -6.66225783, 106.87011838, NULL, '2025-06-02 10:47:18', '2025-06-02 10:47:18'),
(16, 2, 5, 'odc', NULL, NULL, NULL, 'port_1', 'ODP-GAPURA RT02', 'ODP-GAPURA RT02', 8, 22.00, 'aktif', NULL, NULL, -6.65472904, 106.86274230, NULL, '2025-06-02 10:49:03', '2025-06-02 10:49:03'),
(17, 2, 5, 'odp', 16, '1:2', '15:85', NULL, 'ODP-GANG HONDA-01', 'ODP-GANG HONDA-01', 8, 22.00, 'aktif', NULL, NULL, -6.65450525, 106.86211467, NULL, '2025-06-02 10:50:48', '2025-06-02 10:50:48'),
(18, 2, 6, 'odc', NULL, NULL, NULL, 'port_2', 'ODP-RT02-BAYU', 'ODP-RT02-BAYU', 8, 22.00, 'aktif', NULL, NULL, -6.65521924, 106.86311245, NULL, '2025-06-02 10:52:11', '2025-06-02 10:52:11'),
(19, 2, 6, 'odp', 26, '1:2', '15:85', NULL, 'ODP-RT02-HJ.UNI', 'ODP-RT02-HJ.UNI', 8, 22.00, 'aktif', NULL, NULL, -6.65549631, 106.86260819, NULL, '2025-06-02 10:53:35', '2025-06-02 17:34:23'),
(20, 2, 6, 'odc', NULL, NULL, NULL, 'port_4', 'ODP-RT03-POSMAWAR', 'ODP-RT03-POSMAWAR', 8, 22.00, 'aktif', NULL, NULL, -6.65530449, 106.86328948, NULL, '2025-06-02 10:54:52', '2025-06-02 10:54:52'),
(21, 2, 6, 'odp', 20, '1:2', '15:85', NULL, 'ODP-RT03-RT-TONO', 'ODP-RT03-RT-TONO', 8, 22.00, 'aktif', NULL, NULL, -6.65596520, 106.86313391, NULL, '2025-06-02 10:55:47', '2025-06-02 10:55:47'),
(22, 2, 8, 'odc', NULL, NULL, NULL, 'port_11', 'ODP-KAMRA-01A (GAPURA)', 'ODP-KAMRA-01A (GAPURA)', 8, 22.00, 'aktif', NULL, NULL, -6.65438270, 106.86422825, NULL, '2025-06-02 17:15:38', '2025-06-02 17:15:38'),
(23, 2, 8, 'odp', 22, '1:2', '15:85', NULL, 'ODP-KAMRA-02A (POS RONDA)', 'ODP-KAMRA-02A (POS RONDA)', 8, 22.00, 'aktif', NULL, NULL, -6.65510735, 106.86484516, NULL, '2025-06-02 17:15:45', '2025-06-02 17:16:42'),
(24, 2, 8, 'odp', 23, '1:2', '15:85', NULL, 'ODP-KAMRA-03A (TENIS MEJA)', 'ODP-KAMRA-03A (TENIS MEJA)', 12, 22.00, 'aktif', NULL, NULL, -6.65549098, 106.86523139, NULL, '2025-06-02 17:16:57', '2025-06-02 17:17:48'),
(25, 2, 8, 'odp', 24, '1:2', '15:85', NULL, 'ODP-KAMRA-04A (MASJID AL-MUHYIDIN)', 'ODP-KAMRA-04A (MASJID AL-MUHYIDIN)', 8, 22.00, 'aktif', NULL, NULL, -6.65584265, 106.86571419, NULL, '2025-06-02 17:19:48', '2025-06-02 17:19:48'),
(26, 2, 6, 'odp', 18, '1:2', '15:85', NULL, 'ODP-RT02-MASJID', 'ODP-RT02-MASJID', 8, 22.00, 'aktif', NULL, NULL, -6.65549098, 106.86309099, NULL, '2025-06-02 17:33:05', '2025-06-02 17:33:58'),
(27, 2, 7, 'odc', NULL, NULL, NULL, 'port_5', 'ODP-RT03-GAPURA SOTOKUNING', 'ODP-RT03-GAPURA SOTOKUNING', 8, 22.00, 'aktif', NULL, '-', -6.65485242, 106.86327091, NULL, '2025-06-03 04:10:51', '2025-06-03 04:10:51');

-- --------------------------------------------------------

--
-- Table structure for table `top_olts`
--

CREATE TABLE `top_olts` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_server_olt` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `merk_tipe_olt` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `jumlah_pon` int NOT NULL,
  `redaman_sfp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `status` enum('aktif','non_aktif','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `lokasi` text COLLATE utf8mb4_unicode_ci,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `keterangan` text COLLATE utf8mb4_unicode_ci,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `top_olts`
--

INSERT INTO `top_olts` (`id`, `nama_server_olt`, `merk_tipe_olt`, `jumlah_pon`, `redaman_sfp`, `status`, `lokasi`, `latitude`, `longitude`, `keterangan`, `created_at`, `updated_at`) VALUES
(1, 'OLT-Eglobaltech HSGQ', 'HSGQ E04R', 4, '{\"pon_1\":\"8\",\"pon_2\":\"8\",\"pon_3\":\"8\",\"pon_4\":\"8\"}', 'aktif', '888', -6.65517360, 106.86305570, 'http://localhost:8000/top-olts/1/edit', '2025-06-01 16:19:49', '2025-06-18 18:49:02'),
(2, 'OLT-Eglobaltech HIOSO', 'HIOSO HA-7302CS', 2, '[]', 'aktif', NULL, -6.65500611, 106.86332703, NULL, '2025-06-01 16:20:20', '2025-06-18 18:37:12');

-- --------------------------------------------------------

--
-- Table structure for table `uploaded_files`
--

CREATE TABLE `uploaded_files` (
  `id` bigint UNSIGNED NOT NULL,
  `user_id` bigint UNSIGNED NOT NULL,
  `original_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `file_path` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `file_size` bigint NOT NULL,
  `mime_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `public_token` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `uploaded_files`
--

INSERT INTO `uploaded_files` (`id`, `user_id`, `original_name`, `file_name`, `file_path`, `file_size`, `mime_type`, `public_token`, `created_at`, `updated_at`) VALUES
(1, 1, 'OKE invoices.sql', '1749664419_RyO8ZQ1SeI.sql', 'uploads/1749664419_RyO8ZQ1SeI.sql', 450937, 'text/html', 'OzE9D0UqXAjXZG5RSVZZvGzOf2YQterw', '2025-06-11 17:53:39', '2025-06-11 17:53:39');

-- --------------------------------------------------------

--
-- Table structure for table `users`
--

CREATE TABLE `users` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `username` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `no_telp` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `foto` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `role` enum('administrator','pelanggan','admin','teknisi','reseler') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pelanggan',
  `status` enum('aktif','nonaktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `email_verified_at` timestamp NULL DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `name`, `username`, `email`, `no_telp`, `foto`, `role`, `status`, `email_verified_at`, `password`, `remember_token`, `created_at`, `updated_at`) VALUES
(1, 'Administrator', 'admin', 'admin@admin.com', '081399909101', '1748795540_0a.jpg', 'administrator', 'aktif', NULL, '$2y$10$ktA5zRTY.ncB.83./5.Hd.cTO.aBE30u0OD3MglXa/mklXN7mJJ6i', 'DzwPiVkaWxgwA31kRVvwRHIrNkwqsyyS868WDcuGySZW3AbmewCCjIBp9xts', '2025-06-01 06:09:42', '2025-06-06 13:11:11'),
(2, 'Admin Kasir', 'kasir', 'kasir@admin.com', '081234567891', NULL, 'admin', 'aktif', NULL, '$2y$10$ktA5zRTY.ncB.83./5.Hd.cTO.aBE30u0OD3MglXa/mklXN7mJJ6i', NULL, '2025-06-01 06:09:42', '2025-06-01 06:09:42'),
(3, 'Teknisi', 'teknisi', 'teknisi@admin.com', '081234567892', NULL, 'teknisi', 'aktif', NULL, '$2y$10$MZUBNek5Z7o5CXvvmM0JXeo6lI8dBr57sUi6gEKfiCl4RIL3fUreG', NULL, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(4, 'Reseler', 'reseler', 'reseler@admin.com', '081234567893', NULL, 'reseler', 'aktif', NULL, '$2y$10$XQ1XXBSBfBJDWKxg91HaneidP2JYi3nbWsxdQIZdfoHQbf26WX8Q6', NULL, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(5, 'Pelanggan', 'pelanggan', 'pelanggan@admin.com', '081234567894', NULL, 'pelanggan', 'aktif', NULL, '$2y$10$XkmIgEPYheDe68zquDsPHO/jd0p.g8EPsfXyR06vEF8DfqF4Pwejy', NULL, '2025-06-01 06:09:43', '2025-06-01 06:09:43'),
(7, 'Eko Adrie', 'ekoadrie', 'ekoadrie@gmail.com', '081282834070', 'users/oL9jpRPp0BiIULXGLS6wSqHHnHEXiFuXfvO4Vy0q.png', 'administrator', 'aktif', NULL, '$2y$10$ktA5zRTY.ncB.83./5.Hd.cTO.aBE30u0OD3MglXa/mklXN7mJJ6i', NULL, '2025-06-06 03:36:20', '2025-06-06 03:36:20'),
(9, 'System Registration', 'system_registration', 'system@registrasi.com', NULL, NULL, 'admin', 'aktif', NULL, '$2y$10$nYr0FS7Ei1pkXlrZchZO0uYnHAuoMl.YwEMYug1cf0f/SfLVUt.wu', NULL, '2025-06-07 19:09:24', '2025-06-07 19:09:24');

-- --------------------------------------------------------

--
-- Table structure for table `vouchers`
--

CREATE TABLE `vouchers` (
  `id` bigint UNSIGNED NOT NULL,
  `code` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `type` enum('percentage','fixed') COLLATE utf8mb4_unicode_ci NOT NULL,
  `value` decimal(10,2) NOT NULL,
  `max_discount` decimal(10,2) DEFAULT NULL,
  `min_order` decimal(10,2) NOT NULL DEFAULT '0.00',
  `usage_limit` int DEFAULT NULL,
  `usage_limit_per_user` int NOT NULL DEFAULT '1',
  `used_count` int NOT NULL DEFAULT '0',
  `applicable_to` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `applicable_user_types` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `is_active` tinyint(1) NOT NULL DEFAULT '1',
  `is_public` tinyint(1) NOT NULL DEFAULT '1',
  `valid_from` datetime NOT NULL,
  `valid_until` datetime NOT NULL,
  `created_by` bigint UNSIGNED NOT NULL,
  `updated_by` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `vouchers`
--

INSERT INTO `vouchers` (`id`, `code`, `name`, `description`, `type`, `value`, `max_discount`, `min_order`, `usage_limit`, `usage_limit_per_user`, `used_count`, `applicable_to`, `applicable_user_types`, `is_active`, `is_public`, `valid_from`, `valid_until`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(1, 'WELCOME10', 'Diskon Selamat Datang', 'Diskon 10% untuk pelanggan baru', 'percentage', 10.00, 50000.00, 100000.00, 100, 1, 0, '[\"all\"]', '[\"new_customer\"]', 1, 1, '2025-06-09 00:05:47', '2025-07-09 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 17:05:47'),
(2, 'HEMAT25K', 'Hemat 25 Ribu', 'Potongan langsung Rp 25.000 untuk pembelian minimal Rp 200.000', 'fixed', 25000.00, NULL, 200000.00, 50, 2, 2, '[\"all\"]', '[\"all\"]', 1, 1, '2025-06-09 00:05:47', '2025-06-24 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 18:09:02'),
(3, 'RAMADAN2024', 'Diskon Ramadan', 'Diskon spesial 15% untuk bulan Ramadan', 'percentage', 15.00, 100000.00, 150000.00, NULL, 1, 0, '[\"all\"]', '[\"all\"]', 1, 1, '2025-06-09 00:05:47', '2025-08-08 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 17:05:47'),
(4, 'FLASH50', 'Flash Sale 50%', 'Diskon flash sale 50% terbatas!', 'percentage', 50.00, 200000.00, 300000.00, 10, 1, 0, '[\"all\"]', '[\"all\"]', 1, 1, '2025-06-09 00:05:47', '2025-06-10 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 17:05:47'),
(5, 'EXPIRED2023', 'Voucher Kadaluarsa', 'Voucher yang sudah kadaluarsa untuk testing', 'percentage', 20.00, 75000.00, 100000.00, 20, 1, 0, '[\"all\"]', '[\"all\"]', 1, 1, '2025-05-10 00:05:47', '2025-06-08 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 17:05:47'),
(6, 'FUTURE2024', 'Voucher Masa Depan', 'Voucher yang akan aktif minggu depan', 'fixed', 50000.00, NULL, 250000.00, 30, 1, 0, '[\"all\"]', '[\"all\"]', 1, 1, '2025-06-16 00:05:47', '2025-07-16 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 17:05:47'),
(7, 'INACTIVE10', 'Voucher Tidak Aktif', 'Voucher yang dinonaktifkan untuk testing', 'percentage', 10.00, 30000.00, 80000.00, 15, 1, 0, '[\"all\"]', '[\"all\"]', 0, 1, '2025-06-09 00:05:47', '2025-06-29 00:05:47', 1, NULL, '2025-06-08 17:05:47', '2025-06-08 17:05:47');

-- --------------------------------------------------------

--
-- Table structure for table `voucher_usages`
--

CREATE TABLE `voucher_usages` (
  `id` bigint UNSIGNED NOT NULL,
  `voucher_id` bigint UNSIGNED NOT NULL,
  `invoice_id` bigint UNSIGNED DEFAULT NULL,
  `customer_email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `customer_phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `order_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `order_amount` decimal(10,2) NOT NULL,
  `discount_amount` decimal(10,2) NOT NULL,
  `final_amount` decimal(10,2) NOT NULL,
  `status` enum('pending','used','cancelled') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending',
  `notes` text COLLATE utf8mb4_unicode_ci,
  `used_at` datetime NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `voucher_usages`
--

INSERT INTO `voucher_usages` (`id`, `voucher_id`, `invoice_id`, `customer_email`, `customer_phone`, `order_id`, `order_amount`, `discount_amount`, `final_amount`, `status`, `notes`, `used_at`, `created_at`, `updated_at`) VALUES
(1, 2, NULL, NULL, '081399909101', 'ORDER-20250609003052-0c25b0', 200000.00, 25000.00, 175000.00, 'used', NULL, '2025-06-09 00:30:52', '2025-06-08 17:30:52', '2025-06-08 17:30:52'),
(2, 2, NULL, NULL, '08111111111', 'INV-141', 200000.00, 25000.00, 175000.00, 'used', NULL, '2025-06-09 01:09:02', '2025-06-08 18:09:02', '2025-06-08 18:09:02');

-- --------------------------------------------------------

--
-- Table structure for table `website_themes`
--

CREATE TABLE `website_themes` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `display_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `description` text COLLATE utf8mb4_unicode_ci,
  `folder_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `colors` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `css_variables` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `custom_css` text COLLATE utf8mb4_unicode_ci,
  `settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `is_active` tinyint(1) NOT NULL DEFAULT '0',
  `is_default` tinyint(1) NOT NULL DEFAULT '0',
  `version` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1.0.0',
  `author` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `parent_theme_id` bigint UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `website_themes`
--

INSERT INTO `website_themes` (`id`, `name`, `display_name`, `description`, `folder_name`, `colors`, `css_variables`, `custom_css`, `settings`, `is_active`, `is_default`, `version`, `author`, `parent_theme_id`, `created_at`, `updated_at`) VALUES
(7, 'blue_professional', 'Blue Professional', 'Professional blue theme for ISP business', 'blue_professional', '{\"primary\":\"#2c5aa0\",\"secondary\":\"#1e3a8a\",\"accent\":\"#fbbf24\",\"text\":\"#1f2937\",\"background\":\"#ffffff\",\"border\":\"#e5e7eb\"}', '{\"--website-primary\":\"#2c5aa0\",\"--website-secondary\":\"#1e3a8a\",\"--website-accent\":\"#fbbf24\",\"--website-text\":\"#1f2937\",\"--website-bg\":\"#ffffff\",\"--website-border\":\"#e5e7eb\"}', NULL, NULL, 0, 1, '1.0.0', NULL, NULL, '2025-06-05 10:29:02', '2025-06-05 15:38:12'),
(8, 'green_nature', 'Green Nature', 'Fresh green theme for eco-friendly business', 'green_nature', '{\"primary\":\"#059669\",\"secondary\":\"#065f46\",\"accent\":\"#fbbf24\",\"text\":\"#1f2937\",\"background\":\"#ffffff\",\"border\":\"#e5e7eb\"}', '{\"--website-primary\":\"#059669\",\"--website-secondary\":\"#065f46\",\"--website-accent\":\"#fbbf24\",\"--website-text\":\"#1f2937\",\"--website-bg\":\"#ffffff\",\"--website-border\":\"#e5e7eb\"}', NULL, NULL, 0, 0, '1.0.0', NULL, NULL, '2025-06-05 10:29:02', '2025-06-23 14:07:54'),
(9, 'red_fire', 'Red Fire', 'Bold red theme for dynamic business', 'red_fire', '{\"primary\":\"#dc2626\",\"secondary\":\"#991b1b\",\"accent\":\"#fbbf24\",\"text\":\"#1f2937\",\"background\":\"#ffffff\",\"border\":\"#e5e7eb\"}', '{\"--website-primary\":\"#dc2626\",\"--website-secondary\":\"#991b1b\",\"--website-accent\":\"#fbbf24\",\"--website-text\":\"#1f2937\",\"--website-bg\":\"#ffffff\",\"--website-border\":\"#e5e7eb\"}', NULL, NULL, 1, 0, '1.0.0', NULL, NULL, '2025-06-05 10:29:02', '2025-06-23 14:07:54'),
(10, 'professional_gradient', 'Professional Gradient', 'Tema profesional dengan gradasi biru-ungu yang elegan, cocok untuk perusahaan teknologi modern', 'professional_gradient', '{\"primary\":\"#4f46e5\",\"secondary\":\"#7c3aed\",\"accent\":\"#06b6d4\",\"text\":\"#1e293b\",\"background\":\"#ffffff\",\"border\":\"#e2e8f0\"}', '{\"--website-primary\":\"#4f46e5\",\"--website-secondary\":\"#7c3aed\",\"--website-accent\":\"#06b6d4\",\"--website-text\":\"#1e293b\",\"--website-bg\":\"#ffffff\",\"--website-border\":\"#e2e8f0\",\"--website-gradient-start\":\"#4f46e5\",\"--website-gradient-end\":\"#7c3aed\",\"--website-card-shadow\":\"rgba(79, 70, 229, 0.1)\",\"--website-hover-transform\":\"translateY(-8px)\"}', '\r\n        /* Professional Gradient Theme - Enhanced Styling */\r\n        \r\n        .navbar {\r\n            backdrop-filter: blur(20px) saturate(180%);\r\n            border-bottom: 1px solid rgba(255,255,255,0.1);\r\n        }\r\n        \r\n        .navbar-brand {\r\n            font-weight: 800;\r\n            letter-spacing: -0.5px;\r\n        }\r\n        \r\n        .hero-section {\r\n            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 50%, #8b5cf6 100%);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n        \r\n        .hero-section::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            background: url(\"data:image/svg+xml,%3Csvg width=\'60\' height=\'60\' viewBox=\'0 0 60 60\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cg fill=\'none\' fill-rule=\'evenodd\'%3E%3Cg fill=\'%23ffffff\' fill-opacity=\'0.05\'%3E%3Ccircle cx=\'30\' cy=\'30\' r=\'2\'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\");\r\n            animation: float 20s ease-in-out infinite;\r\n        }\r\n        \r\n        @keyframes float {\r\n            0%, 100% { transform: translateY(0px); }\r\n            50% { transform: translateY(-20px); }\r\n        }\r\n        \r\n        .card {\r\n            border: 1px solid var(--website-border);\r\n            background: rgba(255,255,255,0.95);\r\n            backdrop-filter: blur(10px);\r\n            box-shadow: 0 10px 40px var(--website-card-shadow);\r\n            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n        }\r\n        \r\n        .card:hover {\r\n            transform: var(--website-hover-transform);\r\n            box-shadow: 0 25px 50px -12px var(--website-card-shadow);\r\n            border-color: var(--website-primary);\r\n        }\r\n        \r\n        .admin-icon {\r\n            background: linear-gradient(135deg, var(--website-primary), var(--website-secondary));\r\n            box-shadow: 0 8px 25px rgba(79, 70, 229, 0.3);\r\n            transition: all 0.3s ease;\r\n        }\r\n        \r\n        .admin-card:hover .admin-icon {\r\n            transform: scale(1.1) rotate(5deg);\r\n            box-shadow: 0 15px 35px rgba(79, 70, 229, 0.4);\r\n        }\r\n        \r\n        .btn-primary {\r\n            background: linear-gradient(135deg, var(--website-primary), var(--website-secondary));\r\n            border: none;\r\n            font-weight: 600;\r\n            padding: 12px 30px;\r\n            border-radius: 50px;\r\n            transition: all 0.3s ease;\r\n            box-shadow: 0 4px 15px rgba(79, 70, 229, 0.3);\r\n        }\r\n        \r\n        .btn-primary:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 8px 25px rgba(79, 70, 229, 0.4);\r\n            background: linear-gradient(135deg, var(--website-secondary), var(--website-primary));\r\n        }\r\n        \r\n        .btn-outline-light {\r\n            border: 2px solid rgba(255,255,255,0.3);\r\n            backdrop-filter: blur(10px);\r\n            transition: all 0.3s ease;\r\n        }\r\n        \r\n        .btn-outline-light:hover {\r\n            background: rgba(255,255,255,0.2);\r\n            border-color: rgba(255,255,255,0.5);\r\n            transform: translateY(-2px);\r\n        }\r\n        \r\n        .section-title h2 {\r\n            background: linear-gradient(135deg, var(--website-primary), var(--website-secondary));\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            font-weight: 800;\r\n        }\r\n        \r\n        .gallery-item {\r\n            border-radius: 20px;\r\n            overflow: hidden;\r\n            box-shadow: 0 10px 30px rgba(0,0,0,0.1);\r\n            transition: all 0.3s ease;\r\n        }\r\n        \r\n        .gallery-item:hover {\r\n            transform: translateY(-5px);\r\n            box-shadow: 0 20px 40px rgba(0,0,0,0.15);\r\n        }\r\n        \r\n        .footer {\r\n            background: linear-gradient(135deg, #1e293b 0%, #334155 100%);\r\n            position: relative;\r\n        }\r\n        \r\n        .footer::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 1px;\r\n            background: linear-gradient(90deg, transparent, var(--website-accent), transparent);\r\n        }\r\n        \r\n        /* Enhanced animations */\r\n        @media (prefers-reduced-motion: no-preference) {\r\n            .admin-card {\r\n                transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n            }\r\n            \r\n            .admin-card:hover {\r\n                transform: translateY(-8px) scale(1.02);\r\n            }\r\n        }\r\n        \r\n        /* Responsive enhancements */\r\n        @media (max-width: 768px) {\r\n            .hero-section {\r\n                padding: 100px 0 60px;\r\n            }\r\n            \r\n            .card {\r\n                margin-bottom: 1.5rem;\r\n            }\r\n            \r\n            .admin-icon {\r\n                width: 50px;\r\n                height: 50px;\r\n                font-size: 1.25rem;\r\n            }\r\n        }\r\n    ', '{\"layout\":\"modern\",\"animation_speed\":\"smooth\",\"card_style\":\"glassmorphism\",\"button_style\":\"rounded\",\"gradient_direction\":\"135deg\",\"shadow_intensity\":\"medium\"}', 0, 0, '1.0.0', 'PT. Anjeng Network Solutions', NULL, '2025-06-05 10:47:00', '2025-06-23 14:07:31');

-- --------------------------------------------------------

--
-- Table structure for table `whatsapp_gateways`
--

CREATE TABLE `whatsapp_gateways` (
  `id` bigint UNSIGNED NOT NULL,
  `nama_gateway` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `api_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `sender_number` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `base_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'https://wa.e-globaltechno.com',
  `endpoint` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '/send-message',
  `method` enum('POST','GET') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'POST',
  `timeout` int NOT NULL DEFAULT '30',
  `retry_attempts` int NOT NULL DEFAULT '3',
  `delay_between_messages` int NOT NULL DEFAULT '1',
  `status` enum('aktif','non_aktif','maintenance') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `is_default` tinyint(1) NOT NULL DEFAULT '0',
  `last_used_at` timestamp NULL DEFAULT NULL,
  `last_test_at` timestamp NULL DEFAULT NULL,
  `connection_status` enum('connected','disconnected','unknown') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'unknown',
  `total_sent` int NOT NULL DEFAULT '0',
  `total_failed` int NOT NULL DEFAULT '0',
  `total_today` int NOT NULL DEFAULT '0',
  `last_reset_date` date DEFAULT NULL,
  `webhook_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `notification_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
  `description` text COLLATE utf8mb4_unicode_ci,
  `notes` text COLLATE utf8mb4_unicode_ci,
  `created_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `updated_by` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ;

--
-- Dumping data for table `whatsapp_gateways`
--

INSERT INTO `whatsapp_gateways` (`id`, `nama_gateway`, `api_key`, `sender_number`, `base_url`, `endpoint`, `method`, `timeout`, `retry_attempts`, `delay_between_messages`, `status`, `is_default`, `last_used_at`, `last_test_at`, `connection_status`, `total_sent`, `total_failed`, `total_today`, `last_reset_date`, `webhook_settings`, `notification_settings`, `description`, `notes`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(1, 'WhatsApp Gateway Utama (Kirim Invoice)', 'pPq6bHQrx2r2AUobQpjmxtKuHJCowa', '628988409756', 'https://wa.e-globaltechno.com', '/send-message', 'POST', 30, 3, 1, 'aktif', 1, '2025-06-21 01:41:26', '2025-06-18 16:58:44', 'connected', 24, 0, 1, '2025-06-21', NULL, NULL, NULL, NULL, 'Administrator', NULL, '2025-06-04 16:25:15', '2025-06-21 01:41:26');

-- --------------------------------------------------------

--
-- Table structure for table `widgets`
--

CREATE TABLE `widgets` (
  `id` bigint UNSIGNED NOT NULL,
  `judul` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `konten` longtext COLLATE utf8mb4_unicode_ci,
  `posisi` enum('sidebar','footer','homepage') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'sidebar',
  `urutan` int NOT NULL DEFAULT '0',
  `status` enum('aktif','nonaktif') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'aktif',
  `tipe_widget` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data for table `widgets`
--

INSERT INTO `widgets` (`id`, `judul`, `konten`, `posisi`, `urutan`, `status`, `tipe_widget`, `created_at`, `updated_at`) VALUES
(2, 'Layanan 24/7', '<div class=\"text-center\"><i class=\"fas fa-headset fa-3x text-primary mb-3\"></i><h5>Customer Support</h5><p>Tim support kami siap membantu Anda 24 jam sehari, 7 hari seminggu.</p></div>', 'homepage', 2, 'nonaktif', 'custom', '2025-06-01 10:51:31', '2025-06-05 17:15:53'),
(3, 'Fitur Unggulan', '<div class=\"row\">\r\n    <div class=\"col-lg-4 col-md-6 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n        <div class=\"feature-card text-center p-4\">\r\n            <div class=\"feature-icon mb-3\">\r\n                <i class=\"fas fa-tachometer-alt fa-3x text-primary\"></i>\r\n            </div>\r\n            <h5>Kecepatan Tinggi</h5>\r\n            <p class=\"text-muted\">Nikmati kecepatan internet hingga 1 Gbps dengan teknologi fiber optic terbaru.</p>\r\n        </div>\r\n    </div>\r\n    <div class=\"col-lg-4 col-md-6 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n        <div class=\"feature-card text-center p-4\">\r\n            <div class=\"feature-icon mb-3\">\r\n                <i class=\"fas fa-shield-alt fa-3x text-primary\"></i>\r\n            </div>\r\n            <h5>Keamanan Terjamin</h5>\r\n            <p class=\"text-muted\">Sistem keamanan berlapis dengan firewall dan monitoring 24/7 untuk melindungi data Anda.</p>\r\n        </div>\r\n    </div>\r\n    <div class=\"col-lg-4 col-md-6 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"300\">\r\n        <div class=\"feature-card text-center p-4\">\r\n            <div class=\"feature-icon mb-3\">\r\n                <i class=\"fas fa-headset fa-3x text-primary\"></i>\r\n            </div>\r\n            <h5>Support 24/7</h5>\r\n            <p class=\"text-muted\">Tim support kami siap membantu Anda kapan saja melalui berbagai channel komunikasi.</p>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<style>\r\n.feature-card {\r\n    background: rgba(255, 255, 255, 0.1);\r\n    backdrop-filter: blur(10px);\r\n    border: 1px solid rgba(255, 255, 255, 0.2);\r\n    border-radius: 15px;\r\n    transition: all 0.3s ease;\r\n    height: 100%;\r\n}\r\n\r\n.feature-card:hover {\r\n    transform: translateY(-10px);\r\n    box-shadow: 0 20px 40px rgba(79, 70, 229, 0.2);\r\n    border-color: var(--website-primary, #4f46e5);\r\n}\r\n\r\n.feature-icon {\r\n    background: linear-gradient(135deg, var(--website-primary, #4f46e5), var(--website-secondary, #7c3aed));\r\n    -webkit-background-clip: text;\r\n    -webkit-text-fill-color: transparent;\r\n    background-clip: text;\r\n}\r\n\r\n.feature-card h5 {\r\n    color: var(--website-primary, #4f46e5);\r\n    font-weight: 600;\r\n    margin-bottom: 15px;\r\n}\r\n\r\n.feature-card p {\r\n    font-size: 14px;\r\n    line-height: 1.6;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n    .feature-card {\r\n        margin-bottom: 20px;\r\n    }\r\n}\r\n</style>', 'homepage', 3, 'aktif', 'features', '2025-06-05 17:13:19', '2025-06-05 17:13:19'),
(6, 'Bayar Tagihan Internet', '<div class=\"payment-search-section text-center py-5\">\r\n    <div class=\"container\">\r\n        <div class=\"row justify-content-center\">\r\n            <div class=\"col-lg-6\">\r\n                <div class=\"payment-search-card\">\r\n                    <div class=\"payment-icon mb-3\">\r\n                        <i class=\"fas fa-credit-card fa-4x text-primary\"></i>\r\n                    </div>\r\n                    <h3 class=\"mb-3\">Bayar Tagihan Internet</h3>\r\n                    <p class=\"text-muted mb-4\">Masukkan nomor layanan atau WhatsApp untuk mencari tagihan Anda</p>\r\n                    \r\n                    <!-- Form Pencarian -->\r\n                    <form id=\"homepageSearchForm\" class=\"mb-3\">\r\n                        <div class=\"input-group input-group-lg\">\r\n                            <input type=\"text\" class=\"form-control\" id=\"homepageSearchValue\" \r\n                                   placeholder=\"Nomor layanan atau WhatsApp\" required>\r\n                            <button type=\"submit\" class=\"btn btn-primary\">\r\n                                <i class=\"fas fa-search me-2\"></i>Cari Tagihan\r\n                            </button>\r\n                        </div>\r\n                        <small class=\"text-muted d-block mt-2\">Contoh: 12345 atau 081234567890</small>\r\n                    </form>\r\n                    \r\n                    <!-- Loading -->\r\n                    <div id=\"homepageLoading\" class=\"text-center py-3\" style=\"display: none;\">\r\n                        <div class=\"spinner-border text-primary\" role=\"status\">\r\n                            <span class=\"visually-hidden\">Loading...</span>\r\n                        </div>\r\n                        <p class=\"mt-2 text-muted\">Mencari tagihan...</p>\r\n                    </div>\r\n                    \r\n                    <!-- Error Message -->\r\n                    <div id=\"homepageError\" class=\"alert alert-danger mt-3\" style=\"display: none;\">\r\n                        <i class=\"fas fa-exclamation-triangle me-2\"></i>\r\n                        <span class=\"error-text\"></span>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<style>\r\n.payment-search-section {\r\n    background: linear-gradient(135deg, rgba(79, 70, 229, 0.1), rgba(124, 58, 237, 0.1));\r\n    border-radius: 20px;\r\n    margin: 2rem 0;\r\n}\r\n\r\n.payment-search-card {\r\n    background: rgba(255, 255, 255, 0.95);\r\n    backdrop-filter: blur(10px);\r\n    border: 1px solid rgba(255, 255, 255, 0.2);\r\n    border-radius: 20px;\r\n    padding: 2rem;\r\n    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\r\n    transition: transform 0.3s ease;\r\n}\r\n\r\n.payment-search-card:hover {\r\n    transform: translateY(-5px);\r\n}\r\n\r\n.payment-icon {\r\n    animation: float 3s ease-in-out infinite;\r\n}\r\n\r\n@keyframes float {\r\n    0% { transform: translateY(0px); }\r\n    50% { transform: translateY(-10px); }\r\n    100% { transform: translateY(0px); }\r\n}\r\n\r\n.input-group-lg .form-control {\r\n    border-radius: 10px 0 0 10px;\r\n    border: 2px solid #e2e8f0;\r\n    padding: 0.75rem 1rem;\r\n}\r\n\r\n.input-group-lg .btn {\r\n    border-radius: 0 10px 10px 0;\r\n    background: linear-gradient(135deg, #4f46e5, #7c3aed);\r\n    border: none;\r\n    font-weight: 600;\r\n    padding: 0.75rem 1.5rem;\r\n}\r\n\r\n.input-group-lg .btn:hover {\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 8px 20px rgba(79, 70, 229, 0.4);\r\n}\r\n\r\n.form-control:focus {\r\n    border-color: #4f46e5;\r\n    box-shadow: 0 0 0 0.2rem rgba(79, 70, 229, 0.25);\r\n}\r\n</style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n    const form = document.getElementById(\"homepageSearchForm\");\r\n    const loading = document.getElementById(\"homepageLoading\");\r\n    const error = document.getElementById(\"homepageError\");\r\n    \r\n    if (form) {\r\n        form.addEventListener(\"submit\", function(e) {\r\n            e.preventDefault();\r\n            \r\n            const searchValue = document.getElementById(\"homepageSearchValue\").value.trim();\r\n            \r\n            if (!searchValue) {\r\n                showError(\"Masukkan nomor layanan atau WhatsApp Anda\");\r\n                return;\r\n            }\r\n            \r\n            // Show loading\r\n            loading.style.display = \"block\";\r\n            error.style.display = \"none\";\r\n            \r\n            // Create form data\r\n            const formData = new FormData();\r\n            formData.append(\"search_value\", searchValue);\r\n            \r\n            // Add CSRF token\r\n            const csrfToken = document.querySelector(\"meta[name=csrf-token]\");\r\n            if (csrfToken) {\r\n                formData.append(\"_token\", csrfToken.getAttribute(\"content\"));\r\n            }\r\n            \r\n            // Search invoice\r\n            fetch(\"/payment/search-invoice\", {\r\n                method: \"POST\",\r\n                body: formData,\r\n                headers: {\r\n                    \"X-Requested-With\": \"XMLHttpRequest\"\r\n                }\r\n            })\r\n            .then(response => response.json())\r\n            .then(data => {\r\n                loading.style.display = \"none\";\r\n                \r\n                if (data.success) {\r\n                    // Redirect to payment page with search value\r\n                    window.location.href = \"/bayar-tagihan?search=\" + encodeURIComponent(searchValue);\r\n                } else {\r\n                    showError(data.message || \"Tagihan tidak ditemukan\");\r\n                }\r\n            })\r\n            .catch(error => {\r\n                loading.style.display = \"none\";\r\n                showError(\"Terjadi kesalahan saat mencari tagihan\");\r\n                console.error(\"Error:\", error);\r\n            });\r\n        });\r\n    }\r\n    \r\n    function showError(message) {\r\n        const errorDiv = document.getElementById(\"homepageError\");\r\n        const errorText = errorDiv.querySelector(\".error-text\");\r\n        if (errorText) {\r\n            errorText.textContent = message;\r\n            errorDiv.style.display = \"block\";\r\n        }\r\n    }\r\n});\r\n</script>', 'homepage', 1, 'aktif', 'link', '2025-06-05 18:01:59', '2025-06-05 18:01:59');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `absensis`
--
ALTER TABLE `absensis`
  ADD PRIMARY KEY (`id`),
  ADD KEY `absensis_approved_by_foreign` (`approved_by`),
  ADD KEY `absensis_karyawan_id_tanggal_index` (`karyawan_id`,`tanggal`),
  ADD KEY `absensis_tanggal_index` (`tanggal`),
  ADD KEY `absensis_status_index` (`status`);

--
-- Indexes for table `account_deletion_requests`
--
ALTER TABLE `account_deletion_requests`
  ADD PRIMARY KEY (`id`),
  ADD KEY `account_deletion_requests_processed_by_foreign` (`processed_by`),
  ADD KEY `account_deletion_requests_status_created_at_index` (`status`,`created_at`),
  ADD KEY `account_deletion_requests_email_index` (`email`),
  ADD KEY `account_deletion_requests_nomer_layanan_index` (`nomer_layanan`);

--
-- Indexes for table `akses_permissions`
--
ALTER TABLE `akses_permissions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `akses_permissions_unique` (`role`,`resource_id`,`resource_type`);

--
-- Indexes for table `assets`
--
ALTER TABLE `assets`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `assets_asset_code_unique` (`asset_code`),
  ADD KEY `assets_asset_category_id_foreign` (`asset_category_id`);

--
-- Indexes for table `asset_categories`
--
ALTER TABLE `asset_categories`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `asset_categories_code_unique` (`code`);

--
-- Indexes for table `auto_billing_logs`
--
ALTER TABLE `auto_billing_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `auto_billing_logs_created_at_index` (`created_at`),
  ADD KEY `auto_billing_logs_level_index` (`level`);

--
-- Indexes for table `auto_billing_settings`
--
ALTER TABLE `auto_billing_settings`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `auto_isolir_logs`
--
ALTER TABLE `auto_isolir_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `auto_isolir_logs_user_id_foreign` (`user_id`),
  ADD KEY `auto_isolir_logs_execution_type_created_at_index` (`execution_type`,`created_at`),
  ADD KEY `auto_isolir_logs_status_index` (`status`),
  ADD KEY `auto_isolir_logs_started_at_index` (`started_at`);

--
-- Indexes for table `banks`
--
ALTER TABLE `banks`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `broadcast_messages`
--
ALTER TABLE `broadcast_messages`
  ADD PRIMARY KEY (`id`),
  ADD KEY `broadcast_messages_whatsapp_gateway_id_foreign` (`whatsapp_gateway_id`),
  ADD KEY `broadcast_messages_status_index` (`status`),
  ADD KEY `broadcast_messages_send_method_index` (`send_method`),
  ADD KEY `broadcast_messages_created_by_index` (`created_by`),
  ADD KEY `broadcast_messages_scheduled_at_index` (`scheduled_at`);

--
-- Indexes for table `coverage_areas`
--
ALTER TABLE `coverage_areas`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `coverage_areas_code_unique` (`code`),
  ADD KEY `coverage_areas_latitude_longitude_index` (`latitude`,`longitude`),
  ADD KEY `coverage_areas_status_index` (`status`),
  ADD KEY `coverage_areas_network_type_index` (`network_type`),
  ADD KEY `coverage_areas_coverage_quality_index` (`coverage_quality`);

--
-- Indexes for table `customerakun`
--
ALTER TABLE `customerakun`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `customerakun_email_unique` (`email`);

--
-- Indexes for table `failed_jobs`
--
ALTER TABLE `failed_jobs`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `failed_jobs_uuid_unique` (`uuid`);

--
-- Indexes for table `galeri`
--
ALTER TABLE `galeri`
  ADD PRIMARY KEY (`id`),
  ADD KEY `galeri_status_urutan_index` (`status`,`urutan`),
  ADD KEY `galeri_kategori_id_index` (`kategori_id`);

--
-- Indexes for table `halamen`
--
ALTER TABLE `halamen`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `halamen_slug_unique` (`slug`),
  ADD KEY `halamen_created_by_foreign` (`created_by`),
  ADD KEY `halamen_updated_by_foreign` (`updated_by`),
  ADD KEY `halamen_status_show_in_menu_index` (`status`,`show_in_menu`),
  ADD KEY `halamen_kategori_id_index` (`kategori_id`);

--
-- Indexes for table `homepages`
--
ALTER TABLE `homepages`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `iklan`
--
ALTER TABLE `iklan`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `iklan_link_unique` (`link`),
  ADD UNIQUE KEY `iklan_slug_unique` (`slug`);

--
-- Indexes for table `invoices`
--
ALTER TABLE `invoices`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `invoices_nomor_invoice_unique` (`nomor_invoice`),
  ADD KEY `invoices_template_invoice_id_foreign` (`template_invoice_id`),
  ADD KEY `invoices_created_by_foreign` (`created_by`),
  ADD KEY `invoices_updated_by_foreign` (`updated_by`),
  ADD KEY `invoices_pelanggan_id_status_index` (`pelanggan_id`,`status`),
  ADD KEY `invoices_tanggal_jatuh_tempo_status_index` (`tanggal_jatuh_tempo`,`status`),
  ADD KEY `invoices_tanggal_invoice_index` (`tanggal_invoice`),
  ADD KEY `invoices_payment_id_foreign` (`payment_id`),
  ADD KEY `idx_pelanggan_status` (`pelanggan_id`,`status_pembayaran`),
  ADD KEY `idx_jatuh_tempo_status` (`tanggal_jatuh_tempo`,`status_pembayaran`),
  ADD KEY `invoices_status_tanggal_bayar_index` (`status`,`tanggal_bayar`),
  ADD KEY `invoices_metode_pembayaran_temp_index` (`metode_pembayaran_temp`);

--
-- Indexes for table `invoice_reminder_settings`
--
ALTER TABLE `invoice_reminder_settings`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `jobs`
--
ALTER TABLE `jobs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `jobs_queue_index` (`queue`);

--
-- Indexes for table `karyawans`
--
ALTER TABLE `karyawans`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `karyawans_nip_unique` (`nip`),
  ADD KEY `karyawans_user_id_foreign` (`user_id`),
  ADD KEY `karyawans_atasan_langsung_id_index` (`atasan_langsung_id`),
  ADD KEY `karyawans_head_leader_id_index` (`head_leader_id`),
  ADD KEY `karyawans_status_index` (`status`),
  ADD KEY `karyawans_departemen_index` (`departemen`),
  ADD KEY `karyawans_is_customer_service_index` (`is_customer_service`);

--
-- Indexes for table `kategoris`
--
ALTER TABLE `kategoris`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `kategoris_slug_unique` (`slug`),
  ADD KEY `kategoris_parent_id_foreign` (`parent_id`),
  ADD KEY `kategoris_aktif_urutan_index` (`aktif`,`urutan`),
  ADD KEY `kategoris_jenis_aktif_index` (`jenis`,`aktif`);

--
-- Indexes for table `kategori_keuangans`
--
ALTER TABLE `kategori_keuangans`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `kategori_keuangans_kode_kategori_unique` (`kode_kategori`),
  ADD KEY `kategori_keuangans_created_by_foreign` (`created_by`),
  ADD KEY `kategori_keuangans_updated_by_foreign` (`updated_by`),
  ADD KEY `kategori_keuangans_tipe_status_index` (`tipe`,`status`),
  ADD KEY `kategori_keuangans_parent_id_index` (`parent_id`);

--
-- Indexes for table `layanan_hotspots`
--
ALTER TABLE `layanan_hotspots`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `layanan_hotspots_kode_paket_unique` (`kode_paket`),
  ADD KEY `layanan_hotspots_status_tipe_billing_index` (`status`,`tipe_billing`),
  ADD KEY `layanan_hotspots_harga_bulanan_status_index` (`harga_bulanan`,`status`),
  ADD KEY `layanan_hotspots_urutan_index` (`urutan`);

--
-- Indexes for table `layanan_jasa`
--
ALTER TABLE `layanan_jasa`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `layanan_jasa_kode_layanan_unique` (`kode_layanan`),
  ADD UNIQUE KEY `layanan_jasa_slug_unique` (`slug`),
  ADD KEY `layanan_jasa_status_index` (`status`),
  ADD KEY `layanan_jasa_kategori_index` (`kategori`),
  ADD KEY `layanan_jasa_tipe_layanan_index` (`tipe_layanan`),
  ADD KEY `layanan_jasa_is_featured_index` (`is_featured`),
  ADD KEY `layanan_jasa_tersedia_index` (`tersedia`),
  ADD KEY `layanan_jasa_rating_rata_index` (`rating_rata`),
  ADD KEY `layanan_jasa_harga_dasar_index` (`harga_dasar`),
  ADD KEY `layanan_jasa_created_at_index` (`created_at`);

--
-- Indexes for table `layanan_pppoes`
--
ALTER TABLE `layanan_pppoes`
  ADD PRIMARY KEY (`id`),
  ADD KEY `layanan_pppoes_mikrotik_id_pppoe_profile_index` (`mikrotik_id`,`pppoe_profile`),
  ADD KEY `layanan_pppoes_status_index` (`status`),
  ADD KEY `layanan_pppoes_tampil_register_index` (`tampil_register`),
  ADD KEY `layanan_pppoes_urutan_index` (`urutan`);

--
-- Indexes for table `menus`
--
ALTER TABLE `menus`
  ADD PRIMARY KEY (`id`),
  ADD KEY `menus_parent_id_foreign` (`parent_id`),
  ADD KEY `menus_posisi_status_urutan_index` (`posisi`,`status`,`urutan`);

--
-- Indexes for table `migrations`
--
ALTER TABLE `migrations`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `mikrotiks`
--
ALTER TABLE `mikrotiks`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `mikrotik_logs`
--
ALTER TABLE `mikrotik_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `mikrotik_logs_mikrotik_id_created_at_index` (`mikrotik_id`,`created_at`),
  ADD KEY `mikrotik_logs_action_created_at_index` (`action`,`created_at`),
  ADD KEY `mikrotik_logs_success_created_at_index` (`success`,`created_at`);

--
-- Indexes for table `model_has_permissions`
--
ALTER TABLE `model_has_permissions`
  ADD PRIMARY KEY (`permission_id`,`model_id`,`model_type`),
  ADD KEY `model_has_permissions_model_id_model_type_index` (`model_id`,`model_type`);

--
-- Indexes for table `model_has_roles`
--
ALTER TABLE `model_has_roles`
  ADD PRIMARY KEY (`role_id`,`model_id`,`model_type`),
  ADD KEY `model_has_roles_model_id_model_type_index` (`model_id`,`model_type`);

--
-- Indexes for table `password_resets`
--
ALTER TABLE `password_resets`
  ADD KEY `password_resets_email_index` (`email`);

--
-- Indexes for table `payments`
--
ALTER TABLE `payments`
  ADD PRIMARY KEY (`id`),
  ADD KEY `payments_invoice_id_foreign` (`invoice_id`),
  ADD KEY `payments_payment_gateway_status_index` (`payment_gateway`,`status`),
  ADD KEY `payments_gateway_transaction_id_index` (`gateway_transaction_id`),
  ADD KEY `payments_status_created_at_index` (`status`,`created_at`),
  ADD KEY `payments_expired_at_index` (`expired_at`);

--
-- Indexes for table `payment_gateway_logs`
--
ALTER TABLE `payment_gateway_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `payment_gateway_logs_gateway_created_at_index` (`gateway`,`created_at`),
  ADD KEY `payment_gateway_logs_status_created_at_index` (`status`,`created_at`),
  ADD KEY `payment_gateway_logs_type_gateway_index` (`type`,`gateway`),
  ADD KEY `payment_gateway_logs_transaction_id_index` (`transaction_id`),
  ADD KEY `payment_gateway_logs_invoice_id_index` (`invoice_id`);

--
-- Indexes for table `payment_gateway_settings`
--
ALTER TABLE `payment_gateway_settings`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `payment_gateway_settings_gateway_unique` (`gateway`),
  ADD KEY `payment_gateway_settings_gateway_is_active_index` (`gateway`,`is_active`);

--
-- Indexes for table `pelanggan`
--
ALTER TABLE `pelanggan`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `pelanggan_nomer_layanan_unique` (`nomer_layanan`),
  ADD KEY `pelanggan_coverage_area_id_foreign` (`coverage_area_id`),
  ADD KEY `pelanggan_top_odp_id_foreign` (`top_odp_id`),
  ADD KEY `pelanggan_mikrotik_id_foreign` (`mikrotik_id`),
  ADD KEY `pelanggan_didaftarkan_oleh_foreign` (`didaftarkan_oleh`),
  ADD KEY `pelanggan_nomer_layanan_index` (`nomer_layanan`),
  ADD KEY `pelanggan_status_index` (`status`),
  ADD KEY `pelanggan_mode_pelanggan_index` (`mode_pelanggan`),
  ADD KEY `pelanggan_tanggal_daftar_index` (`tanggal_daftar`),
  ADD KEY `pelanggan_layanan_type_layanan_id_index` (`layanan_type`,`layanan_id`);

--
-- Indexes for table `pembelians`
--
ALTER TABLE `pembelians`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `pembelians_nomor_transaksi_unique` (`nomor_transaksi`),
  ADD KEY `pembelians_template_invoice_id_foreign` (`template_invoice_id`),
  ADD KEY `pembelians_created_by_foreign` (`created_by`),
  ADD KEY `pembelians_tanggal_pembelian_status_pembayaran_index` (`tanggal_pembelian`,`status_pembayaran`),
  ADD KEY `pembelians_tipe_transaksi_status_pembayaran_index` (`tipe_transaksi`,`status_pembayaran`),
  ADD KEY `pembelians_pelanggan_id_status_pembayaran_index` (`pelanggan_id`,`status_pembayaran`);

--
-- Indexes for table `pembelian_items`
--
ALTER TABLE `pembelian_items`
  ADD PRIMARY KEY (`id`),
  ADD KEY `pembelian_items_pembelian_id_item_type_index` (`pembelian_id`,`item_type`),
  ADD KEY `pembelian_items_item_type_item_id_index` (`item_type`,`item_id`);

--
-- Indexes for table `pendapatans`
--
ALTER TABLE `pendapatans`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `pendapatans_kode_transaksi_unique` (`kode_transaksi`),
  ADD KEY `pendapatans_pembelian_id_foreign` (`pembelian_id`),
  ADD KEY `pendapatans_created_by_foreign` (`created_by`),
  ADD KEY `pendapatans_updated_by_foreign` (`updated_by`),
  ADD KEY `pendapatans_tanggal_transaksi_status_index` (`tanggal_transaksi`,`status`),
  ADD KEY `pendapatans_kategori_id_index` (`kategori_id`),
  ADD KEY `pendapatans_pelanggan_id_index` (`pelanggan_id`),
  ADD KEY `pendapatans_status_index` (`status`);

--
-- Indexes for table `pengeluarans`
--
ALTER TABLE `pengeluarans`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `pengeluarans_kode_transaksi_unique` (`kode_transaksi`),
  ADD KEY `pengeluarans_disetujui_oleh_foreign` (`disetujui_oleh`),
  ADD KEY `pengeluarans_created_by_foreign` (`created_by`),
  ADD KEY `pengeluarans_updated_by_foreign` (`updated_by`),
  ADD KEY `pengeluarans_tanggal_transaksi_status_index` (`tanggal_transaksi`,`status`),
  ADD KEY `pengeluarans_kategori_id_index` (`kategori_id`),
  ADD KEY `pengeluarans_status_index` (`status`),
  ADD KEY `pengeluarans_tanggal_jatuh_tempo_index` (`tanggal_jatuh_tempo`);

--
-- Indexes for table `permissions`
--
ALTER TABLE `permissions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `permissions_name_guard_name_unique` (`name`,`guard_name`);

--
-- Indexes for table `personal_access_tokens`
--
ALTER TABLE `personal_access_tokens`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `personal_access_tokens_token_unique` (`token`),
  ADD KEY `personal_access_tokens_tokenable_type_tokenable_id_index` (`tokenable_type`,`tokenable_id`);

--
-- Indexes for table `perusahaan`
--
ALTER TABLE `perusahaan`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `pesan_template`
--
ALTER TABLE `pesan_template`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `pesan_template_slug_unique` (`slug`);

--
-- Indexes for table `produks`
--
ALTER TABLE `produks`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `produks_kode_produk_unique` (`kode_produk`),
  ADD KEY `produks_kategori_status_index` (`kategori`,`status`),
  ADD KEY `produks_nama_produk_status_index` (`nama_produk`,`status`);

--
-- Indexes for table `roles`
--
ALTER TABLE `roles`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `roles_name_guard_name_unique` (`name`,`guard_name`);

--
-- Indexes for table `role_has_permissions`
--
ALTER TABLE `role_has_permissions`
  ADD PRIMARY KEY (`permission_id`,`role_id`),
  ADD KEY `role_has_permissions_role_id_foreign` (`role_id`);

--
-- Indexes for table `role_permissions`
--
ALTER TABLE `role_permissions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `role_permissions_role_permission_id_unique` (`role`,`permission_id`),
  ADD KEY `role_permissions_permission_id_foreign` (`permission_id`);

--
-- Indexes for table `sidebar_menus`
--
ALTER TABLE `sidebar_menus`
  ADD PRIMARY KEY (`id`),
  ADD KEY `sidebar_menus_parent_id_index` (`parent_id`),
  ADD KEY `sidebar_menus_order_index` (`order`),
  ADD KEY `sidebar_menus_is_active_index` (`is_active`);

--
-- Indexes for table `sla_records`
--
ALTER TABLE `sla_records`
  ADD PRIMARY KEY (`id`),
  ADD KEY `sla_records_created_by_foreign` (`created_by`),
  ADD KEY `sla_records_updated_by_foreign` (`updated_by`),
  ADD KEY `sla_records_jenis_error_status_index` (`jenis_error`,`status`),
  ADD KEY `sla_records_waktu_mulai_error_waktu_selesai_error_index` (`waktu_mulai_error`,`waktu_selesai_error`),
  ADD KEY `sla_records_tingkat_dampak_index` (`tingkat_dampak`),
  ADD KEY `sla_records_created_at_index` (`created_at`);

--
-- Indexes for table `syslogs`
--
ALTER TABLE `syslogs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `syslogs_level_created_at_index` (`level`,`created_at`),
  ADD KEY `syslogs_category_created_at_index` (`category`,`created_at`),
  ADD KEY `syslogs_user_id_created_at_index` (`user_id`,`created_at`),
  ADD KEY `syslogs_created_at_index` (`created_at`),
  ADD KEY `syslogs_level_index` (`level`),
  ADD KEY `syslogs_category_index` (`category`),
  ADD KEY `syslogs_action_index` (`action`),
  ADD KEY `syslogs_user_id_index` (`user_id`),
  ADD KEY `syslogs_ip_address_index` (`ip_address`),
  ADD KEY `syslogs_status_code_index` (`status_code`);

--
-- Indexes for table `system_logs`
--
ALTER TABLE `system_logs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `system_logs_log_type_created_at_index` (`log_type`,`created_at`),
  ADD KEY `system_logs_status_created_at_index` (`status`,`created_at`),
  ADD KEY `system_logs_executed_by_index` (`executed_by`);

--
-- Indexes for table `system_log_details`
--
ALTER TABLE `system_log_details`
  ADD PRIMARY KEY (`id`),
  ADD KEY `system_log_details_system_log_id_status_index` (`system_log_id`,`status`),
  ADD KEY `system_log_details_item_type_item_id_index` (`item_type`,`item_id`),
  ADD KEY `system_log_details_status_index` (`status`);

--
-- Indexes for table `template_invoices`
--
ALTER TABLE `template_invoices`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `template_invoices_slug_unique` (`slug`);

--
-- Indexes for table `tentang_kamis`
--
ALTER TABLE `tentang_kamis`
  ADD PRIMARY KEY (`id`),
  ADD KEY `tentang_kamis_status_index` (`status`);

--
-- Indexes for table `themes`
--
ALTER TABLE `themes`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `tickets`
--
ALTER TABLE `tickets`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `tickets_no_ticket_unique` (`no_ticket`),
  ADD KEY `tickets_pelanggan_id_foreign` (`pelanggan_id`),
  ADD KEY `tickets_teknisi_id_foreign` (`teknisi_id`),
  ADD KEY `tickets_created_by_foreign` (`created_by`),
  ADD KEY `tickets_status_created_at_index` (`status`,`created_at`),
  ADD KEY `tickets_no_ticket_index` (`no_ticket`);

--
-- Indexes for table `ticket_replies`
--
ALTER TABLE `ticket_replies`
  ADD PRIMARY KEY (`id`),
  ADD KEY `ticket_replies_ticket_id_created_at_index` (`ticket_id`,`created_at`),
  ADD KEY `ticket_replies_user_id_created_at_index` (`user_id`,`created_at`),
  ADD KEY `ticket_replies_is_internal_index` (`is_internal`);

--
-- Indexes for table `top_odcs`
--
ALTER TABLE `top_odcs`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `top_odcs_kode_odc_unique` (`kode_odc`),
  ADD KEY `top_odcs_top_olt_id_pon_olt_index` (`top_olt_id`,`pon_olt`),
  ADD KEY `top_odcs_status_index` (`status`);

--
-- Indexes for table `top_odps`
--
ALTER TABLE `top_odps`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `top_odps_kode_odp_unique` (`kode_odp`),
  ADD KEY `top_odps_top_odc_id_odc_port_index` (`top_odc_id`,`odc_port`),
  ADD KEY `top_odps_status_index` (`status`),
  ADD KEY `top_odps_coverage_area_id_foreign` (`coverage_area_id`),
  ADD KEY `top_odps_parent_odp_id_foreign` (`parent_odp_id`);

--
-- Indexes for table `top_olts`
--
ALTER TABLE `top_olts`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `uploaded_files`
--
ALTER TABLE `uploaded_files`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `uploaded_files_public_token_unique` (`public_token`),
  ADD KEY `uploaded_files_user_id_created_at_index` (`user_id`,`created_at`),
  ADD KEY `uploaded_files_public_token_index` (`public_token`);

--
-- Indexes for table `users`
--
ALTER TABLE `users`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `users_email_unique` (`email`),
  ADD UNIQUE KEY `users_username_unique` (`username`);

--
-- Indexes for table `vouchers`
--
ALTER TABLE `vouchers`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `vouchers_code_unique` (`code`),
  ADD KEY `vouchers_code_index` (`code`),
  ADD KEY `vouchers_is_active_index` (`is_active`),
  ADD KEY `vouchers_valid_from_index` (`valid_from`),
  ADD KEY `vouchers_valid_until_index` (`valid_until`),
  ADD KEY `vouchers_created_by_index` (`created_by`),
  ADD KEY `vouchers_updated_by_foreign` (`updated_by`);

--
-- Indexes for table `voucher_usages`
--
ALTER TABLE `voucher_usages`
  ADD PRIMARY KEY (`id`),
  ADD KEY `voucher_usages_voucher_id_index` (`voucher_id`),
  ADD KEY `voucher_usages_invoice_id_index` (`invoice_id`),
  ADD KEY `voucher_usages_customer_email_index` (`customer_email`),
  ADD KEY `voucher_usages_customer_phone_index` (`customer_phone`),
  ADD KEY `voucher_usages_order_id_index` (`order_id`),
  ADD KEY `voucher_usages_status_index` (`status`),
  ADD KEY `voucher_usages_used_at_index` (`used_at`);

--
-- Indexes for table `website_themes`
--
ALTER TABLE `website_themes`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `website_themes_name_unique` (`name`),
  ADD UNIQUE KEY `website_themes_folder_name_unique` (`folder_name`),
  ADD KEY `website_themes_parent_theme_id_foreign` (`parent_theme_id`),
  ADD KEY `website_themes_is_active_is_default_index` (`is_active`,`is_default`);

--
-- Indexes for table `whatsapp_gateways`
--
ALTER TABLE `whatsapp_gateways`
  ADD PRIMARY KEY (`id`),
  ADD KEY `whatsapp_gateways_status_is_default_index` (`status`,`is_default`),
  ADD KEY `whatsapp_gateways_sender_number_index` (`sender_number`),
  ADD KEY `whatsapp_gateways_last_used_at_index` (`last_used_at`);

--
-- Indexes for table `widgets`
--
ALTER TABLE `widgets`
  ADD PRIMARY KEY (`id`),
  ADD KEY `widgets_posisi_status_urutan_index` (`posisi`,`status`,`urutan`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `absensis`
--
ALTER TABLE `absensis`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT for table `account_deletion_requests`
--
ALTER TABLE `account_deletion_requests`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `akses_permissions`
--
ALTER TABLE `akses_permissions`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `assets`
--
ALTER TABLE `assets`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- AUTO_INCREMENT for table `asset_categories`
--
ALTER TABLE `asset_categories`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT for table `auto_billing_logs`
--
ALTER TABLE `auto_billing_logs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `auto_billing_settings`
--
ALTER TABLE `auto_billing_settings`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `auto_isolir_logs`
--
ALTER TABLE `auto_isolir_logs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `banks`
--
ALTER TABLE `banks`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT for table `broadcast_messages`
--
ALTER TABLE `broadcast_messages`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `coverage_areas`
--
ALTER TABLE `coverage_areas`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `customerakun`
--
ALTER TABLE `customerakun`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT for table `failed_jobs`
--
ALTER TABLE `failed_jobs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `galeri`
--
ALTER TABLE `galeri`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `halamen`
--
ALTER TABLE `halamen`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT for table `homepages`
--
ALTER TABLE `homepages`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `iklan`
--
ALTER TABLE `iklan`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT for table `invoices`
--
ALTER TABLE `invoices`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `invoice_reminder_settings`
--
ALTER TABLE `invoice_reminder_settings`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `jobs`
--
ALTER TABLE `jobs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `karyawans`
--
ALTER TABLE `karyawans`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `kategoris`
--
ALTER TABLE `kategoris`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;

--
-- AUTO_INCREMENT for table `kategori_keuangans`
--
ALTER TABLE `kategori_keuangans`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--
-- AUTO_INCREMENT for table `layanan_hotspots`
--
ALTER TABLE `layanan_hotspots`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `layanan_jasa`
--
ALTER TABLE `layanan_jasa`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `layanan_pppoes`
--
ALTER TABLE `layanan_pppoes`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `menus`
--
ALTER TABLE `menus`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT for table `migrations`
--
ALTER TABLE `migrations`
  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=133;

--
-- AUTO_INCREMENT for table `mikrotiks`
--
ALTER TABLE `mikrotiks`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `mikrotik_logs`
--
ALTER TABLE `mikrotik_logs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `payments`
--
ALTER TABLE `payments`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `payment_gateway_logs`
--
ALTER TABLE `payment_gateway_logs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `payment_gateway_settings`
--
ALTER TABLE `payment_gateway_settings`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `pelanggan`
--
ALTER TABLE `pelanggan`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=269;

--
-- AUTO_INCREMENT for table `pembelians`
--
ALTER TABLE `pembelians`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `pembelian_items`
--
ALTER TABLE `pembelian_items`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `pendapatans`
--
ALTER TABLE `pendapatans`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `pengeluarans`
--
ALTER TABLE `pengeluarans`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `permissions`
--
ALTER TABLE `permissions`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=56;

--
-- AUTO_INCREMENT for table `personal_access_tokens`
--
ALTER TABLE `personal_access_tokens`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT for table `perusahaan`
--
ALTER TABLE `perusahaan`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `pesan_template`
--
ALTER TABLE `pesan_template`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--
-- AUTO_INCREMENT for table `produks`
--
ALTER TABLE `produks`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26;

--
-- AUTO_INCREMENT for table `roles`
--
ALTER TABLE `roles`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT for table `role_permissions`
--
ALTER TABLE `role_permissions`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `sidebar_menus`
--
ALTER TABLE `sidebar_menus`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `sla_records`
--
ALTER TABLE `sla_records`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31;

--
-- AUTO_INCREMENT for table `syslogs`
--
ALTER TABLE `syslogs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `system_logs`
--
ALTER TABLE `system_logs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `system_log_details`
--
ALTER TABLE `system_log_details`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `template_invoices`
--
ALTER TABLE `template_invoices`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `tentang_kamis`
--
ALTER TABLE `tentang_kamis`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `themes`
--
ALTER TABLE `themes`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `tickets`
--
ALTER TABLE `tickets`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=57;

--
-- AUTO_INCREMENT for table `ticket_replies`
--
ALTER TABLE `ticket_replies`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `top_odcs`
--
ALTER TABLE `top_odcs`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `top_odps`
--
ALTER TABLE `top_odps`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=28;

--
-- AUTO_INCREMENT for table `top_olts`
--
ALTER TABLE `top_olts`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `uploaded_files`
--
ALTER TABLE `uploaded_files`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `users`
--
ALTER TABLE `users`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT for table `vouchers`
--
ALTER TABLE `vouchers`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `voucher_usages`
--
ALTER TABLE `voucher_usages`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `website_themes`
--
ALTER TABLE `website_themes`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `whatsapp_gateways`
--
ALTER TABLE `whatsapp_gateways`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `widgets`
--
ALTER TABLE `widgets`
  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `absensis`
--
ALTER TABLE `absensis`
  ADD CONSTRAINT `absensis_approved_by_foreign` FOREIGN KEY (`approved_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `absensis_karyawan_id_foreign` FOREIGN KEY (`karyawan_id`) REFERENCES `karyawans` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `account_deletion_requests`
--
ALTER TABLE `account_deletion_requests`
  ADD CONSTRAINT `account_deletion_requests_processed_by_foreign` FOREIGN KEY (`processed_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `assets`
--
ALTER TABLE `assets`
  ADD CONSTRAINT `assets_asset_category_id_foreign` FOREIGN KEY (`asset_category_id`) REFERENCES `asset_categories` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `auto_isolir_logs`
--
ALTER TABLE `auto_isolir_logs`
  ADD CONSTRAINT `auto_isolir_logs_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `broadcast_messages`
--
ALTER TABLE `broadcast_messages`
  ADD CONSTRAINT `broadcast_messages_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `broadcast_messages_whatsapp_gateway_id_foreign` FOREIGN KEY (`whatsapp_gateway_id`) REFERENCES `whatsapp_gateways` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `galeri`
--
ALTER TABLE `galeri`
  ADD CONSTRAINT `galeri_kategori_id_foreign` FOREIGN KEY (`kategori_id`) REFERENCES `kategoris` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `halamen`
--
ALTER TABLE `halamen`
  ADD CONSTRAINT `halamen_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `halamen_kategori_id_foreign` FOREIGN KEY (`kategori_id`) REFERENCES `kategoris` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `halamen_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `invoices`
--
ALTER TABLE `invoices`
  ADD CONSTRAINT `invoices_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `invoices_payment_id_foreign` FOREIGN KEY (`payment_id`) REFERENCES `payments` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `invoices_pelanggan_id_foreign` FOREIGN KEY (`pelanggan_id`) REFERENCES `pelanggan` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `invoices_template_invoice_id_foreign` FOREIGN KEY (`template_invoice_id`) REFERENCES `template_invoices` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `invoices_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `karyawans`
--
ALTER TABLE `karyawans`
  ADD CONSTRAINT `karyawans_atasan_langsung_id_foreign` FOREIGN KEY (`atasan_langsung_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `karyawans_head_leader_id_foreign` FOREIGN KEY (`head_leader_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `karyawans_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `kategoris`
--
ALTER TABLE `kategoris`
  ADD CONSTRAINT `kategoris_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `kategoris` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `kategori_keuangans`
--
ALTER TABLE `kategori_keuangans`
  ADD CONSTRAINT `kategori_keuangans_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `kategori_keuangans_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `kategori_keuangans` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `kategori_keuangans_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `layanan_pppoes`
--
ALTER TABLE `layanan_pppoes`
  ADD CONSTRAINT `layanan_pppoes_mikrotik_id_foreign` FOREIGN KEY (`mikrotik_id`) REFERENCES `mikrotiks` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `menus`
--
ALTER TABLE `menus`
  ADD CONSTRAINT `menus_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `menus` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `mikrotik_logs`
--
ALTER TABLE `mikrotik_logs`
  ADD CONSTRAINT `mikrotik_logs_mikrotik_id_foreign` FOREIGN KEY (`mikrotik_id`) REFERENCES `mikrotiks` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `model_has_permissions`
--
ALTER TABLE `model_has_permissions`
  ADD CONSTRAINT `model_has_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `model_has_roles`
--
ALTER TABLE `model_has_roles`
  ADD CONSTRAINT `model_has_roles_role_id_foreign` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `payments`
--
ALTER TABLE `payments`
  ADD CONSTRAINT `payments_invoice_id_foreign` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `pelanggan`
--
ALTER TABLE `pelanggan`
  ADD CONSTRAINT `pelanggan_coverage_area_id_foreign` FOREIGN KEY (`coverage_area_id`) REFERENCES `coverage_areas` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pelanggan_didaftarkan_oleh_foreign` FOREIGN KEY (`didaftarkan_oleh`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `pelanggan_mikrotik_id_foreign` FOREIGN KEY (`mikrotik_id`) REFERENCES `mikrotiks` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pelanggan_top_odp_id_foreign` FOREIGN KEY (`top_odp_id`) REFERENCES `top_odps` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `pembelians`
--
ALTER TABLE `pembelians`
  ADD CONSTRAINT `pembelians_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `pembelians_pelanggan_id_foreign` FOREIGN KEY (`pelanggan_id`) REFERENCES `pelanggan` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pembelians_template_invoice_id_foreign` FOREIGN KEY (`template_invoice_id`) REFERENCES `template_invoices` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `pembelian_items`
--
ALTER TABLE `pembelian_items`
  ADD CONSTRAINT `pembelian_items_pembelian_id_foreign` FOREIGN KEY (`pembelian_id`) REFERENCES `pembelians` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `pendapatans`
--
ALTER TABLE `pendapatans`
  ADD CONSTRAINT `pendapatans_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pendapatans_kategori_id_foreign` FOREIGN KEY (`kategori_id`) REFERENCES `kategori_keuangans` (`id`),
  ADD CONSTRAINT `pendapatans_pelanggan_id_foreign` FOREIGN KEY (`pelanggan_id`) REFERENCES `pelanggan` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pendapatans_pembelian_id_foreign` FOREIGN KEY (`pembelian_id`) REFERENCES `pembelians` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pendapatans_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `pengeluarans`
--
ALTER TABLE `pengeluarans`
  ADD CONSTRAINT `pengeluarans_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pengeluarans_disetujui_oleh_foreign` FOREIGN KEY (`disetujui_oleh`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `pengeluarans_kategori_id_foreign` FOREIGN KEY (`kategori_id`) REFERENCES `kategori_keuangans` (`id`),
  ADD CONSTRAINT `pengeluarans_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `role_permissions`
--
ALTER TABLE `role_permissions`
  ADD CONSTRAINT `role_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `sla_records`
--
ALTER TABLE `sla_records`
  ADD CONSTRAINT `sla_records_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `sla_records_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `syslogs`
--
ALTER TABLE `syslogs`
  ADD CONSTRAINT `syslogs_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `system_log_details`
--
ALTER TABLE `system_log_details`
  ADD CONSTRAINT `system_log_details_system_log_id_foreign` FOREIGN KEY (`system_log_id`) REFERENCES `system_logs` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `tickets`
--
ALTER TABLE `tickets`
  ADD CONSTRAINT `tickets_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `tickets_pelanggan_id_foreign` FOREIGN KEY (`pelanggan_id`) REFERENCES `pelanggan` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `tickets_teknisi_id_foreign` FOREIGN KEY (`teknisi_id`) REFERENCES `karyawans` (`id`) ON DELETE SET NULL;

--
-- Constraints for table `ticket_replies`
--
ALTER TABLE `ticket_replies`
  ADD CONSTRAINT `ticket_replies_ticket_id_foreign` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `ticket_replies_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `top_odcs`
--
ALTER TABLE `top_odcs`
  ADD CONSTRAINT `top_odcs_top_olt_id_foreign` FOREIGN KEY (`top_olt_id`) REFERENCES `top_olts` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `top_odps`
--
ALTER TABLE `top_odps`
  ADD CONSTRAINT `top_odps_coverage_area_id_foreign` FOREIGN KEY (`coverage_area_id`) REFERENCES `coverage_areas` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `top_odps_parent_odp_id_foreign` FOREIGN KEY (`parent_odp_id`) REFERENCES `top_odps` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `top_odps_top_odc_id_foreign` FOREIGN KEY (`top_odc_id`) REFERENCES `top_odcs` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `uploaded_files`
--
ALTER TABLE `uploaded_files`
  ADD CONSTRAINT `uploaded_files_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

--
-- Constraints for table `vouchers`
--
ALTER TABLE `vouchers`
  ADD CONSTRAINT `vouchers_created_by_foreign` FOREIGN KEY (`created_by`) REFERENCES `users` (`id`),
  ADD CONSTRAINT `vouchers_updated_by_foreign` FOREIGN KEY (`updated_by`) REFERENCES `users` (`id`);

--
-- Constraints for table `website_themes`
--
ALTER TABLE `website_themes`
  ADD CONSTRAINT `website_themes_parent_theme_id_foreign` FOREIGN KEY (`parent_theme_id`) REFERENCES `website_themes` (`id`) ON DELETE SET NULL;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
