INSERT INTO `invoices` (`id`, `nomor_invoice`, `pelanggan_id`, `payment_id`, `template_invoice_id`, `tanggal_invoice`, `tanggal_jatuh_tempo`, `periode_tagihan`, `periode_dari`, `periode_sampai`, `subtotal`, `biaya_instalasi`, `diskon`, `ppn_persen`, `ppn_amount`, `total_amount`, `total_tagihan`, `is_prorate`, `prorate_info`, `status`, `status_pembayaran`, `payment_link`, `payment_gateway`, `auto_payment`, `payment_due_date`, `tanggal_bayar`, `tanggal_pembayaran`, `metode_pembayaran`, `metode_pembayaran_temp`, `jumlah_transfer`, `tanggal_transfer`, `nama_pengirim`, `catatan_pembayaran`, `bukti_transfer`, `invoice_html`, `file_path`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(118, 'INV-202506040096', 233, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 300000.00, 0.00, 150000.00, 0.00, 0.00, 150000.00, 150000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040096</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040096</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Suci</strong></p>\r\n    <p>saf</p>\r\n    <p>HP: 081292999022</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;\">Internet 20Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 300.000</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;\">Rp 150.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:35:39', '2025-06-05 18:59:31'),
(119, 'INV-202506040097', 234, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 300000.00, 0.00, 0.00, 0.00, 0.00, 300000.00, 300000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040097</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040097</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Vega -Vmala</strong></p>\r\n    <p>hfd</p>\r\n    <p>HP: 0895393634803</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;\">Internet 20Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 300.000</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;\">Rp 300.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:36:45', '2025-06-05 18:59:31'),
(120, 'INV-202506040098', 235, NULL, NULL, '2025-06-04', '2025-07-01', 'bulanan', '2025-06-04', '2025-07-03', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'sent', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040098</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040098</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 01/07/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Vellu Andra</strong></p>\r\n    <p>hfd</p>\r\n    <p>HP: 083815237484</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">04/06/2025 - 03/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:37:53', '2025-06-05 18:59:31'),
(121, 'INV-202506040099', 236, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040099</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040099</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>IBU Vera</strong></p>\r\n    <p>shew</p>\r\n    <p>HP: 089631852175</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:39:00', '2025-06-05 18:59:31'),
(122, 'INV-202506040100', 237, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 250000.00, 0.00, 0.00, 0.00, 0.00, 250000.00, 250000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040100</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040100</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Vina</strong></p>\r\n    <p>saf</p>\r\n    <p>HP: 089683086321</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;\">Internet 15Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 250.000</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;\">Rp 250.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:41:25', '2025-06-05 18:59:31'),
(123, 'INV-202506040101', 238, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040101</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040101</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Visa Billa -Vmala</strong></p>\r\n    <p>gdf</p>\r\n    <p>HP: 08568889216</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:42:43', '2025-06-05 18:59:31'),
(124, 'INV-202506040102', 239, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040102</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040102</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Ade Bojes</strong></p>\r\n    <p>jtrsdd</p>\r\n    <p>HP: 085813893251</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:45:08', '2025-06-05 18:59:31'),
(125, 'INV-202506040103', 240, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 250000.00, 0.00, 0.00, 0.00, 0.00, 250000.00, 250000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040103</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040103</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Wahyu -Vmala</strong></p>\r\n    <p>rtwte</p>\r\n    <p>HP: 089605197722</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;\">Internet 15Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 250.000</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;\">Rp 250.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:47:23', '2025-06-05 18:59:31'),
(126, 'INV-202506040104', 241, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 250000.00, 0.00, 0.00, 0.00, 0.00, 250000.00, 250000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040104</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040104</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Wawan Suandi</strong></p>\r\n    <p>543</p>\r\n    <p>HP: 085882292184</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;\">Internet 15Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 250.000</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;\">Rp 250.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:49:22', '2025-06-05 18:59:31'),
(127, 'INV-202506040105', 242, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040105</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040105</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Nuyadin</strong></p>\r\n    <p>4ted</p>\r\n    <p>HP: 083811409360</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:50:22', '2025-06-05 18:59:31'),
(128, 'INV-202506040106', 243, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 292800.00, 0.00, 0.00, 11.00, 32208.00, 325008.00, 325008.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040106</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040106</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Yaman</strong></p>\r\n    <p>erg</p>\r\n    <p>HP: 08558575510</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;\">Internet 20Mbps v292</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 292.800</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;\">Rp 325.008</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:54:59', '2025-06-05 18:59:31'),
(129, 'INV-202506040107', 244, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040107</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040107</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Yana Suryana</strong></p>\r\n    <p>href</p>\r\n    <p>HP: 089696265789</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 15:57:23', '2025-06-05 18:59:31'),
(130, 'INV-202506040108', 245, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 400000.00, 0.00, 0.00, 0.00, 0.00, 400000.00, 400000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040108</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040108</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>IBU Yuli Yulianti</strong></p>\r\n    <p>rh</p>\r\n    <p>HP: 0895349166432</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;\">Rumah & Toko /10Mpbs</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 400.000</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;\">Rp 400.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:00:33', '2025-06-05 18:59:31'),
(131, 'INV-202506040109', 246, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040109</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040109</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Om Jay</strong></p>\r\n    <p>hf</p>\r\n    <p>HP: 085287498283</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:01:47', '2025-06-05 18:59:31'),
(132, 'INV-202506040110', 247, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, 200000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040110</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040110</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Yusril /Mama Chaya</strong></p>\r\n    <p>hfb</p>\r\n    <p>HP: 089636178759</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;\">Internet 10Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 200.000</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;\">Rp 200.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:03:17', '2025-06-05 18:59:31');
INSERT INTO `invoices` (`id`, `nomor_invoice`, `pelanggan_id`, `payment_id`, `template_invoice_id`, `tanggal_invoice`, `tanggal_jatuh_tempo`, `periode_tagihan`, `periode_dari`, `periode_sampai`, `subtotal`, `biaya_instalasi`, `diskon`, `ppn_persen`, `ppn_amount`, `total_amount`, `total_tagihan`, `is_prorate`, `prorate_info`, `status`, `status_pembayaran`, `payment_link`, `payment_gateway`, `auto_payment`, `payment_due_date`, `tanggal_bayar`, `tanggal_pembayaran`, `metode_pembayaran`, `metode_pembayaran_temp`, `jumlah_transfer`, `tanggal_transfer`, `nama_pengirim`, `catatan_pembayaran`, `bukti_transfer`, `invoice_html`, `file_path`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(133, 'INV-202506040111', 248, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 250000.00, 0.00, 0.00, 0.00, 0.00, 250000.00, 250000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040111</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040111</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Yustin</strong></p>\r\n    <p>eg</p>\r\n    <p>HP: 081293052441</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;\">Internet 15Mbps</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 250.000</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;\">Rp 250.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:04:28', '2025-06-05 18:59:31'),
(134, 'INV-202506040112', 249, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 100000.00, 0.00, 0.00, 0.00, 0.00, 100000.00, 100000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040112</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040112</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Ompe</strong></p>\r\n    <p>5y</p>\r\n    <p>HP: 081289837039</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;\">Hotspot 2 User</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 100.000</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;\">Rp 100.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:07:19', '2025-06-05 18:59:31'),
(135, 'INV-202506040113', 250, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 100000.00, 0.00, 0.00, 0.00, 0.00, 100000.00, 100000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040113</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040113</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Nendi</strong></p>\r\n    <p>bgcv</p>\r\n    <p>HP: 081573355007</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;\">5Mbps 3 User</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 100.000</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;\">Rp 100.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:10:22', '2025-06-05 18:59:31'),
(136, 'INV-202506040114', 251, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 100000.00, 0.00, 0.00, 0.00, 0.00, 100000.00, 100000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040114</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040114</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Om Doel</strong></p>\r\n    <p>vvc</p>\r\n    <p>HP: 081316026706</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;\">5Mbps 3 User</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 100.000</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;\">Rp 100.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:12:44', '2025-06-05 18:59:31'),
(137, 'INV-202506040115', 252, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 150000.00, 0.00, 0.00, 0.00, 0.00, 150000.00, 150000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040115</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040115</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Om Agus / Ibu Eni</strong></p>\r\n    <p>ghs</p>\r\n    <p>HP: 085691591661</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;\">5Mbps Paket Lama</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 150.000</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;\">Rp 150.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:14:08', '2025-06-05 18:59:31'),
(138, 'INV-202506040116', 253, NULL, NULL, '2025-06-04', '2025-06-06', 'bulanan', '2025-06-06', '2025-07-05', 100000.00, 0.00, 0.00, 0.00, 0.00, 100000.00, 100000.00, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506040116</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>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}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div style=\"text-align: center; border-bottom: 2px solid #333; padding-bottom: 20px; margin-bottom: 30px;\">\r\n    <h1 style=\"margin: 0; color: #333;\">PT. EKO GLOBAL TECHNO</h1>\r\n    <p style=\"margin: 5px 0;\">Kp.Gadog RT 03/03 Desa Gadog</p>\r\n    <p style=\"margin: 0;\">Telp: 08988409756 | Email: admin@eglobaltech.id</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>INV-202506040116</p>\r\n    </div>\r\n    <div style=\"text-align: right;\">\r\n        <p><strong>Tanggal:</strong> 04/06/2025</p>\r\n        <p><strong>Jatuh Tempo:</strong> 06/06/2025</p>\r\n    </div>\r\n</div><div style=\"margin-bottom: 30px;\">\r\n    <h3>Kepada:</h3>\r\n    <p><strong>Khafa</strong></p>\r\n    <p>svgsd</p>\r\n    <p>HP: 085693135029</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;\">5Mbps 3 User</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px;\">06/06/2025 - 05/07/2025</td>\r\n            <td style=\"border: 1px solid #ddd; padding: 10px; text-align: right;\">Rp 100.000</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;\">Rp 100.000</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>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-04 16:15:35', '2025-06-05 18:59:31'),
(139, 'INV-20250606-777', 12, NULL, NULL, '2025-05-01', '2025-05-06', 'bulanan', '2025-05-01', '2025-05-31', 300000.00, 0.00, 0.00, 0.00, 0.00, 300000.00, 300000.00, 0, NULL, 'cancelled', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '2025-06-05 17:47:11', '2025-06-05 17:49:20'),
(140, 'INV-202506080001', 257, NULL, 1, '2025-06-08', '2025-07-06', 'bulanan', '2025-06-08', '2025-07-07', 150000.00, 0.00, 0.00, 0.00, 0.00, 150000.00, 150000.00, 0, NULL, 'sent', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506080001</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"https://eglobaltech.id/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506080001</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>08/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>08/06/2025 - 07/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>TRIPAY</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506080001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>asdas</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081282834070</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>5Mbps Paket Lama</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>8M / 8M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>AULA HS</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>5Mbps Paket Lama</td>\r\n                    <td>08/06/2025 - 07/07/2025</td>\r\n                    <td class=\"text-right\">Rp 150.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 150.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 150.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> seratus lima puluh ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-08 13:53:48', '2025-06-08 13:54:46'),
(142, 'INV-202506090001', 165, 17, 1, '2025-06-09', '2025-07-06', 'bulanan', '2025-06-06', '2025-07-05', 0.00, 0.00, 0.00, 0.00, 0.00, 50000.00, 50000.00, 0, NULL, 'paid', 'paid', NULL, NULL, 0, NULL, '2025-06-12 03:29:22', NULL, 'E-Wallet', 'payment_gateway', NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506090001</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"https://eglobaltech.id/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506090001</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>09/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>06/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>06/06/2025 - 05/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>Eko adrie</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506040028</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>Kp.Gadog RT 03/03 Desa Gadog</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081399909101</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>websiteadrie@gmail.com</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>Free UpTo10Mbps</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>11M / 11M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>Free UpTo10Mbps</td>\r\n                    <td>06/06/2025 - 05/07/2025</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 0</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 0</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> nol Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>06/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-09 05:28:17', '2025-06-12 03:29:22');
INSERT INTO `invoices` (`id`, `nomor_invoice`, `pelanggan_id`, `payment_id`, `template_invoice_id`, `tanggal_invoice`, `tanggal_jatuh_tempo`, `periode_tagihan`, `periode_dari`, `periode_sampai`, `subtotal`, `biaya_instalasi`, `diskon`, `ppn_persen`, `ppn_amount`, `total_amount`, `total_tagihan`, `is_prorate`, `prorate_info`, `status`, `status_pembayaran`, `payment_link`, `payment_gateway`, `auto_payment`, `payment_due_date`, `tanggal_bayar`, `tanggal_pembayaran`, `metode_pembayaran`, `metode_pembayaran_temp`, `jumlah_transfer`, `tanggal_transfer`, `nama_pengirim`, `catatan_pembayaran`, `bukti_transfer`, `invoice_html`, `file_path`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES
(144, 'INV-202506090002', 260, NULL, 1, '2025-06-09', '2025-07-01', 'bulanan', '2025-06-09', '2025-07-08', 200000.00, 0.00, 0.00, 0.00, 0.00, 200000.00, NULL, 0, NULL, 'overdue', 'belum_bayar', NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '<!DOCTYPE html>\r\n<html>\r\n<head>\r\n    <title>Invoice INV-202506090002</title>\r\n    <meta charset=\"utf-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <style>@media print { \r\n    .no-print { display: none !important; } \r\n    body { margin: 0; padding: 20px; font-size: 12px; }\r\n    .page-break { page-break-before: always; }\r\n}\r\n\r\n* { box-sizing: border-box; }\r\nbody { \r\n    font-family: \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif; \r\n    line-height: 1.6; \r\n    color: #333; \r\n    margin: 0; \r\n    padding: 20px; \r\n    background: #fff;\r\n}\r\n\r\n/* Header Styles */\r\n.invoice-header { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    align-items: flex-start; \r\n    margin-bottom: 30px; \r\n    padding-bottom: 20px; \r\n    border-bottom: 3px solid #007bff; \r\n}\r\n\r\n.company-section { flex: 1; }\r\n.company-name { \r\n    color: #007bff; \r\n    margin: 0; \r\n    font-size: 24px; \r\n    font-weight: bold; \r\n}\r\n.motto { \r\n    font-style: italic; \r\n    color: #666; \r\n    margin: 5px 0; \r\n}\r\n.contact-info p { \r\n    margin: 2px 0; \r\n    font-size: 14px; \r\n}\r\n.contact-info i { \r\n    width: 16px; \r\n    color: #007bff; \r\n    margin-right: 8px; \r\n}\r\n\r\n.invoice-info { \r\n    text-align: right; \r\n    flex: 0 0 300px; \r\n}\r\n.invoice-title { \r\n    font-size: 36px; \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-weight: bold; \r\n}\r\n.invoice-details table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.invoice-details td { \r\n    padding: 4px 8px; \r\n    border: 1px solid #ddd; \r\n    background: #f8f9fa; \r\n}\r\n\r\n/* Body Styles */\r\n.invoice-body { margin-bottom: 30px; }\r\n\r\n.customer-section, .service-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n\r\n.customer-section h3, .service-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    font-size: 18px; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.customer-info table, .service-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n}\r\n.customer-info td, .service-table td { \r\n    padding: 6px 10px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n/* Invoice Table */\r\n.billing-section { margin: 25px 0; }\r\n.invoice-table { \r\n    width: 100%; \r\n    border-collapse: collapse; \r\n    margin: 20px 0; \r\n    box-shadow: 0 2px 8px rgba(0,0,0,0.1); \r\n}\r\n\r\n.invoice-table th { \r\n    background: #007bff; \r\n    color: white; \r\n    padding: 12px; \r\n    text-align: left; \r\n    font-weight: bold; \r\n}\r\n.invoice-table td { \r\n    padding: 10px 12px; \r\n    border-bottom: 1px solid #e9ecef; \r\n}\r\n\r\n.invoice-table tbody tr:hover { background: #f8f9fa; }\r\n\r\n.subtotal-row { \r\n    background: #e9ecef !important; \r\n    font-weight: bold; \r\n}\r\n.total-row { \r\n    background: #007bff !important; \r\n    color: white !important; \r\n    font-size: 16px; \r\n    font-weight: bold; \r\n}\r\n\r\n.text-right { text-align: right; }\r\n.total-amount { \r\n    font-size: 18px; \r\n    font-weight: bold; \r\n}\r\n\r\n.amount-words { \r\n    margin: 15px 0; \r\n    padding: 10px; \r\n    background: #e7f3ff; \r\n    border-left: 4px solid #007bff; \r\n    font-style: italic; \r\n}\r\n\r\n/* Footer Styles */\r\n.invoice-footer { margin-top: 30px; }\r\n\r\n.payment-section { \r\n    margin-bottom: 25px; \r\n    padding: 15px; \r\n    background: #f8f9fa; \r\n    border-radius: 6px; \r\n}\r\n.payment-section h3 { \r\n    color: #007bff; \r\n    margin: 0 0 15px 0; \r\n    border-bottom: 2px solid #007bff; \r\n    padding-bottom: 5px; \r\n}\r\n\r\n.bank-accounts { \r\n    background: white; \r\n    padding: 12px; \r\n    border-radius: 4px; \r\n    border: 1px solid #ddd; \r\n    line-height: 1.8; \r\n}\r\n\r\n.terms-section { \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #fff3cd; \r\n    border: 1px solid #ffeaa7; \r\n    border-radius: 6px; \r\n}\r\n.terms-section h4 { \r\n    color: #856404; \r\n    margin: 0 0 10px 0; \r\n}\r\n.terms-section ul { \r\n    margin: 0; \r\n    padding-left: 20px; \r\n}\r\n.terms-section li { \r\n    margin-bottom: 5px; \r\n    color: #856404; \r\n}\r\n\r\n.contact-section { \r\n    display: flex; \r\n    justify-content: space-between; \r\n    margin: 20px 0; \r\n    padding: 15px; \r\n    background: #e7f3ff; \r\n    border-radius: 6px; \r\n}\r\n.cs-info h4 { \r\n    color: #007bff; \r\n    margin: 0 0 10px 0; \r\n}\r\n.cs-info p { \r\n    margin: 3px 0; \r\n}\r\n.cs-info i { \r\n    width: 20px; \r\n    color: #007bff; \r\n}\r\n\r\n.footer-note { \r\n    text-align: center; \r\n    margin-top: 30px; \r\n    padding-top: 20px; \r\n    border-top: 1px solid #ddd; \r\n    color: #666; \r\n}\r\n.footer-note p { \r\n    margin: 5px 0; \r\n}\r\n\r\n/* Responsive */\r\n@media (max-width: 768px) {\r\n    .invoice-header { \r\n        flex-direction: column; \r\n        text-align: left; \r\n    }\r\n    .invoice-info { \r\n        text-align: left; \r\n        margin-top: 20px; \r\n    }\r\n    .contact-section { \r\n        flex-direction: column; \r\n    }\r\n    .invoice-table { \r\n        font-size: 12px; \r\n    }\r\n}</style>\r\n</head>\r\n<body>\r\n    \r\n    <div class=\"invoice-header\">\r\n    <div class=\"company-section\">\r\n        <div class=\"company-logo\">\r\n            <img src=\"https://eglobaltech.id/storage/logos/logo_1749276400.png\" alt=\"PT. EKO GLOBAL TECHNO\" style=\"max-height: 80px;\">\r\n        </div>\r\n        <div class=\"company-info\">\r\n            <h2>PT. EKO GLOBAL TECHNO</h2>\r\n            <p class=\"motto\">Connecting Indonesia with Reliable Internet Solutions</p>\r\n            <div class=\"contact-info\">\r\n                <p><i class=\"fas fa-map-marker-alt\"></i> Kp.Gadog RT 03/03 Desa Gadog</p>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class=\"invoice-info\">\r\n        <h1 class=\"invoice-title\">INVOICE</h1>\r\n        <div class=\"invoice-details\">\r\n            <table>\r\n                <tr><td><strong>No. Invoice:</strong></td><td>INV-202506090002</td></tr>\r\n                <tr><td><strong>Tanggal:</strong></td><td>09/06/2025</td></tr>\r\n                <tr><td><strong>Jatuh Tempo:</strong></td><td>01/07/2025</td></tr>\r\n                <tr><td><strong>Periode:</strong></td><td>09/06/2025 - 08/07/2025</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-body\">\r\n    <div class=\"customer-section\">\r\n        <h3>Tagihan Kepada:</h3>\r\n        <div class=\"customer-info\">\r\n            <table>\r\n                <tr><td><strong>Nama:</strong></td><td>RCN</td></tr>\r\n                <tr><td><strong>No. Layanan:</strong></td><td>202506090001</td></tr>\r\n                <tr><td><strong>Alamat:</strong></td><td>654767</td></tr>\r\n                <tr><td><strong>No. HP:</strong></td><td>081646963300</td></tr>\r\n                <tr><td><strong>Email:</strong></td><td>-</td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"service-section\">\r\n        <h3>Detail Layanan:</h3>\r\n        <table class=\"service-table\">\r\n            <tr><td><strong>Paket Internet:</strong></td><td>Internet 10Mbps</td></tr>\r\n            <tr><td><strong>Kecepatan:</strong></td><td>11M / 11M</td></tr>\r\n            <tr><td><strong>Jenis Layanan:</strong></td><td>PPPoE</td></tr>\r\n            <tr><td><strong>Area Coverage:</strong></td><td></td></tr>\r\n            <tr><td><strong>WiFi SSID:</strong></td><td>-</td></tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div class=\"billing-section\">\r\n        <table class=\"invoice-table\">\r\n            <thead>\r\n                <tr>\r\n                    <th>Deskripsi</th>\r\n                    <th>Periode</th>\r\n                    <th class=\"text-right\">Harga</th>\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                <tr>\r\n                    <td>Internet 10Mbps</td>\r\n                    <td>09/06/2025 - 08/07/2025</td>\r\n                    <td class=\"text-right\">Rp 200.000</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Biaya Instalasi</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr>\r\n                    <td>Diskon</td>\r\n                    <td>-</td>\r\n                    <td class=\"text-right\">-Rp 0</td>\r\n                </tr>\r\n            </tbody>\r\n            <tfoot>\r\n                <tr class=\"subtotal-row\">\r\n                    <td colspan=\"2\"><strong>Subtotal</strong></td>\r\n                    <td class=\"text-right\"><strong>Rp 200.000</strong></td>\r\n                </tr>\r\n                <tr>\r\n                    <td colspan=\"2\">PPN 0.00%</td>\r\n                    <td class=\"text-right\">Rp 0</td>\r\n                </tr>\r\n                <tr class=\"total-row\">\r\n                    <td colspan=\"2\"><strong>TOTAL TAGIHAN</strong></td>\r\n                    <td class=\"text-right total-amount\"><strong>Rp 200.000</strong></td>\r\n                </tr>\r\n            </tfoot>\r\n        </table>\r\n\r\n        <div class=\"amount-words\">\r\n            <strong>Terbilang:</strong> dua ratus ribu Rupiah\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=\"invoice-footer\">\r\n    <div class=\"payment-section\">\r\n        <h3>Informasi Pembayaran:</h3>\r\n        <div class=\"payment-info\">\r\n            <p><strong>Transfer ke rekening:</strong></p>\r\n            <div class=\"bank-accounts\">\r\n                {{{daftar_rekening}}}\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"terms-section\">\r\n        <h4>Ketentuan Pembayaran:</h4>\r\n        <ul>\r\n            <li>Pembayaran paling lambat pada tanggal <strong>01/07/2025</strong></li>\r\n            <li>Layanan akan dihentikan sementara jika melewati batas waktu pembayaran</li>\r\n            <li>Konfirmasi pembayaran dapat dilakukan via WhatsApp {{wa_cs}}</li>\r\n            <li>Invoice ini adalah dokumen resmi yang dihasilkan oleh sistem</li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class=\"contact-section\">\r\n        <div class=\"contact-info\">\r\n            <div class=\"cs-info\">\r\n                <h4>Customer Service:</h4>\r\n                <p><i class=\"fas fa-phone\"></i> 08988409756</p>\r\n                <p><i class=\"fas fa-whatsapp\"></i> {{wa_cs}}</p>\r\n                <p><i class=\"fas fa-envelope\"></i> admin@eglobaltech.id</p>\r\n            </div>\r\n            <div class=\"web-info\">\r\n                <p><i class=\"fas fa-globe\"></i> {{web_perusahaan}}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"footer-note\">\r\n        <p><em>Terima kasih atas kepercayaan Anda menggunakan layanan PT. EKO GLOBAL TECHNO</em></p>\r\n        <p><small>Invoice ini digenerate otomatis pada {{tanggal_generate}} - PT. EKO GLOBAL TECHNO</small></p>\r\n    </div>\r\n</div>\r\n    \r\n</body>\r\n</html>', NULL, 1, 1, '2025-06-09 07:23:22', '2025-06-09 07:28:57');

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

--
-- Struktur dari tabel `jobs`
--

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

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

--
-- Struktur dari tabel `karyawans`
--

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

--
-- Dumping data untuk tabel `karyawans`
--

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

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

--
-- Struktur dari tabel `kategoris`
--

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

--
-- Dumping data untuk tabel `kategoris`
--

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

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

--
-- Struktur dari tabel `kategori_keuangans`
--

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

--
-- Dumping data untuk tabel `kategori_keuangans`
--

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

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

--
-- Struktur dari tabel `layanan_hotspots`
--

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

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

--
-- Struktur dari tabel `layanan_jasa`
--

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

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

--
-- Struktur dari tabel `layanan_pppoes`
--

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

--
-- Dumping data untuk tabel `layanan_pppoes`
--

INSERT INTO `layanan_pppoes` (`id`, `mikrotik_id`, `nama_layanan`, `pppoe_profile`, `kecepatan_download`, `kecepatan_upload`, `harga_bulan`, `tampil_register`, `keterangan`, `gambar_layanan`, `status`, `urutan`, `is_featured`, `fitur_tambahan`, `created_at`, `updated_at`) VALUES
(11, 9, 'Internet 10Mbps', '10Mbps', '11M', '11M', 200000.00, 1, 'Kecepatan Internet: Hingga 10 Mbps (unduh & unggah simetris, tergantung area)\r\nBiaya Instalasi: Gratis\r\nJenis Layanan: Unlimited tanpa FUP (Fair Usage Policy)\r\nDukungan Teknis: 24/7 via WhatsApp / Telepon / Kunjungan teknisi\r\n\r\nSyarat & Ketentuan\r\n-Gratis Biaya Instalasi hanya berlaku untuk pelanggan baru dalam area jangkauan layanan.\r\n-Pelanggan wajib melakukan pembayaran bulan pertama sebelum aktivasi layanan.\r\n-Kontrak minimum berlangganan: 3 bulan. Jika berhenti sebelum masa kontrak, biaya penalti dapat dikenakan.\r\n-Kecepatan hingga 10 Mbps dapat dipengaruhi oleh kondisi jaringan, jumlah pengguna, dan perangkat pelanggan.\r\n-Jika perangkat (seperti modem/router) dipinjamkan, maka wajib dikembalikan dalam kondisi baik saat berhenti berlangganan.\r\n-Layanan hanya dapat digunakan di lokasi yang telah disetujui saat pendaftaran.\r\n-Perubahan paket, penangguhan, atau pengakhiran layanan harus diberitahukan minimal 7 hari sebelum tanggal jatuh tempo.\r\n-Penggunaan layanan ini tunduk pada kebijakan penggunaan wajar dan peraturan hukum yang berlaku.', '1748797273_1.jpg', 'aktif', 0, 0, NULL, '2025-06-01 10:01:13', '2025-06-01 10:01:13'),
(12, 9, 'Internet 15Mbps', '15Mbps', '16M', '16M', 250000.00, 1, 'Keterangan Paket Internet 15 Mbps\r\nKecepatan Internet: Hingga 15 Mbps (unduh & unggah simetris, tergantung area)\r\nBiaya Instalasi: Gratis\r\nJenis Layanan: Unlimited tanpa FUP (Fair Usage Policy)\r\nMetode Pembayaran: Bulanan di muka\r\nDukungan Teknis: 24/7 via WhatsApp / Telepon / Kunjungan teknisi\r\n\r\nSyarat & Ketentuan\r\n-Gratis Biaya Instalasi hanya berlaku untuk pelanggan baru dalam area jangkauan layanan.\r\n-Pelanggan wajib melakukan pembayaran bulan pertama sebelum aktivasi layanan.\r\n-Kontrak minimum berlangganan: 3 bulan. Jika berhenti sebelum masa kontrak, biaya penalti dapat dikenakan.\r\n-Kecepatan hingga 10 Mbps dapat dipengaruhi oleh kondisi jaringan, jumlah pengguna, dan perangkat pelanggan.\r\n-Jika perangkat (seperti modem/router) dipinjamkan, maka wajib dikembalikan dalam kondisi baik saat berhenti berlangganan.\r\n-Layanan hanya dapat digunakan di lokasi yang telah disetujui saat pendaftaran.\r\n-Perubahan paket, penangguhan, atau pengakhiran layanan harus diberitahukan minimal 7 hari sebelum tanggal jatuh tempo.\r\n-Penggunaan layanan ini tunduk pada kebijakan penggunaan wajar dan peraturan hukum yang berlaku.', '1748797422_2.jpg', 'aktif', 0, 0, NULL, '2025-06-01 10:03:42', '2025-06-01 10:03:42'),
(13, 9, 'Internet 20Mbps', '20Mbps', '25M', '25M', 300000.00, 1, 'Keterangan Paket Internet 20 Mbps\r\nKecepatan Internet: Hingga 20 Mbps (unduh & unggah simetris, tergantung area)\r\nBiaya Instalasi: Gratis\r\nJenis Layanan: Unlimited tanpa FUP (Fair Usage Policy)\r\nMetode Pembayaran: Bulanan di muka\r\nDukungan Teknis: 24/7 via WhatsApp / Telepon / Kunjungan teknisi\r\n\r\nSyarat & Ketentuan\r\n-Gratis Biaya Instalasi hanya berlaku untuk pelanggan baru dalam area jangkauan layanan.\r\n-Pelanggan wajib melakukan pembayaran bulan pertama sebelum aktivasi layanan.\r\n-Kontrak minimum berlangganan: 3 bulan. Jika berhenti sebelum masa kontrak, biaya penalti dapat dikenakan.\r\n-Kecepatan hingga 10 Mbps dapat dipengaruhi oleh kondisi jaringan, jumlah pengguna, dan perangkat pelanggan.\r\n-Jika perangkat (seperti modem/router) dipinjamkan, maka wajib dikembalikan dalam kondisi baik saat berhenti berlangganan.\r\n-Layanan hanya dapat digunakan di lokasi yang telah disetujui saat pendaftaran.\r\n-Perubahan paket, penangguhan, atau pengakhiran layanan harus diberitahukan minimal 7 hari sebelum tanggal jatuh tempo.\r\n-Penggunaan layanan ini tunduk pada kebijakan penggunaan wajar dan peraturan hukum yang berlaku.', '1748797479_3.jpg', 'aktif', 0, 0, NULL, '2025-06-01 10:04:39', '2025-06-01 10:04:39'),
(14, 9, 'Internet 30Mbps', '30Mbps', '35M', '35M', 350000.00, 1, 'Keterangan Paket Internet 30 Mbps\r\nKecepatan Internet: Hingga 30 Mbps (unduh & unggah simetris, tergantung area)\r\nBiaya Instalasi: Gratis\r\nJenis Layanan: Unlimited tanpa FUP (Fair Usage Policy)\r\nMetode Pembayaran: Bulanan di muka\r\nDukungan Teknis: 24/7 via WhatsApp / Telepon / Kunjungan teknisi\r\n\r\nSyarat & Ketentuan\r\n-Gratis Biaya Instalasi hanya berlaku untuk pelanggan baru dalam area jangkauan layanan.\r\n-Pelanggan wajib melakukan pembayaran bulan pertama sebelum aktivasi layanan.\r\n-Kontrak minimum berlangganan: 3 bulan. Jika berhenti sebelum masa kontrak, biaya penalti dapat dikenakan.\r\n-Kecepatan hingga 10 Mbps dapat dipengaruhi oleh kondisi jaringan, jumlah pengguna, dan perangkat pelanggan.\r\n-Jika perangkat (seperti modem/router) dipinjamkan, maka wajib dikembalikan dalam kondisi baik saat berhenti berlangganan.\r\n-Layanan hanya dapat digunakan di lokasi yang telah disetujui saat pendaftaran.\r\n-Perubahan paket, penangguhan, atau pengakhiran layanan harus diberitahukan minimal 7 hari sebelum tanggal jatuh tempo.\r\n-Penggunaan layanan ini tunduk pada kebijakan penggunaan wajar dan peraturan hukum yang berlaku.', '1748797737_4.jpg', 'aktif', 0, 0, NULL, '2025-06-01 10:08:57', '2025-06-01 10:08:57'),
(15, 9, 'Priority Biz 50 1:1', '50Mbps', '70M', '70M', 750000.00, 1, 'Jenis Layanan: Unlimited tanpa FUP (Fair Usage Policy)\r\nMetode Pembayaran: Bulanan di muka\r\nDukungan Teknis: 24/7 via WhatsApp / Telepon / Kunjungan teknisi\r\n-Jika perangkat (seperti modem/router) dipinjamkan, maka wajib dikembalikan dalam kondisi baik saat berhenti berlangganan.\r\n-Layanan hanya dapat digunakan di lokasi yang telah disetujui saat pendaftaran.\r\n-Perubahan paket, penangguhan, atau pengakhiran layanan harus diberitahukan minimal 7 hari sebelum tanggal jatuh tempo.\r\n-Penggunaan layanan ini tunduk pada kebijakan penggunaan wajar dan peraturan hukum yang berlaku.', '1748797850_product-241229-8bcc1dcb74.jpg.jpg', 'aktif', 0, 0, NULL, '2025-06-01 10:10:50', '2025-06-01 10:10:50'),
(16, 9, 'Priority Biz 30 1:1', '30Mbps', '35M', '35M', 500000.00, 1, NULL, '1748797966_0a.jpg', 'aktif', 0, 0, NULL, '2025-06-01 10:12:46', '2025-06-01 10:12:46'),
(17, 9, 'Free UpTo 5Mbps', '5Mbps', '8M', '8M', 0.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:17:07', '2025-06-01 10:17:07'),
(18, 9, 'Free UpTo10Mbps', '10Mbps', '11M', '11M', 0.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:18:58', '2025-06-01 10:18:58'),
(19, 9, 'Free Hotspot 3 User', 'default', '3M', '3M', 0.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:20:41', '2025-06-01 10:20:41'),
(20, 9, '5Mbps Paket Lama', '5Mbps', '8M', '8M', 150000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:21:03', '2025-06-01 10:21:03'),
(21, 9, '5Mbps 3 User', '5Mbps', '8M', '8M', 100000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:21:31', '2025-06-01 10:21:31'),
(22, 9, 'Paker Upto 20Mbps', '20Mbps', '25M', '25M', 325000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:22:07', '2025-06-01 10:22:07'),
(23, 9, '30Mbps Upto', '30Mbps', '35M', '35M', 250000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:23:14', '2025-06-01 10:23:14'),
(24, 9, 'Hotspot 2 User', 'default', '8M', '8M', 100000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-01 10:23:54', '2025-06-01 10:23:54'),
(25, 9, 'PENUNJANG ADMINISTRASI 10Mbps', '10Mbps', '11M', '11M', 0.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-04 02:18:02', '2025-06-04 02:18:02'),
(26, 9, 'PENUNJANG ADMINISTRASI 20Mbps', '20Mbps', '11M', '11M', 0.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-04 02:18:07', '2025-06-04 02:18:20'),
(27, 9, 'Paket Teh Rida & Om Asep', '30Mbps', '35M', '35M', 450000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-04 08:18:05', '2025-06-04 08:18:05'),
(28, 9, 'Internet 20Mbps v292', '20Mbps', '25M', '25M', 292800.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-04 08:53:06', '2025-06-04 08:53:06'),
(29, 9, 'Rumah & Toko /10Mpbs', '20Mbps', '25M', '25M', 400000.00, 0, NULL, NULL, 'aktif', 0, 0, NULL, '2025-06-04 08:59:23', '2025-06-04 08:59:23');

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

--
-- Struktur dari tabel `menus`
--

CREATE TABLE `menus` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `nama_menu` varchar(255) NOT NULL,
  `url` varchar(255) NOT NULL,
  `posisi` enum('header','footer') NOT NULL DEFAULT 'header',
  `urutan` int(11) NOT NULL DEFAULT 0,
  `status` enum('aktif','nonaktif') NOT NULL DEFAULT 'aktif',
  `icon` varchar(255) DEFAULT NULL,
  `target` varchar(20) NOT NULL DEFAULT '_self',
  `parent_id` bigint(20) UNSIGNED DEFAULT NULL,
  `description` text 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 untuk tabel `menus`
--

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

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

--
-- Struktur dari tabel `migrations`
--

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

--
-- Dumping data untuk tabel `migrations`
--

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

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

--
-- Struktur dari tabel `mikrotik_logs`
--

CREATE TABLE `mikrotik_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `mikrotik_id` bigint(20) UNSIGNED NOT NULL,
  `action` varchar(255) NOT NULL,
  `old_status` varchar(255) DEFAULT NULL,
  `new_status` varchar(255) DEFAULT NULL,
  `message` text NOT NULL,
  `details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`details`)),
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) 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
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data untuk tabel `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
(3, 9, 'create', NULL, NULL, 'Router Eglobaltech berhasil ditambahkan', '{\"host\":\"10.10.2.1\",\"location\":\"Eglobaltech.id\"}', '127.0.0.1', '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-06 17:27:17', '2025-06-06 17:27:17'),
(4, 9, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"10.10.2.1\",\"port\":1992,\"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.064, '2025-06-06 17:27:20', '2025-06-06 17:27:20'),
(5, 9, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"10.10.2.1\",\"port\":1992,\"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.063, '2025-06-06 17:29:44', '2025-06-06 17:29:44'),
(6, 9, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"10.10.2.1\",\"port\":1992,\"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.043, '2025-06-06 17:39:42', '2025-06-06 17:39:42'),
(7, 9, 'test_connection', 'online', 'online', 'Koneksi berhasil! Router online.', '{\"host\":\"43.243.142.38\",\"port\":1992,\"response_data\":{\"success\":true,\"message\":\"Koneksi berhasil! Router online.\",\"status\":\"online\",\"data\":[{\"name\":\"Eglobaltech-X86\"}]}}', '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, 0.269, '2025-06-08 15:00:07', '2025-06-08 15:00:07');

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

--
-- Struktur dari tabel `model_has_permissions`
--

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

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

--
-- Struktur dari tabel `model_has_roles`
--

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

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

--
-- Struktur dari tabel `payments`
--

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

--
-- Dumping data untuk tabel `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
(1, 13, 10, 'midtrans', 'default', NULL, 20000000.00, 'pending', NULL, NULL, NULL, '2025-06-06 18:45:11', 'Test payment creation', '2025-06-05 18:45:11', '2025-06-05 18:45:11', '2025-06-05 18:45:11'),
(3, 50, 165, 'midtrans', 'default', NULL, 0.00, 'pending', NULL, NULL, NULL, '2025-06-07 19:56:19', 'Pembayaran invoice INV-202506040028', '2025-06-06 19:56:19', '2025-06-06 19:57:04', '2025-06-06 19:57:04'),
(4, 50, 165, 'midtrans', 'default', NULL, 10000000.00, 'pending', NULL, NULL, NULL, '2025-06-07 19:57:04', 'Pembayaran invoice INV-202506040028', '2025-06-06 19:57:04', '2025-06-06 19:58:02', '2025-06-06 19:58:02'),
(5, 50, 165, 'midtrans', 'default', NULL, 10000000.00, 'pending', NULL, NULL, NULL, '2025-06-07 19:58:02', 'Pembayaran invoice INV-202506040028', '2025-06-06 19:58:02', '2025-06-06 19:58:49', '2025-06-06 19:58:49'),
(6, 50, 165, 'midtrans', 'default', NULL, 5000000.00, 'pending', NULL, NULL, NULL, '2025-06-07 19:58:49', 'Pembayaran invoice INV-202506040028', '2025-06-06 19:58:49', '2025-06-06 20:00:48', '2025-06-06 20:00:48'),
(7, 50, 165, 'midtrans', 'default', NULL, 5000000.00, 'pending', NULL, NULL, NULL, '2025-06-07 20:00:48', 'Pembayaran invoice INV-202506040028', '2025-06-06 20:00:48', '2025-06-07 04:28:46', '2025-06-07 04:28:46'),
(8, 50, 165, 'midtrans', 'default', NULL, 5000000.00, 'pending', NULL, NULL, NULL, '2025-06-08 04:28:46', 'Pembayaran invoice INV-202506040028', '2025-06-07 04:28:46', '2025-06-07 04:30:06', '2025-06-07 04:30:06'),
(9, 50, 165, 'midtrans', 'default', NULL, 5000000.00, 'pending', NULL, NULL, NULL, '2025-06-08 04:30:06', 'Pembayaran invoice INV-202506040028', '2025-06-07 04:30:06', '2025-06-07 04:30:53', '2025-06-07 04:30:53'),
(10, 50, 165, 'midtrans', 'default', 'INV-50-1749270653', 5000000.00, 'pending', '\"{\\\"snap_token\\\":\\\"a16f4c1f-27a2-4039-b16a-d133a30e554b\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/a16f4c1f-27a2-4039-b16a-d133a30e554b', NULL, '2025-06-08 04:30:53', 'Pembayaran invoice INV-202506040028', '2025-06-07 04:30:53', '2025-06-07 04:30:53', NULL),
(11, 50, 165, 'midtrans', 'default', 'INV-50-1749271348', 5000000.00, 'pending', '\"{\\\"snap_token\\\":\\\"7b552479-e091-4909-b2ef-7ab1251b8dad\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/7b552479-e091-4909-b2ef-7ab1251b8dad', NULL, '2025-06-08 04:42:28', 'Pembayaran invoice INV-202506040028', '2025-06-07 04:42:28', '2025-06-07 04:42:28', NULL),
(12, 50, 165, 'midtrans', 'default', 'INV-12-1749272839', 50000.00, 'pending', '\"{\\\"snap_token\\\":\\\"7eb5791a-a382-44e0-8036-7cc9de5436ae\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/7eb5791a-a382-44e0-8036-7cc9de5436ae', NULL, '2025-06-08 05:07:19', 'Pembayaran untuk 1 invoice', '2025-06-07 05:07:19', '2025-06-07 05:07:19', NULL),
(13, 142, 165, 'midtrans', 'default', 'INV-13-1749451022', 50000.00, 'pending', '\"{\\\"snap_token\\\":\\\"e80083ed-9903-461f-a828-2b95ad9f39f7\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/e80083ed-9903-461f-a828-2b95ad9f39f7', NULL, '2025-06-10 06:37:02', 'Pembayaran untuk 1 invoice', '2025-06-09 06:37:02', '2025-06-09 06:37:04', NULL),
(15, 142, 165, 'midtrans', 'default', 'INV-15-1749676138', 50000.00, 'pending', '\"{\\\"snap_token\\\":\\\"7f8632e0-1776-4eef-bcde-4e3384dada49\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/7f8632e0-1776-4eef-bcde-4e3384dada49', NULL, '2025-06-12 21:08:58', 'Pembayaran untuk 1 invoice', '2025-06-11 21:08:58', '2025-06-11 21:08:58', NULL),
(17, 142, 165, 'midtrans', 'default', 'INV-17-1749698737', 50000.00, 'pending', '\"{\\\"snap_token\\\":\\\"9aa409f0-ffdc-4461-bbcf-92fa224402eb\\\"}\"', 'https://app.midtrans.com/snap/v2/vtweb/9aa409f0-ffdc-4461-bbcf-92fa224402eb', NULL, '2025-06-13 03:25:37', 'Pembayaran untuk 1 invoice', '2025-06-12 03:25:37', '2025-06-12 03:25:38', NULL);

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

--
-- Struktur dari tabel `payment_gateway_logs`
--

CREATE TABLE `payment_gateway_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `gateway` varchar(255) NOT NULL,
  `type` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
  `action` varchar(255) DEFAULT NULL,
  `message` text NOT NULL,
  `request_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`request_data`)),
  `response_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`response_data`)),
  `transaction_id` varchar(255) DEFAULT NULL,
  `invoice_id` varchar(255) DEFAULT NULL,
  `payment_id` int(11) DEFAULT NULL,
  `amount` decimal(15,2) DEFAULT NULL,
  `ip_address` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `user_id` int(11) DEFAULT NULL,
  `duration_ms` int(11) DEFAULT NULL,
  `error_code` varchar(255) DEFAULT NULL,
  `stack_trace` text 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 untuk tabel `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');

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

--
-- Struktur dari tabel `payment_gateway_settings`
--

CREATE TABLE `payment_gateway_settings` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `gateway` varchar(50) 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 DEFAULT NULL CHECK (json_valid(`configuration`)),
  `supported_methods` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`supported_methods`)),
  `webhook_url` varchar(255) 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 untuk tabel `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', 1, 1, '{\"server_key\":\"Mid-server-eL97FBLV7zMDSBqvGw3N3_sl\",\"client_key\":\"Mid-client-19vam5eYZCcZYcf3\",\"supported_methods\":[\"credit_card\",\"bank_transfer\",\"gopay\",\"qris\"]}', '[\"credit_card\",\"bank_transfer\",\"gopay\",\"qris\"]', 'https://eglobaltech.id/webhook/midtrans', '2025-06-05 15:34:33', '2025-06-11 21:08:44'),
(2, 'tripay', 1, 1, '{\"api_key\":\"aCCZRt3lW375ZYo4XWcjtcz1PQ6zxjWH6VoVZKDf\",\"private_key\":\"MWsZS-r2dyg-yDaJ7-utLoZ-PwvFU\",\"merchant_code\":\"T33197\",\"callback_secret\":\"https:\\/\\/eglobaltech.id\\/webhook\\/tripay\",\"supported_methods\":[\"virtual_account\",\"convenience_store\",\"ewallet\"]}', '[\"virtual_account\",\"convenience_store\",\"ewallet\"]', 'https://eglobaltech.id/webhook/tripay', '2025-06-07 07:17:59', '2025-06-12 03:24:45');

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

--
-- Struktur dari tabel `pembelians`
--

CREATE TABLE `pembelians` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `nomor_transaksi` varchar(255) NOT NULL,
  `tanggal_pembelian` date NOT NULL,
  `pelanggan_id` bigint(20) UNSIGNED DEFAULT NULL,
  `nama_pembeli` varchar(255) DEFAULT NULL,
  `nomor_hp` varchar(255) DEFAULT NULL,
  `alamat` text DEFAULT NULL,
  `tipe_transaksi` enum('produk','layanan','campuran') 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 DEFAULT NULL,
  `total_amount` decimal(15,2) NOT NULL DEFAULT 0.00,
  `status_pembayaran` enum('belum_bayar','lunas','cicilan') NOT NULL DEFAULT 'belum_bayar',
  `metode_pembayaran` enum('tunai','transfer','kartu_kredit','cicilan') NOT NULL DEFAULT 'tunai',
  `tanggal_bayar` date DEFAULT NULL,
  `catatan` text DEFAULT NULL,
  `template_invoice_id` bigint(20) UNSIGNED DEFAULT NULL,
  `invoice_html` longtext DEFAULT NULL,
  `invoice_file_path` varchar(255) DEFAULT NULL,
  `created_by` bigint(20) UNSIGNED NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `pembelian_items`
--

CREATE TABLE `pembelian_items` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `pembelian_id` bigint(20) UNSIGNED NOT NULL,
  `item_type` enum('produk','layanan_jasa','layanan_pppoe','layanan_hotspot') NOT NULL,
  `item_id` bigint(20) UNSIGNED NOT NULL,
  `nama_item` varchar(255) NOT NULL,
  `deskripsi_item` text DEFAULT NULL,
  `harga_satuan` decimal(15,2) NOT NULL,
  `quantity` int(11) NOT NULL DEFAULT 1,
  `unit` varchar(255) 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 DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `pendapatans`
--

CREATE TABLE `pendapatans` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `kode_transaksi` varchar(20) NOT NULL,
  `tanggal_transaksi` date NOT NULL,
  `kategori_id` bigint(20) UNSIGNED NOT NULL,
  `deskripsi` varchar(255) NOT NULL,
  `jumlah` decimal(15,2) NOT NULL,
  `metode_pembayaran` enum('tunai','transfer','kartu_kredit','e_wallet','lainnya') NOT NULL,
  `nomor_referensi` varchar(255) DEFAULT NULL,
  `pelanggan_id` bigint(20) UNSIGNED DEFAULT NULL,
  `nama_pembayar` varchar(255) DEFAULT NULL,
  `pembelian_id` bigint(20) UNSIGNED DEFAULT NULL,
  `status` enum('draft','konfirmasi','selesai','batal') NOT NULL DEFAULT 'konfirmasi',
  `recurring` enum('tidak','harian','mingguan','bulanan','tahunan') NOT NULL DEFAULT 'tidak',
  `tanggal_recurring_berikutnya` date DEFAULT NULL,
  `file_bukti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`file_bukti`)),
  `catatan` text DEFAULT NULL,
  `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(20) UNSIGNED DEFAULT NULL,
  `updated_by` bigint(20) UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data untuk tabel `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, 'tunai', '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, 'tunai', 'INV-202506040028', 165, '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', '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', 'INV-202506040038', 175, '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', 165, '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');

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

--
-- Struktur dari tabel `pengeluarans`
--

CREATE TABLE `pengeluarans` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `kode_transaksi` varchar(20) NOT NULL,
  `tanggal_transaksi` date NOT NULL,
  `kategori_id` bigint(20) UNSIGNED NOT NULL,
  `deskripsi` varchar(255) NOT NULL,
  `jumlah` decimal(15,2) NOT NULL,
  `metode_pembayaran` enum('tunai','transfer','kartu_kredit','e_wallet','lainnya') NOT NULL,
  `nomor_referensi` varchar(255) DEFAULT NULL,
  `nama_vendor` varchar(255) DEFAULT NULL,
  `kontak_vendor` varchar(255) DEFAULT NULL,
  `status` enum('draft','disetujui','dibayar','selesai','batal') NOT NULL DEFAULT 'draft',
  `recurring` enum('tidak','harian','mingguan','bulanan','tahunan') NOT NULL DEFAULT 'tidak',
  `tanggal_recurring_berikutnya` date DEFAULT NULL,
  `file_bukti` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`file_bukti`)),
  `catatan` text DEFAULT NULL,
  `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') NOT NULL DEFAULT 'normal',
  `disetujui_oleh` bigint(20) UNSIGNED DEFAULT NULL,
  `tanggal_persetujuan` timestamp NULL DEFAULT NULL,
  `created_by` bigint(20) UNSIGNED DEFAULT NULL,
  `updated_by` bigint(20) UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `permissions`
--

CREATE TABLE `permissions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `guard_name` varchar(255) 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 untuk tabel `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');

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

--
-- Struktur dari tabel `perusahaan`
--

CREATE TABLE `perusahaan` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `perusahaan` varchar(255) DEFAULT NULL,
  `singkatan` varchar(255) DEFAULT NULL,
  `moto` text DEFAULT NULL,
  `owner` varchar(255) DEFAULT NULL,
  `wa_owner` varchar(255) DEFAULT NULL,
  `alamat_kantor` text DEFAULT NULL,
  `telp_kantor` varchar(255) DEFAULT NULL,
  `email_kantor` varchar(255) DEFAULT NULL,
  `web_url` varchar(255) DEFAULT NULL,
  `logo_kantor` varchar(255) 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 untuk tabel `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_1749276400.png', 11.00, -6.65503666, 106.86331093, '2025-06-01 06:09:43', '2025-06-07 06:06:40');

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

--
-- Struktur dari tabel `pesan_template`
--

CREATE TABLE `pesan_template` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `pesan_template` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `desk_template` text DEFAULT NULL,
  `kont_template` longtext 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 untuk tabel `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}}! 🎉\n\n🌐 **LAYANAN INTERNET DIAKTIFKAN**\n\nLayanan internet Anda telah berhasil diaktifkan kembali:\n\n📋 **Detail Layanan:**\n• No. Layanan: {{nomer_layanan}}\n• Paket: {{paket_layanan}}\n• Tanggal Aktivasi: {{tanggal_aktivasi}}\n• Status: ✅ AKTIF\n\n🔌 Koneksi internet Anda sekarang sudah dapat digunakan kembali.\n\nSilakan restart modem/router Anda jika diperlukan.\n\nJika masih ada kendala, 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'),
(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', '\\n\\nYth. {nama_pelanggan},\\n\\nPendaftaran Anda telah berhasil!\\n\\n DETAIL AKUN:\\n Nomor Layanan: {nomer_layanan}\\n Nama: {nama_pelanggan}\\n Layanan: {nama_layanan}\\n Mode: {mode_pelanggan}\\n Total Biaya: {total_biaya}\\n\\n AKSES LOGIN:\\n Username: {username}\\n Password: {password}\\n\\n Tanggal Daftar: {tanggal_daftar}\\n\\n Untuk aktivasi dan informasi lebih lanjut, silakan hubungi customer service kami.\\n\\nTerima kasih telah mempercayai layanan kami! \\n\\n--\\nRT RWNET\\nLayanan Internet Terpercaya', 1, '2025-06-07 19:36:10', '2025-06-07 19:38:16');

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

--
-- Struktur dari tabel `produks`
--

CREATE TABLE `produks` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `kode_produk` varchar(255) NOT NULL,
  `nama_produk` varchar(255) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `kategori` varchar(255) DEFAULT NULL,
  `merk` varchar(255) DEFAULT NULL,
  `tipe` varchar(255) DEFAULT NULL,
  `unit` varchar(255) 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(11) NOT NULL DEFAULT 0,
  `stok_minimum` int(11) NOT NULL DEFAULT 0,
  `supplier` varchar(255) DEFAULT NULL,
  `spesifikasi` text DEFAULT NULL,
  `foto_produk` varchar(255) DEFAULT NULL,
  `status` enum('aktif','nonaktif') NOT NULL DEFAULT 'aktif',
  `keterangan` text DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `roles`
--

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

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

--
-- Struktur dari tabel `role_has_permissions`
--

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

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

--
-- Struktur dari tabel `role_permissions`
--

CREATE TABLE `role_permissions` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `role` varchar(255) NOT NULL,
  `permission_id` bigint(20) 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;

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

--
-- Struktur dari tabel `sidebar_menus`
--

CREATE TABLE `sidebar_menus` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `icon` varchar(255) DEFAULT NULL,
  `url` varchar(255) DEFAULT NULL,
  `route` varchar(255) DEFAULT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `order` int(11) NOT NULL DEFAULT 0,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `permissions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`permissions`)),
  `target` varchar(255) NOT NULL DEFAULT '_self',
  `css_class` varchar(255) DEFAULT NULL,
  `badge_text` varchar(255) DEFAULT NULL,
  `badge_class` varchar(255) NOT NULL DEFAULT 'badge-primary',
  `show_badge` tinyint(1) NOT NULL DEFAULT 0,
  `description` text 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 untuk tabel `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');

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

--
-- Struktur dari tabel `sla_records`
--

CREATE TABLE `sla_records` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `jenis_error` enum('isp','server_lokal') NOT NULL COMMENT 'Jenis error: ISP atau Server Lokal',
  `deskripsi_error` varchar(255) 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(11) DEFAULT NULL COMMENT 'Durasi downtime dalam menit',
  `tingkat_dampak` enum('rendah','sedang','tinggi','kritis') NOT NULL DEFAULT 'sedang' COMMENT 'Tingkat dampak error',
  `penyebab_error` text DEFAULT NULL COMMENT 'Penyebab error yang teridentifikasi',
  `solusi_perbaikan` text DEFAULT NULL COMMENT 'Solusi yang diterapkan untuk perbaikan',
  `status` enum('ongoing','resolved') NOT NULL DEFAULT 'ongoing' COMMENT 'Status error: ongoing atau resolved',
  `pic_penanganan` varchar(255) DEFAULT NULL COMMENT 'Person in charge yang menangani',
  `catatan_tambahan` text DEFAULT NULL COMMENT 'Catatan tambahan',
  `created_by` bigint(20) UNSIGNED NOT NULL COMMENT 'User yang membuat record',
  `updated_by` bigint(20) 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 untuk tabel `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');

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

--
-- Struktur dari tabel `syslogs`
--

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

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

--
-- Struktur dari tabel `system_logs`
--

CREATE TABLE `system_logs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `log_type` enum('whatsapp_bulk','auto_billing','reminder_whatsapp','auto_isolir','manual_action') NOT NULL,
  `action_name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `total_processed` int(11) NOT NULL DEFAULT 0,
  `total_success` int(11) NOT NULL DEFAULT 0,
  `total_failed` int(11) 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') NOT NULL DEFAULT 'running',
  `error_message` text DEFAULT NULL,
  `executed_by` varchar(255) DEFAULT NULL,
  `user_agent` varchar(255) DEFAULT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `settings_used` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`settings_used`)),
  `summary_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`summary_data`)),
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `system_log_details`
--

CREATE TABLE `system_log_details` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `system_log_id` bigint(20) UNSIGNED NOT NULL,
  `item_type` varchar(255) NOT NULL,
  `item_id` bigint(20) UNSIGNED DEFAULT NULL,
  `item_reference` varchar(255) DEFAULT NULL,
  `item_name` varchar(255) NOT NULL,
  `status` enum('success','failed','skipped') NOT NULL,
  `message` text DEFAULT NULL,
  `error_details` text DEFAULT NULL,
  `phone_number` varchar(255) DEFAULT NULL,
  `amount` decimal(15,2) DEFAULT NULL,
  `additional_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`additional_data`)),
  `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
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `template_invoices`
--

CREATE TABLE `template_invoices` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `nama_template` varchar(255) NOT NULL,
  `slug` varchar(255) NOT NULL,
  `deskripsi` text DEFAULT NULL,
  `header_template` text DEFAULT NULL,
  `body_template` text NOT NULL,
  `footer_template` text DEFAULT NULL,
  `css_custom` text DEFAULT NULL,
  `format_paper` varchar(255) NOT NULL DEFAULT 'A4',
  `orientation` varchar(255) NOT NULL DEFAULT 'portrait',
  `settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`settings`)),
  `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
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data untuk tabel `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-05 15:32:35'),
(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    <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-05 15:29:10');

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

--
-- Struktur dari tabel `tentang_kamis`
--

CREATE TABLE `tentang_kamis` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `judul` varchar(255) NOT NULL,
  `konten` longtext DEFAULT NULL,
  `visi` text DEFAULT NULL,
  `misi` text DEFAULT NULL,
  `sejarah` text DEFAULT NULL,
  `gambar` varchar(255) DEFAULT NULL,
  `status` enum('aktif','nonaktif') 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 untuk tabel `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');

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

--
-- Struktur dari tabel `themes`
--

CREATE TABLE `themes` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `name` varchar(255) NOT NULL,
  `display_name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `colors` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`colors`)),
  `css_variables` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`css_variables`)),
  `border_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`border_settings`)),
  `card_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`card_settings`)),
  `component_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`component_settings`)),
  `component_style` varchar(255) NOT NULL DEFAULT 'modern',
  `typography_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`typography_settings`)),
  `layout_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`layout_settings`)),
  `animation_settings` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`animation_settings`)),
  `custom_css` longtext DEFAULT NULL,
  `sidebar_config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`sidebar_config`)),
  `use_custom_sidebar` tinyint(1) NOT NULL DEFAULT 0,
  `preview_image` varchar(255) 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
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data untuk tabel `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');

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

--
-- Struktur dari tabel `tickets`
--

CREATE TABLE `tickets` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `no_ticket` varchar(255) NOT NULL,
  `pelanggan_id` bigint(20) UNSIGNED NOT NULL,
  `nama_pelanggan` varchar(255) NOT NULL,
  `no_wa_pelanggan` varchar(255) NOT NULL,
  `kendala_error` text NOT NULL,
  `kategori_ticket` varchar(255) NOT NULL,
  `foto_laporan` varchar(255) DEFAULT NULL,
  `waktu_laporan` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `teknisi_id` bigint(20) UNSIGNED DEFAULT NULL,
  `nama_teknisi` varchar(255) DEFAULT NULL,
  `waktu_perbaikan` timestamp NULL DEFAULT NULL,
  `waktu_penyelesaian` timestamp NULL DEFAULT NULL,
  `keterangan_penyelesaian` text DEFAULT NULL,
  `foto_penyelesaian` varchar(255) DEFAULT NULL,
  `status` enum('menunggu_antrian','menunggu_teknisi_datang','proses_penyelesaian','selesai') NOT NULL DEFAULT 'menunggu_antrian',
  `created_by` bigint(20) 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 untuk tabel `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
(2, 'TKT202506060001', 15, 'Ade Abdurachman', '08121295391', 'FHDCGFTGXD', 'Internet', NULL, '2025-06-06 15:22:38', 1, 'Eko Adrie', '2025-06-06 12:09:46', '2025-06-06 15:22:38', NULL, NULL, 'selesai', 1, '2025-06-06 12:05:07', '2025-06-06 15:22:38'),
(3, 'TKT202503260001', 18, 'Aderaf', '08128224331', 'Putus nyambung terus', 'Internet', NULL, '2025-03-26 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-03-26 12:39:48', '2025-03-26 12:39:48'),
(4, 'TKT202506040002', 13, 'Ustad Nanang', '085782517022', 'Suara tidak keluar', 'TV Kabel', NULL, '2025-06-04 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-06-04 12:39:48', '2025-06-04 12:39:48'),
(5, 'TKT202505140003', 19, 'Ahmad Apandi', '087777781200', 'Ganti router', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-15 03:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-05-14 12:39:48', '2025-06-06 12:39:48'),
(6, 'TKT202504060004', 14, 'IBU / Desy Aryanti', '085180581198', 'Pindah lokasi pemasangan', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-06 16:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-04-06 12:39:48', '2025-06-06 12:39:48'),
(7, 'TKT202503260005', 17, 'A Dedi', '089517734246', 'Ganti router', 'Pemasangan', NULL, '2025-03-26 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-03-26 12:39:48', '2025-03-26 12:39:48'),
(8, 'TKT202505270006', 17, 'A Dedi', '089517734246', 'Gambar tidak jernih', 'TV Kabel', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-27 21:39:48', NULL, NULL, NULL, 'proses_penyelesaian', 1, '2025-05-27 12:39:48', '2025-06-06 12:39:48'),
(9, 'TKT202503170007', 19, 'Ahmad Apandi', '087777781200', 'Set top box error', 'TV Kabel', NULL, '2025-03-17 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-03-17 12:39:48', '2025-03-17 12:39:48'),
(10, 'TKT202506050008', 18, 'Aderaf', '08128224331', 'Koneksi internet lambat', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-06-05 15:39:48', NULL, NULL, NULL, 'proses_penyelesaian', 1, '2025-06-05 12:39:48', '2025-06-06 12:39:48'),
(11, 'TKT202503300009', 15, 'Ade Abdurachman', '08121295391', 'Tidak bisa akses internet', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-30 17:39:48', '2025-03-31 07:39:48', 'Kabel sudah diperbaiki, sinyal stabil', NULL, 'selesai', 1, '2025-03-30 12:39:48', '2025-06-06 12:39:48'),
(12, 'TKT202506020010', 16, 'Ade Keren - Kp.Rawa', '089604137599', 'Laporan gangguan area', 'Lainnya', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-06-03 07:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-06-02 12:39:48', '2025-06-06 12:39:48'),
(13, 'TKT202504070011', 16, 'Ade Keren - Kp.Rawa', '089604137599', 'Promo tidak teraplikasi', 'Pembayaran', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-07 14:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-04-07 12:39:48', '2025-06-06 12:39:48'),
(14, 'TKT202505010012', 19, 'Ahmad Apandi', '087777781200', 'Tidak bisa akses internet', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-02 11:39:48', NULL, NULL, NULL, 'proses_penyelesaian', 1, '2025-05-01 12:39:48', '2025-06-06 12:39:48'),
(15, 'TKT202504060013', 14, 'IBU / Desy Aryanti', '085180581198', 'Channel tidak lengkap', 'TV Kabel', NULL, '2025-04-06 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-06 12:39:48', '2025-04-06 12:39:48'),
(16, 'TKT202504240014', 11, 'IBU / Kasminiadi', '081234567891', 'Upgrade paket internet', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-24 14:39:48', '2025-04-25 04:39:48', 'Router baru sudah terpasang', NULL, 'selesai', 1, '2025-04-24 12:39:48', '2025-06-06 12:39:48'),
(17, 'TKT202503240015', 13, 'Ustad Nanang', '085782517022', 'Putus nyambung terus', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-24 13:39:48', '2025-03-24 17:39:48', 'Upgrade perangkat sudah selesai', NULL, 'selesai', 1, '2025-03-24 12:39:48', '2025-06-06 12:39:48'),
(18, 'TKT202503300016', 13, 'Ustad Nanang', '085782517022', 'Pindah lokasi pemasangan', 'Pemasangan', NULL, '2025-03-30 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-03-30 12:39:48', '2025-03-30 12:39:48'),
(19, 'TKT202504280017', 17, 'A Dedi', '089517734246', 'Pindah lokasi pemasangan', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-28 18:39:48', '2025-04-29 10:39:48', 'Pemasangan sudah selesai dan berhasil', NULL, 'selesai', 1, '2025-04-28 12:39:48', '2025-06-06 12:39:48'),
(20, 'TKT202504160018', 13, 'Ustad Nanang', '085782517022', 'Koneksi internet lambat', 'Internet', NULL, '2025-04-16 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-16 12:39:48', '2025-04-16 12:39:48'),
(21, 'TKT202503290019', 17, 'A Dedi', '089517734246', 'Channel tidak lengkap', 'TV Kabel', NULL, '2025-03-29 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-03-29 12:39:48', '2025-03-29 12:39:48'),
(22, 'TKT202503160020', 19, 'Ahmad Apandi', '087777781200', 'Permintaan pemasangan baru', 'Pemasangan', NULL, '2025-03-16 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-03-16 12:39:48', '2025-03-16 12:39:48'),
(23, 'TKT202506020021', 10, 'IBU / Ratna Vmala', '081234567890', 'Tambah titik WiFi', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-06-03 10:39:48', '2025-06-04 20:39:48', 'Upgrade paket sudah aktif', NULL, 'selesai', 1, '2025-06-02 12:39:48', '2025-06-06 12:39:48'),
(24, 'TKT202504240022', 13, 'Ustad Nanang', '085782517022', 'Speed tidak sesuai paket', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-25 03:39:48', '2025-04-26 07:39:48', 'Upgrade perangkat sudah selesai', NULL, 'selesai', 1, '2025-04-24 12:39:48', '2025-06-06 12:39:48'),
(25, 'TKT202506040023', 15, 'Ade Abdurachman', '08121295391', 'Koneksi internet lambat', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-06-05 05:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-06-04 12:39:48', '2025-06-06 12:39:48'),
(26, 'TKT202506020024', 19, 'Ahmad Apandi', '087777781200', 'WiFi tidak terdeteksi', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-06-03 04:39:48', '2025-06-03 06:39:48', 'Masalah sudah diperbaiki, koneksi normal kembali', NULL, 'selesai', 1, '2025-06-02 12:39:48', '2025-06-06 12:39:48'),
(27, 'TKT202503130025', 18, 'Aderaf', '08128224331', 'Permintaan pemasangan baru', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-14 03:39:48', '2025-03-16 00:39:48', 'Titik WiFi tambahan sudah terpasang', NULL, 'selesai', 1, '2025-03-13 12:39:48', '2025-06-06 12:39:48'),
(28, 'TKT202504020026', 10, 'IBU / Ratna Vmala', '081234567890', 'Permintaan pemasangan baru', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-03 03:39:48', '2025-04-05 02:39:48', 'Pemasangan sudah selesai dan berhasil', NULL, 'selesai', 1, '2025-04-02 12:39:48', '2025-06-06 12:39:48'),
(29, 'TKT202503290027', 16, 'Ade Keren - Kp.Rawa', '089604137599', 'WiFi tidak terdeteksi', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-30 05:39:48', NULL, NULL, NULL, 'proses_penyelesaian', 1, '2025-03-29 12:39:48', '2025-06-06 12:39:48'),
(30, 'TKT202504010028', 19, 'Ahmad Apandi', '087777781200', 'Refund pembayaran', 'Pembayaran', NULL, '2025-04-01 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-01 12:39:48', '2025-04-01 12:39:48'),
(31, 'TKT202505060029', 12, 'Ibu / Iis Vmala', '0895355221476', 'Permintaan informasi', 'Lainnya', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-07 00:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-05-06 12:39:48', '2025-06-06 12:39:48'),
(32, 'TKT202505230030', 18, 'Aderaf', '08128224331', 'Tidak bisa akses internet', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-24 06:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-05-23 12:39:48', '2025-06-06 12:39:48'),
(33, 'TKT202504220031', 14, 'IBU / Desy Aryanti', '085180581198', 'Permintaan informasi', 'Lainnya', NULL, '2025-04-22 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-22 12:39:48', '2025-04-22 12:39:48'),
(34, 'TKT202505240032', 11, 'IBU / Kasminiadi', '081234567891', 'Tambah titik WiFi', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-24 14:39:48', '2025-05-24 20:39:48', 'Router baru sudah terpasang', NULL, 'selesai', 1, '2025-05-24 12:39:48', '2025-06-06 12:39:48'),
(35, 'TKT202503260033', 19, 'Ahmad Apandi', '087777781200', 'Request maintenance', 'Lainnya', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-27 02:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-03-26 12:39:48', '2025-06-06 12:39:48'),
(36, 'TKT202504180034', 14, 'IBU / Desy Aryanti', '085180581198', 'Ganti router', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-19 12:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-04-18 12:39:48', '2025-06-06 12:39:48'),
(37, 'TKT202504250035', 14, 'IBU / Desy Aryanti', '085180581198', 'Tagihan tidak sesuai', 'Pembayaran', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-25 14:39:48', '2025-04-26 20:39:48', 'Promo sudah diterapkan', NULL, 'selesai', 1, '2025-04-25 12:39:48', '2025-06-06 12:39:48'),
(38, 'TKT202503310036', 11, 'IBU / Kasminiadi', '081234567891', 'Channel tidak lengkap', 'TV Kabel', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-01 11:39:48', '2025-04-02 13:39:48', 'Set top box sudah diperbaiki', NULL, 'selesai', 1, '2025-03-31 12:39:48', '2025-06-06 12:39:48'),
(39, 'TKT202505020037', 17, 'A Dedi', '089517734246', 'Tambah titik WiFi', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-03 07:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-05-02 12:39:48', '2025-06-06 12:39:48'),
(40, 'TKT202503180038', 13, 'Ustad Nanang', '085782517022', 'Permintaan informasi', 'Lainnya', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-19 11:39:48', '2025-03-19 12:39:48', 'Gangguan area sudah diperbaiki', NULL, 'selesai', 1, '2025-03-18 12:39:48', '2025-06-06 12:39:48'),
(41, 'TKT202504140039', 19, 'Ahmad Apandi', '087777781200', 'Promo tidak teraplikasi', 'Pembayaran', NULL, '2025-04-14 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-14 12:39:48', '2025-04-14 12:39:48'),
(42, 'TKT202503120040', 19, 'Ahmad Apandi', '087777781200', 'Refund pembayaran', 'Pembayaran', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-13 01:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-03-12 12:39:48', '2025-06-06 12:39:48'),
(43, 'TKT202504250041', 11, 'IBU / Kasminiadi', '081234567891', 'Koneksi internet lambat', 'Internet', NULL, '2025-04-25 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-25 12:39:48', '2025-04-25 12:39:48'),
(44, 'TKT202505110042', 10, 'IBU / Ratna Vmala', '081234567890', 'Request maintenance', 'Lainnya', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-12 07:39:48', '2025-05-13 11:39:48', 'Maintenance sudah selesai', NULL, 'selesai', 1, '2025-05-11 12:39:48', '2025-06-06 12:39:48'),
(45, 'TKT202504220043', 18, 'Aderaf', '08128224331', 'Permintaan pemasangan baru', 'Pemasangan', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-23 11:39:48', '2025-04-23 23:39:48', 'Lokasi sudah dipindah sesuai permintaan', NULL, 'selesai', 1, '2025-04-22 12:39:48', '2025-06-06 12:39:48'),
(46, 'TKT202504220044', 17, 'A Dedi', '089517734246', 'Set top box error', 'TV Kabel', NULL, '2025-04-22 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-22 12:39:48', '2025-04-22 12:39:48'),
(47, 'TKT202504280045', 11, 'IBU / Kasminiadi', '081234567891', 'Speed tidak sesuai paket', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-04-28 21:39:48', NULL, NULL, NULL, 'proses_penyelesaian', 1, '2025-04-28 12:39:48', '2025-06-06 12:39:48'),
(48, 'TKT202504030046', 19, 'Ahmad Apandi', '087777781200', 'Permintaan pemasangan baru', 'Pemasangan', NULL, '2025-04-03 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-03 12:39:48', '2025-04-03 12:39:48'),
(49, 'TKT202505280047', 17, 'A Dedi', '089517734246', 'Speed tidak sesuai paket', 'Internet', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-28 22:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-05-28 12:39:48', '2025-06-06 12:39:48'),
(50, 'TKT202504040048', 14, 'IBU / Desy Aryanti', '085180581198', 'Channel tidak lengkap', 'TV Kabel', NULL, '2025-04-04 12:39:48', 1, 'Eko Adrie', NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-04-04 12:39:48', '2025-04-04 12:39:48'),
(51, 'TKT202505120049', 16, 'Ade Keren - Kp.Rawa', '089604137599', 'Pembayaran tidak terdeteksi', 'Pembayaran', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-05-13 05:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-05-12 12:39:48', '2025-06-06 12:39:48'),
(52, 'TKT202503090050', 18, 'Aderaf', '08128224331', 'Komplain pelayanan', 'Lainnya', NULL, '2025-06-06 12:39:48', 1, 'Eko Adrie', '2025-03-09 23:39:48', NULL, NULL, NULL, 'menunggu_teknisi_datang', 1, '2025-03-09 12:39:48', '2025-06-06 12:39:48'),
(53, 'TKT202506060002', 253, 'Khafa', '085693135029', 'Mas eko modemnya kok mati yaaa', 'Internet', NULL, '2025-06-06 15:47:06', NULL, NULL, NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-06-06 15:47:06', '2025-06-06 15:47:06'),
(54, 'TKT202506090001', 165, 'Eko adrie', '081399909101', 'eror kabel', 'Internet', NULL, '2025-06-09 06:42:03', NULL, NULL, NULL, NULL, NULL, NULL, 'menunggu_antrian', 1, '2025-06-09 06:42:03', '2025-06-09 06:42:03');

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

--
-- Struktur dari tabel `ticket_replies`
--

CREATE TABLE `ticket_replies` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `ticket_id` bigint(20) UNSIGNED NOT NULL,
  `user_id` bigint(20) UNSIGNED NOT NULL,
  `message` text NOT NULL,
  `attachments` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`attachments`)),
  `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
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

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

--
-- Struktur dari tabel `top_odcs`
--

CREATE TABLE `top_odcs` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `top_olt_id` bigint(20) UNSIGNED NOT NULL,
  `pon_olt` varchar(255) NOT NULL,
  `nama_odc` varchar(255) NOT NULL,
  `kode_odc` varchar(255) NOT NULL,
  `jumlah_port` int(11) NOT NULL,
  `status` enum('aktif','non_aktif','maintenance') NOT NULL DEFAULT 'aktif',
  `foto_odc` varchar(255) DEFAULT NULL,
  `lokasi` text DEFAULT NULL,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `keterangan` text 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 untuk tabel `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');

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

--
-- Struktur dari tabel `top_odps`
--

CREATE TABLE `top_odps` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `top_odc_id` bigint(20) UNSIGNED NOT NULL,
  `coverage_area_id` bigint(20) UNSIGNED DEFAULT NULL,
  `parent_type` enum('odc','odp') NOT NULL DEFAULT 'odc',
  `parent_odp_id` bigint(20) UNSIGNED DEFAULT NULL,
  `splitter_ratio` varchar(255) DEFAULT NULL,
  `splitter_power_ratio` varchar(255) DEFAULT NULL,
  `odc_port` varchar(255) DEFAULT NULL,
  `nama_odp` varchar(255) NOT NULL,
  `kode_odp` varchar(255) NOT NULL,
  `jml_port_odp` int(11) NOT NULL,
  `redaman_rata_rata` decimal(5,2) DEFAULT NULL,
  `status` enum('aktif','non_aktif','maintenance') NOT NULL DEFAULT 'aktif',
  `foto_odp` varchar(255) DEFAULT NULL,
  `lokasi` text DEFAULT NULL,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `keterangan` text 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 untuk tabel `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.65565616, 106.86208248, 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.65626891, 106.86367035, 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.65613037, 106.86482906, 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.65730792, 106.86088085, 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.65666320, 106.86106861, 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.65641277, 106.86075211, 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');

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

--
-- Struktur dari tabel `top_olts`
--

CREATE TABLE `top_olts` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `nama_server_olt` varchar(255) NOT NULL,
  `merk_tipe_olt` varchar(255) NOT NULL,
  `jumlah_pon` int(11) NOT NULL,
  `redaman_sfp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`redaman_sfp`)),
  `status` enum('aktif','non_aktif','maintenance') NOT NULL DEFAULT 'aktif',
  `lokasi` text DEFAULT NULL,
  `latitude` decimal(10,8) DEFAULT NULL,
  `longitude` decimal(11,8) DEFAULT NULL,
  `keterangan` text 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 untuk tabel `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\":\"9\",\"pon_2\":\"9\",\"pon_3\":\"9\",\"pon_4\":\"9\"}', 'aktif', NULL, -6.65505406, 106.86330557, NULL, '2025-06-01 16:19:49', '2025-06-01 16:19:49'),
(2, 'OLT-Eglobaltech HIOSO', 'HIOSO HA-7302CS', 2, '{\"pon_1\":\"9\",\"pon_2\":\"9\"}', 'aktif', NULL, -6.65504874, 106.86331630, NULL, '2025-06-01 16:20:20', '2025-06-01 16:20:20');

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

--
-- Struktur dari tabel `vouchers`
--

CREATE TABLE `vouchers` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `code` varchar(255) NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` text DEFAULT NULL,
  `type` enum('percentage','fixed') 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(11) DEFAULT NULL,
  `usage_limit_per_user` int(11) NOT NULL DEFAULT 1,
  `used_count` int(11) NOT NULL DEFAULT 0,
  `applicable_to` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`applicable_to`)),
  `applicable_user_types` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`applicable_user_types`)),
  `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(20) UNSIGNED NOT NULL,
  `updated_by` bigint(20) UNSIGNED DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

--
-- Dumping data untuk tabel `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');

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

--
-- Struktur dari tabel `voucher_usages`
--

CREATE TABLE `voucher_usages` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `voucher_id` bigint(20) UNSIGNED NOT NULL,
  `invoice_id` bigint(20) UNSIGNED DEFAULT NULL,
  `customer_email` varchar(255) DEFAULT NULL,
  `customer_phone` varchar(255) DEFAULT NULL,
  `order_id` varchar(255) 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') NOT NULL DEFAULT 'pending',
  `notes` text DEFAULT NULL,
  `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 untuk tabel `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');

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

--
-- Struktur dari tabel `website_themes`
--

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

--
-- Dumping data untuk tabel `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-05 15:38:12'),
(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, 0, 0, '1.0.0', NULL, NULL, '2025-06-05 10:29:02', '2025-06-05 15:38:12'),
(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\"}', 1, 0, '1.0.0', 'PT. Anjeng Network Solutions', NULL, '2025-06-05 10:47:00', '2025-06-05 10:47:00');

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

--
-- Struktur dari tabel `widgets`
--

CREATE TABLE `widgets` (
  `id` bigint(20) UNSIGNED NOT NULL,
  `judul` varchar(255) NOT NULL,
  `konten` longtext DEFAULT NULL,
  `posisi` enum('sidebar','footer','homepage') NOT NULL DEFAULT 'sidebar',
  `urutan` int(11) NOT NULL DEFAULT 0,
  `status` enum('aktif','nonaktif') NOT NULL DEFAULT 'aktif',
  `tipe_widget` varchar(50) 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 untuk tabel `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
--

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `akses_permissions`
--
ALTER TABLE `akses_permissions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `akses_permissions_unique` (`role`,`resource_id`,`resource_type`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `asset_categories`
--
ALTER TABLE `asset_categories`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `asset_categories_code_unique` (`code`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `banks`
--
ALTER TABLE `banks`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `failed_jobs`
--
ALTER TABLE `failed_jobs`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `failed_jobs_uuid_unique` (`uuid`);

--
-- Indeks untuk tabel `galeri`
--
ALTER TABLE `galeri`
  ADD PRIMARY KEY (`id`),
  ADD KEY `galeri_status_urutan_index` (`status`,`urutan`),
  ADD KEY `galeri_kategori_id_index` (`kategori_id`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `homepages`
--
ALTER TABLE `homepages`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `jobs`
--
ALTER TABLE `jobs`
  ADD PRIMARY KEY (`id`),
  ADD KEY `jobs_queue_index` (`queue`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `migrations`
--
ALTER TABLE `migrations`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `permissions`
--
ALTER TABLE `permissions`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `permissions_name_guard_name_unique` (`name`,`guard_name`);

--
-- Indeks untuk tabel `perusahaan`
--
ALTER TABLE `perusahaan`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `pesan_template`
--
ALTER TABLE `pesan_template`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `pesan_template_slug_unique` (`slug`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `roles`
--
ALTER TABLE `roles`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `roles_name_guard_name_unique` (`name`,`guard_name`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `template_invoices`
--
ALTER TABLE `template_invoices`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `template_invoices_slug_unique` (`slug`);

--
-- Indeks untuk tabel `tentang_kamis`
--
ALTER TABLE `tentang_kamis`
  ADD PRIMARY KEY (`id`),
  ADD KEY `tentang_kamis_status_index` (`status`);

--
-- Indeks untuk tabel `themes`
--
ALTER TABLE `themes`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `top_olts`
--
ALTER TABLE `top_olts`
  ADD PRIMARY KEY (`id`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `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`);

--
-- Indeks untuk tabel `widgets`
--
ALTER TABLE `widgets`
  ADD PRIMARY KEY (`id`),
  ADD KEY `widgets_posisi_status_urutan_index` (`posisi`,`status`,`urutan`);

--
-- AUTO_INCREMENT untuk tabel yang dibuang
--

--
-- AUTO_INCREMENT untuk tabel `absensis`
--
ALTER TABLE `absensis`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT untuk tabel `akses_permissions`
--
ALTER TABLE `akses_permissions`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `assets`
--
ALTER TABLE `assets`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- AUTO_INCREMENT untuk tabel `asset_categories`
--
ALTER TABLE `asset_categories`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT untuk tabel `auto_billing_logs`
--
ALTER TABLE `auto_billing_logs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `auto_isolir_logs`
--
ALTER TABLE `auto_isolir_logs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `banks`
--
ALTER TABLE `banks`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT untuk tabel `broadcast_messages`
--
ALTER TABLE `broadcast_messages`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `coverage_areas`
--
ALTER TABLE `coverage_areas`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT untuk tabel `failed_jobs`
--
ALTER TABLE `failed_jobs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `galeri`
--
ALTER TABLE `galeri`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `halamen`
--
ALTER TABLE `halamen`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT untuk tabel `homepages`
--
ALTER TABLE `homepages`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `invoices`
--
ALTER TABLE `invoices`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=145;

--
-- AUTO_INCREMENT untuk tabel `jobs`
--
ALTER TABLE `jobs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `karyawans`
--
ALTER TABLE `karyawans`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `kategoris`
--
ALTER TABLE `kategoris`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;

--
-- AUTO_INCREMENT untuk tabel `kategori_keuangans`
--
ALTER TABLE `kategori_keuangans`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;

--
-- AUTO_INCREMENT untuk tabel `layanan_hotspots`
--
ALTER TABLE `layanan_hotspots`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT untuk tabel `layanan_jasa`
--
ALTER TABLE `layanan_jasa`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- AUTO_INCREMENT untuk tabel `layanan_pppoes`
--
ALTER TABLE `layanan_pppoes`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=30;

--
-- AUTO_INCREMENT untuk tabel `menus`
--
ALTER TABLE `menus`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT untuk tabel `migrations`
--
ALTER TABLE `migrations`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=123;

--
-- AUTO_INCREMENT untuk tabel `mikrotik_logs`
--
ALTER TABLE `mikrotik_logs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT untuk tabel `payments`
--
ALTER TABLE `payments`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;

--
-- AUTO_INCREMENT untuk tabel `payment_gateway_logs`
--
ALTER TABLE `payment_gateway_logs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=75;

--
-- AUTO_INCREMENT untuk tabel `payment_gateway_settings`
--
ALTER TABLE `payment_gateway_settings`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT untuk tabel `pembelians`
--
ALTER TABLE `pembelians`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `pembelian_items`
--
ALTER TABLE `pembelian_items`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `pendapatans`
--
ALTER TABLE `pendapatans`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- AUTO_INCREMENT untuk tabel `pengeluarans`
--
ALTER TABLE `pengeluarans`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `permissions`
--
ALTER TABLE `permissions`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=56;

--
-- AUTO_INCREMENT untuk tabel `perusahaan`
--
ALTER TABLE `perusahaan`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `pesan_template`
--
ALTER TABLE `pesan_template`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--
-- AUTO_INCREMENT untuk tabel `produks`
--
ALTER TABLE `produks`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25;

--
-- AUTO_INCREMENT untuk tabel `roles`
--
ALTER TABLE `roles`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT untuk tabel `role_permissions`
--
ALTER TABLE `role_permissions`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `sidebar_menus`
--
ALTER TABLE `sidebar_menus`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=93;

--
-- AUTO_INCREMENT untuk tabel `sla_records`
--
ALTER TABLE `sla_records`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31;

--
-- AUTO_INCREMENT untuk tabel `syslogs`
--
ALTER TABLE `syslogs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `system_logs`
--
ALTER TABLE `system_logs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `system_log_details`
--
ALTER TABLE `system_log_details`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `template_invoices`
--
ALTER TABLE `template_invoices`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- AUTO_INCREMENT untuk tabel `tentang_kamis`
--
ALTER TABLE `tentang_kamis`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT untuk tabel `themes`
--
ALTER TABLE `themes`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT untuk tabel `tickets`
--
ALTER TABLE `tickets`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=55;

--
-- AUTO_INCREMENT untuk tabel `ticket_replies`
--
ALTER TABLE `ticket_replies`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT untuk tabel `top_odcs`
--
ALTER TABLE `top_odcs`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT untuk tabel `top_odps`
--
ALTER TABLE `top_odps`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=28;

--
-- AUTO_INCREMENT untuk tabel `top_olts`
--
ALTER TABLE `top_olts`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;

--
-- AUTO_INCREMENT untuk tabel `vouchers`
--
ALTER TABLE `vouchers`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT untuk tabel `voucher_usages`
--
ALTER TABLE `voucher_usages`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT untuk tabel `website_themes`
--
ALTER TABLE `website_themes`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT untuk tabel `widgets`
--
ALTER TABLE `widgets`
  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

--
-- Ketidakleluasaan untuk tabel pelimpahan (Dumped Tables)
--

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `assets`
--
ALTER TABLE `assets`
  ADD CONSTRAINT `assets_asset_category_id_foreign` FOREIGN KEY (`asset_category_id`) REFERENCES `asset_categories` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `galeri`
--
ALTER TABLE `galeri`
  ADD CONSTRAINT `galeri_kategori_id_foreign` FOREIGN KEY (`kategori_id`) REFERENCES `kategoris` (`id`) ON DELETE SET NULL;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `kategoris`
--
ALTER TABLE `kategoris`
  ADD CONSTRAINT `kategoris_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `kategoris` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `layanan_pppoes`
--
ALTER TABLE `layanan_pppoes`
  ADD CONSTRAINT `layanan_pppoes_mikrotik_id_foreign` FOREIGN KEY (`mikrotik_id`) REFERENCES `mikrotiks` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `menus`
--
ALTER TABLE `menus`
  ADD CONSTRAINT `menus_parent_id_foreign` FOREIGN KEY (`parent_id`) REFERENCES `menus` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `mikrotik_logs`
--
ALTER TABLE `mikrotik_logs`
  ADD CONSTRAINT `mikrotik_logs_mikrotik_id_foreign` FOREIGN KEY (`mikrotik_id`) REFERENCES `mikrotiks` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `payments`
--
ALTER TABLE `payments`
  ADD CONSTRAINT `payments_invoice_id_foreign` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `pembelian_items`
--
ALTER TABLE `pembelian_items`
  ADD CONSTRAINT `pembelian_items_pembelian_id_foreign` FOREIGN KEY (`pembelian_id`) REFERENCES `pembelians` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `role_permissions`
--
ALTER TABLE `role_permissions`
  ADD CONSTRAINT `role_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `syslogs`
--
ALTER TABLE `syslogs`
  ADD CONSTRAINT `syslogs_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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;

--
-- Ketidakleluasaan untuk tabel `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`);

--
-- Ketidakleluasaan untuk tabel `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;

