require('dotenv').config() const cron = require('node-cron') const express = require('express') const { handleWebhook } = require('./messageHandler') const { loadDiensten } = require('./dienstService') const { resetDay, getYesterdayTotal } = require('./dailyStats') const { sendTextMessage } = require('./whatsappApi') const app = express() app.use(express.json({ limit: '10mb' })) app.post('/webhook', async (req, res) => { try { await handleWebhook(req.body) res.json({ success: true }) } catch (err) { console.error('Webhook processing error:', err.message) res.status(500).json({ success: false, error: err.message }) } }) app.get('/health', (req, res) => { res.json({ status: 'ok' }) }) const PORT = process.env.WEBHOOK_PORT || 3002 loadDiensten() cron.schedule('0 10 * * *', () => { const adminNumber = process.env.ADMIN_NUMBER if (!adminNumber) { console.error('ADMIN_NUMBER not configured, skipping daily summary') return } resetDay() const total = getYesterdayTotal() sendTextMessage(adminNumber, `Aantal dienstaanvragen gisteren: ${total}`) .then(() => console.log(`Daily summary sent: ${total} requests`)) .catch(err => console.error('Failed to send daily summary:', err.message)) }) app.listen(PORT, () => { console.log(`dienst-bot listening on port ${PORT}`) console.log(`Allowed group: ${process.env.ALLOWED_GROUP}`) console.log(`Bot name: ${process.env.BOT_NAME}`) console.log('Daily summary cron job scheduled for 10:00') })