-- 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;

