<?php
require '/var/www/.ssh/db.php'; // $pdo, $access_token

$logFile = '/var/www/html/line/line_debug.log';
$content = file_get_contents('php://input');
file_put_contents($logFile, date("Y-m-d H:i:s") . " RAW: " . $content . "\n", FILE_APPEND);

$events = json_decode($content, true);

if (!empty($events['events'])) {
    foreach ($events['events'] as $event) {

        if ($event['type'] == 'message' && $event['message']['type'] == 'text') {
            $replyToken  = $event['replyToken'];
            $userMessage = trim($event['message']['text']);
            $lineId = $event['source']['userId'];
            
            // 先檢查 LINE userId 是否已存在
            $stmt = $pdo->prepare("SELECT `username`,`nickname`,`email` FROM users WHERE line_id = ?");
            $stmt->execute([$lineId]);
            $user = $stmt->fetch(PDO::FETCH_ASSOC);

            file_put_contents($logFile, date("Y-m-d H:i:s") . " USER:" .$user['username']. " INPUT: {$userMessage}\n", FILE_APPEND);


            if ($user) {
                if ($userMessage === "1") {
                    // 查詢最近按摩時間
                    $sql = "SELECT massage_events.* 
                            FROM massage_events 
                            INNER JOIN department ON department.FullName = massage_events.full_name 
                            WHERE Email = ? AND event_date >= CURDATE()  ";
                    $stmt2 = $pdo->prepare($sql);
                    $stmt2->execute([$user['email']]);
                    $eventsData = $stmt2->fetchAll(PDO::FETCH_ASSOC);

                    if ($eventsData) {
                        $replyText = "🧘 最近按摩時間如下：\n\n";
                        foreach ($eventsData as $row) {
                            $dateStr = $row['event_date']; // 例如 '2025-09-03'
                            $weekDay = date('l', strtotime($dateStr)); // 星期英文
                            $weekDays = [
                                'Sunday' => '星期日',
                                'Monday' => '星期一',
                                'Tuesday' => '星期二',
                                'Wednesday' => '星期三',
                                'Thursday' => '星期四',
                                'Friday' => '星期五',
                                'Saturday' => '星期六'
                            ];
                            $weekDayZh = $weekDays[$weekDay];
                    
                            $replyText .= "Dear: {$row['full_name']}\n";
                            $replyText .= "按摩時間: {$dateStr} {$weekDayZh}\n";
                            $replyText .= "時段: {$row['event_time']}\n";
                            $replyText .= "------------------------\n";
                        }
                    } else {
                        $replyText = "目前沒有按摩紀錄。";
                    }
                    
                } else {
                    $replyText = "{$user['username']} ({$user['nickname']}) 您好！\n查詢最近按摩時間，請輸入數字【1】";
                }
            } else if (filter_var($userMessage, FILTER_VALIDATE_EMAIL)) {
                // 綁定 email
                $stmt = $pdo->prepare("SELECT `username`,`nickname` FROM users WHERE email = ?");
                $stmt->execute([$userMessage]);
                $userData = $stmt->fetch(PDO::FETCH_ASSOC);

                if ($userData) {
                    $update = $pdo->prepare("UPDATE users SET line_id = ? WHERE email = ?");
                    $update->execute([$lineId, $userMessage]);

                    $replyText = "✅恭喜您! {$userData['username']} {$userData['nickname']}  綁定成功！";                    
                    $replyText .= "\n查詢最近按摩時間，請輸入數字【1】";                    
                } else {
                    $replyText = "❌ 找不到此 email, 請先確認是否有註冊 http://10.1.1.100/user-register.php";
                }
            } else {
                $replyText = "請輸入您的註冊 Email 來綁定帳號，方便接收訊息通知。";
            }

            // 回覆 LINE
            $url = 'https://api.line.me/v2/bot/message/reply';
            $data = [
                'replyToken' => $replyToken,
                'messages' => [
                    ['type' => 'text', 'text' => $replyText]
                ],
            ];

            $headers = [
                'Content-Type: application/json',
                'Authorization: Bearer ' . $access_token,
            ];

            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
            curl_exec($ch);
            curl_close($ch);

            file_put_contents($logFile, date("Y-m-d H:i:s") . " REPLY: {$replyText}\n", FILE_APPEND);
        }
    }
}

echo "OK";
