--- Broadcast Request 2025-12-05 09:54:59 ---
REQUEST_METHOD: POST
POST Data: Array
(
    [csrf_token] => cf89f44a7068836b2c36d2bcd6480e0c1cd5e0842cf6ef823929199ae52d3394
    [target_type] => role
    [channel] => email
    [bot_id] => 1
    [target_user_id] => 
    [telegram_target] => all_users
    [subject] => PENGUMUMAN MIGRASI!
    [target_role_id] => 
    [body] => <!DOCTYPE html>
<html lang="id">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pemberitahuan Migrasi Sistem - Kaori HR</title>
</head>

<body
    style="margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f5f5f5;">
    <table role="presentation" width="100%" cellspacing="0" cellpadding="0"
        style="background-color: #f5f5f5; padding: 40px 20px;">
        <tr>
            <td align="center">
                <!-- Main Container -->
                <table role="presentation" width="600" cellspacing="0" cellpadding="0"
                    style="background-color: #ffffff; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.1);">

                    <!-- Header -->
                    <tr>
                        <td
                            style="background: linear-gradient(135deg, #3E2723 0%, #5D4037 100%); padding: 40px 30px; text-align: center;">
                            <img src="https://staging.kaori.web.id/assets/img/logo.png" alt="Kaori Logo" width="80"
                                style="margin-bottom: 15px;">
                            <h1 style="color: #ffffff; margin: 0; font-size: 28px; font-weight: 600;">Kaori HR System
                            </h1>
                            <p style="color: #D7CCC8; margin: 10px 0 0 0; font-size: 14px;">Sistem Manajemen SDM &
                                Absensi</p>
                        </td>
                    </tr>

                    <!-- Success Banner -->
                    <tr>
                        <td style="padding: 30px 30px 20px 30px; text-align: center;">
                            <div
                                style="background: linear-gradient(135deg, #4CAF50 0%, #66BB6A 100%); border-radius: 12px; padding: 25px; display: inline-block;">
                                <span style="font-size: 50px;">✅</span>
                                <h2 style="color: #ffffff; margin: 15px 0 5px 0; font-size: 22px;">Migrasi Berhasil!
                                </h2>
                                <p style="color: #E8F5E9; margin: 0; font-size: 14px;">Sistem telah diperbarui ke versi
                                    terbaru</p>
                            </div>
                        </td>
                    </tr>

                    <!-- Content -->
                    <tr>
                        <td style="padding: 20px 30px;">
                            <p style="color: #424242; font-size: 15px; line-height: 1.7; margin: 0 0 20px 0;">
                                Halo Rekan Kaori,
                            </p>
                            <p style="color: #424242; font-size: 15px; line-height: 1.7; margin: 0 0 20px 0;">
                                Kami dengan senang hati mengumumkan bahwa proses <strong>migrasi sistem Kaori
                                    HR</strong> telah berhasil diselesaikan. Seluruh data karyawan, absensi, dan shift
                                telah berhasil dipindahkan ke sistem baru.
                            </p>

                            <!-- Info Box -->
                            <div
                                style="background-color: #FFF8E1; border-left: 4px solid #FFC107; border-radius: 8px; padding: 20px; margin: 25px 0;">
                                <h3 style="color: #F57C00; margin: 0 0 10px 0; font-size: 16px;">⚠️ Status: Tahap
                                    Testing</h3>
                                <p style="color: #5D4037; font-size: 14px; line-height: 1.6; margin: 0;">
                                    Aplikasi saat ini masih dalam <strong>tahap testing</strong>. Jika Anda menemukan
                                    kendala atau bug, mohon segera laporkan kepada kami.
                                </p>
                            </div>

                            <!-- What's New -->
                            <h3 style="color: #3E2723; font-size: 16px; margin: 25px 0 15px 0;">🆕 Fitur Baru:</h3>
                            <ul style="color: #424242; font-size: 14px; line-height: 2; padding-left: 20px; margin: 0;">
                                <li>Tampilan dashboard yang lebih modern</li>
                                <li>Sistem absensi dengan foto & lokasi GPS</li>
                                <li>Manajemen shift yang lebih fleksibel</li>
                                <li>Notifikasi via Email & Telegram</li>
                                <li>Slip gaji digital</li>
                            </ul>

                            <!-- Transition Period -->
                            <div
                                style="background-color: #E3F2FD; border-left: 4px solid #2196F3; border-radius: 8px; padding: 20px; margin: 25px 0;">
                                <h3 style="color: #1565C0; margin: 0 0 10px 0; font-size: 16px;">📅 Masa Transisi (s/d
                                    28 Desember 2025)</h3>
                                <p style="color: #37474F; font-size: 14px; line-height: 1.6; margin: 0 0 15px 0;">
                                    Proses pembuatan <strong>Shift, Izin, dan Absensi</strong> masih bisa dilakukan di:
                                </p>
                                <p style="margin: 0 0 15px 0;">
                                    <a href="https://absen.kaori.web.id"
                                        style="color: #1565C0; font-weight: 600; text-decoration: none;">🔗
                                        absen.kaori.web.id</a>
                                </p>

                                <!-- Important Notice -->
                                <div
                                    style="background-color: #FFEBEE; border-radius: 8px; padding: 15px; margin-top: 15px;">
                                    <p style="color: #C62828; font-size: 14px; font-weight: 600; margin: 0 0 8px 0;">
                                        ⚠️ PENTING:
                                    </p>
                                    <p style="color: #B71C1C; font-size: 13px; line-height: 1.6; margin: 0;">
                                        <strong>SELURUH AKTIVITAS</strong> pembuatan Shift, Izin, dan Absensi
                                        <strong>JUGA HARUS</strong> dilakukan di <a href="https://staging.kaori.web.id"
                                            style="color: #B71C1C;">staging.kaori.web.id</a> sebagai backup data.
                                    </p>
                                </div>

                                <p style="color: #546E7A; font-size: 13px; margin: 15px 0 0 0;">
                                    Untuk informasi lebih detail, silakan hubungi <strong>HR</strong>.
                                </p>
                            </div>

                            <!-- Access Buttons -->
                            <div style="text-align: center; margin: 30px 0;">
                                <a href="https://staging.kaori.web.id"
                                    style="display: inline-block; background: linear-gradient(135deg, #5D4037 0%, #3E2723 100%); color: #ffffff; text-decoration: none; padding: 15px 40px; border-radius: 30px; font-size: 16px; font-weight: 600; box-shadow: 0 4px 15px rgba(62, 39, 35, 0.3); margin: 5px;">
                                    🚀 Akses Aplikasi Baru
                                </a>
                                <br><br>
                                <a href="https://staging.kaori.web.id/docs.html"
                                    style="display: inline-block; background: #ffffff; color: #5D4037; text-decoration: none; padding: 12px 30px; border-radius: 30px; font-size: 14px; font-weight: 600; border: 2px solid #5D4037; margin: 5px;">
                                    📖 Lihat Dokumentasi
                                </a>
                            </div>
                        </td>
                    </tr>

                    <!-- Contact Section -->
                    <tr>
                        <td style="padding: 0 30px 30px 30px;">
                            <div
                                style="background-color: #EFEBE9; border-radius: 12px; padding: 25px; text-align: center;">
                                <h3 style="color: #3E2723; margin: 0 0 15px 0; font-size: 16px;">📞 Butuh Bantuan?</h3>
                                <p style="color: #5D4037; font-size: 14px; line-height: 1.6; margin: 0 0 20px 0;">
                                    Jika ada kendala atau pertanyaan, silakan hubungi kami melalui:
                                </p>

                                <!-- Contact Options -->
                                <table role="presentation" width="100%" cellspacing="0" cellpadding="0">
                                    <tr>
                                        <td width="50%" style="padding: 10px;">
                                            <a href="mailto:kaori.aplikasi.notif@gmail.com"
                                                style="display: block; background-color: #ffffff; border-radius: 10px; padding: 15px; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,0.08);">
                                                <span style="font-size: 24px;">📧</span>
                                                <p
                                                    style="color: #3E2723; font-size: 12px; font-weight: 600; margin: 8px 0 5px 0;">
                                                    Email</p>
                                                <p
                                                    style="color: #795548; font-size: 11px; margin: 0; word-break: break-all;">
                                                    kaori.aplikasi.notif@gmail.com</p>
                                            </a>
                                        </td>
                                        <td width="50%" style="padding: 10px;">
                                            <a href="https://t.me/+zXwl4yV9jVExYjY1"
                                                style="display: block; background-color: #ffffff; border-radius: 10px; padding: 15px; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,0.08);">
                                                <span style="font-size: 24px;">💬</span>
                                                <p
                                                    style="color: #3E2723; font-size: 12px; font-weight: 600; margin: 8px 0 5px 0;">
                                                    Telegram</p>
                                                <p style="color: #795548; font-size: 11px; margin: 0;">Grup Support
                                                    Kaori</p>
                                            </a>
                                        </td>
                                    </tr>
                                </table>
                            </div>
                        </td>
                    </tr>

                    <!-- Footer -->
                    <tr>
                        <td style="background-color: #3E2723; padding: 25px 30px; text-align: center;">
                            <p style="color: #BCAAA4; font-size: 12px; margin: 0 0 10px 0;">
                                © 2025 Kaori Group. All rights reserved.
                            </p>
                            <p style="color: #8D6E63; font-size: 11px; margin: 0;">
                                Email ini dikirim secara otomatis. Mohon tidak membalas email ini.
                            </p>
                        </td>
                    </tr>

                </table>

                <!-- Footer Links -->
                <table role="presentation" width="600" cellspacing="0" cellpadding="0" style="margin-top: 20px;">
                    <tr>
                        <td align="center">
                            <p style="color: #9E9E9E; font-size: 11px; margin: 0;">
                                Anda menerima email ini karena terdaftar sebagai karyawan Kaori Group.
                            </p>
                        </td>
                    </tr>
                </table>

            </td>
        </tr>
    </table>
</body>

</html>
)

