const clinicAgent = require('./clinicAgent');

class BotLogic {
    constructor() {
        this.states = {}; // Context storage
    }

    setRescheduleOffer(patientId, offerData) {
        this.states[`${patientId}_offer`] = offerData;
    }

    async handleMessage(patientId, message) {
        if (!this.states[patientId]) {
            this.states[patientId] = { transcript: [] };
        }
        
        const context = this.states[patientId];
        context.transcript.push({ role: 'user', content: message });
        
        // Delegate to the Agent
        const response = await clinicAgent.processMessage(patientId, context.transcript);
        
        // Update context based on agent response
        if (response.reply) {
            context.transcript.push({ role: 'assistant', content: response.reply });
        }
        
        // Trim history to last 10 messages
        if (context.transcript.length > 10) {
            context.transcript = context.transcript.slice(-10);
        }

        return {
            reply: response.reply,
            buttons: [] // Deprecated in favor of dynamic conversation
        };
    }
}

module.exports = new BotLogic();
