require('dotenv').config({ path: '/opt/guanghulab-dingtalk/dingtalk-bot/.env' });
var express = require('express');
var axios = require('axios');
var app = express();
var PORT = process.env.PORT || 3007;

// 引入路由器（不用 AI 引擎）
var router = require('./message-router');

app.use(require('cors')());
app.use(require('body-parser').json());

// GET验证
app.get('/dingtalk/callback', (req, res) => {
    console.log('[DingTalk] GET验证请求');
    res.status(200).json({ success: true });
});

// POST接收消息并按分类回复
app.post('/dingtalk/callback', async (req, res) => {
    console.log('[DingTalk] POST收到消息');
    
    res.status(200).json({ success: true });
    
    const sessionWebhook = req.body.sessionWebhook;
    const senderNick = req.body.senderNick || '未知用户';
    const text = req.body.text || {};
    const content = text.content || '';
    
    if (!sessionWebhook) {
        console.log('[DingTalk] 没有 sessionWebhook，无法回复');
        return;
    }
    
    // 调用路由器分类
    const classification = router.classifyMessage(content);
    console.log('[DingTalk] 分类:', classification);
    
    // 根据分类生成不同回复
    let replyContent = '';
    if (classification.type === 'syslog') {
        replyContent = `📡 收到 SYSLOG：${classification.broadcastId || '未知编号'}`;
    } else if (classification.type === 'question') {
        replyContent = `❓ 收到问题，秋秋正在思考中...\n\n问题：${content}`;
    } else {
        replyContent = `@${senderNick} 收到你的消息：${content}`;
    }
    
    try {
        await axios.post(sessionWebhook, {
            msgtype: 'text',
            text: { content: replyContent }
        });
        console.log('[DingTalk] 回复成功');
    } catch (err) {
        console.error('[DingTalk] 回复失败:', err.message);
    }
});

app.listen(PORT, '0.0.0.0', () => {
    console.log('🚀 服务启动 http://localhost:' + PORT);
});
process.stdin.resume();
process.on('uncaughtException', (err) => { console.error('❌', err.message); });