FILES Data: Array
(
    [attachment] => Array
        (
            [name] => 
            [full_path] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

)



--- Broadcast Request 2025-12-05 09:59:48 ---
REQUEST_METHOD: POST
Channel: email
Subject: PENGUMUMAN MIGRASI!
Step 1: CSRF check starting...
Step 2: CSRF passed!
Step 3: Creating broadcast with channel=email, targetType=role
Step 4: Broadcast created with ID: 18
Step 5: Processing queue...
Step 6: Queue processed!


--- Broadcast Request 2025-12-05 10:03:29 ---
REQUEST_METHOD: POST
Channel: email
Subject: PENGUMUMAN PENTING!
Step 1: CSRF check starting...
Step 2: CSRF passed!
Step 3: Creating broadcast with channel=email, targetType=role
Step 4: Broadcast created with ID: 19
Step 5: Processing queue...
ProcessQueue: Found 0 pending broadcasts
Step 6: Queue processed!


--- Broadcast Request 2025-12-05 10:08:05 ---
REQUEST_METHOD: POST
Channel: email
Subject: PENGUMUMAN MIGRASI!
Step 1: CSRF check starting...
Step 2: CSRF passed!
Step 3: Creating broadcast with channel=email, targetType=role
CreateBroadcast: Created ID=20, scheduled_at=NULL
Step 4: Broadcast created with ID: 20
Step 5: Processing queue...
ProcessQueue: PHP time=2025-12-05 10:08:05, MySQL time=2025-12-05 09:08:05
ProcessQueue: Found 1 pending broadcasts
DEBUG All pending: Array
(
    [0] => Array
        (
            [id] => 15
            [subject] => PENGUMUMAN PENTING! MIGRASI TELAH TIBA
            [status] => pending
            [scheduled_at] => 2025-12-05 09:24:44
        )

    [1] => Array
        (
            [id] => 16
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:50:13
        )

    [2] => Array
        (
            [id] => 17
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:54:59
        )

    [3] => Array
        (
            [id] => 18
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:59:48
        )

    [4] => Array
        (
            [id] => 19
            [subject] => PENGUMUMAN PENTING!
            [status] => pending
            [scheduled_at] => 2025-12-05 10:03:29
        )

    [5] => Array
        (
            [id] => 20
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 
        )

)

Processing broadcast ID: 20, Channel: email, Subject: PENGUMUMAN MIGRASI!
=== sendEmailBroadcast START for ID: 20 ===
Target: ALL USERS, Found 41 users
=== RESULT: Success=41, Failed=0 ===
Sent to: rayhan.udin19@gmail.com, mhfrgwnn001@gmail.com, hiken750@gmail.com, ma598987@gmail.com, chasanabdillah18@gmail.com, habirjaya77@gmail.com, apipyunus05@gmail.com, taufiqramadham5@gmail.com, mansurker23@gmail.com, muhadnilnizar@gmail.com, agafigin@gmail.com, 0019wawan@gmail.com, wl_cb9cb74018cc@kaori.local, pikar524@gmail.com, muhammadafdhal557@gmail.com, farhanzlqrm462@gmail.com, rasul.alamsyah@gmail.com, akbar.andipa11@gmail.com, wl_1cd8e803a5b5@kaori.local, wl_4e9af1f2d53b@kaori.local, wl_8a2c19e8d8ce@kaori.local, farelmuhamad99@gmail.com, abizarnafara26@gmail.com, bar01@qa.example.test, ekoprstio18@gmail.com, rafiulmustar@gmail.com, anggaekas493@gmail.com, wollesgaming@gmail.com, rezky20031308@icloud.com, marhamulihza@icloud.com, algaffar0049@gmail.com, maherkw919@gmail.com, heruhermawan141@gmail.com, fitrakaleng@gmail.com, audimaulana3@gmail.con, andi95utta@gmail.com, aryariyang12@gmail.com, zackyfitrahr@gmail.com, ahmadhisyam56789@gmail.com, armanmaulana1701@gmail.com, kaori.aplikasi.notif@gmail.com
=== sendEmailBroadcast END ===

Step 6: Queue processed!


--- Broadcast Request 2025-12-05 10:25:35 ---
REQUEST_METHOD: POST
Channel: email
Subject: MIGRASI TELEGRAM
Step 1: CSRF check starting...
Step 2: CSRF passed!
Step 3: Creating broadcast with channel=email, targetType=role
CreateBroadcast: Created ID=21, scheduled_at=NULL
Step 4: Broadcast created with ID: 21
Step 5: Processing queue...
ProcessQueue: PHP time=2025-12-05 10:25:35, MySQL time=2025-12-05 09:25:35
ProcessQueue: Found 2 pending broadcasts
DEBUG All pending: Array
(
    [0] => Array
        (
            [id] => 15
            [subject] => PENGUMUMAN PENTING! MIGRASI TELAH TIBA
            [status] => pending
            [scheduled_at] => 2025-12-05 09:24:44
        )

    [1] => Array
        (
            [id] => 16
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:50:13
        )

    [2] => Array
        (
            [id] => 17
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:54:59
        )

    [3] => Array
        (
            [id] => 18
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:59:48
        )

    [4] => Array
        (
            [id] => 19
            [subject] => PENGUMUMAN PENTING!
            [status] => pending
            [scheduled_at] => 2025-12-05 10:03:29
        )

    [5] => Array
        (
            [id] => 21
            [subject] => MIGRASI TELEGRAM
            [status] => pending
            [scheduled_at] => 
        )

)

Processing broadcast ID: 15, Channel: email, Subject: PENGUMUMAN PENTING! MIGRASI TELAH TIBA
=== sendEmailBroadcast START for ID: 15 ===
Target: ALL USERS, Found 41 users


--- Broadcast Request 2025-12-05 10:28:20 ---
REQUEST_METHOD: POST
Channel: email
Subject: MIGRASI TELEGRAM
Step 1: CSRF check starting...
Step 2: CSRF passed!
Step 3: Creating broadcast with channel=email, targetType=role
CreateBroadcast: Created ID=22, scheduled_at=NULL
Step 4: Broadcast created with ID: 22
Step 5: Processing queue...
ProcessQueue: PHP time=2025-12-05 10:28:20, MySQL time=2025-12-05 09:28:20
ProcessQueue: Found 2 pending broadcasts
DEBUG All pending: Array
(
    [0] => Array
        (
            [id] => 16
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:50:13
        )

    [1] => Array
        (
            [id] => 17
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:54:59
        )

    [2] => Array
        (
            [id] => 18
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:59:48
        )

    [3] => Array
        (
            [id] => 19
            [subject] => PENGUMUMAN PENTING!
            [status] => pending
            [scheduled_at] => 2025-12-05 10:03:29
        )

    [4] => Array
        (
            [id] => 21
            [subject] => MIGRASI TELEGRAM
            [status] => pending
            [scheduled_at] => 
        )

    [5] => Array
        (
            [id] => 22
            [subject] => MIGRASI TELEGRAM
            [status] => pending
            [scheduled_at] => 
        )

)

Processing broadcast ID: 21, Channel: email, Subject: MIGRASI TELEGRAM
=== sendEmailBroadcast START for ID: 21 ===
Target: ALL USERS, Found 41 users


--- Broadcast Request 2025-12-05 10:29:38 ---
REQUEST_METHOD: POST
Channel: email
Subject: MIGRASI TELEGRAM
Step 1: CSRF check starting...
Step 2: CSRF passed!
Step 3: Creating broadcast with channel=email, targetType=role
CreateBroadcast: Created ID=23, scheduled_at=NULL
Step 4: Broadcast created with ID: 23
Step 5: Processing queue...
ProcessQueue: PHP time=2025-12-05 10:29:38, MySQL time=2025-12-05 09:29:38
ProcessQueue: Found 2 pending broadcasts
DEBUG All pending: Array
(
    [0] => Array
        (
            [id] => 16
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:50:13
        )

    [1] => Array
        (
            [id] => 17
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:54:59
        )

    [2] => Array
        (
            [id] => 18
            [subject] => PENGUMUMAN MIGRASI!
            [status] => pending
            [scheduled_at] => 2025-12-05 09:59:48
        )

    [3] => Array
        (
            [id] => 19
            [subject] => PENGUMUMAN PENTING!
            [status] => pending
            [scheduled_at] => 2025-12-05 10:03:29
        )

    [4] => Array
        (
            [id] => 22
            [subject] => MIGRASI TELEGRAM
            [status] => pending
            [scheduled_at] => 
        )

    [5] => Array
        (
            [id] => 23
            [subject] => MIGRASI TELEGRAM
            [status] => pending
            [scheduled_at] => 
        )

)

Processing broadcast ID: 22, Channel: email, Subject: MIGRASI TELEGRAM
=== sendEmailBroadcast START for ID: 22 ===
Target: ALL USERS, Found 41 users
