/**
 * سیستم keyboard و inline buttons حرفه‌ای
 */

// Keyboard اصلی برای دستورات سریع
function getMainKeyboard() {
    return {
        keyboard: [
            [
                { text: '📅 کارهای امروز' },
                { text: '📊 گزارش' }
            ],
            [
                { text: '📈 آمار' },
                { text: '💡 پیشنهاد' }
            ],
            [
                { text: '💪 انگیزشی' },
                { text: '❓ راهنما' }
            ]
        ],
        resize_keyboard: true,
        one_time_keyboard: false
    };
}

// Keyboard برای کار جدید اضافه شده
function getTaskKeyboard(taskIndex) {
    return {
        inline_keyboard: [
            [
                { text: 'حواسم هست ✅', callback_data: `aware|${taskIndex}` },
                { text: 'انجام شد 🎉', callback_data: `done|${taskIndex}` }
            ]
        ]
    };
}

// Keyboard هوشمند برای یادآوری (بر اساس وضعیت کاربر)
function getSmartReminderKeyboard(taskIndex, userStats = null) {
    const buttons = [
        [
            { text: 'حواسم هست ✅', callback_data: `aware|${taskIndex}` },
            { text: 'انجام شد 🎉', callback_data: `done|${taskIndex}` }
        ]
    ];

    // اضافه کردن دکمه‌های اضافی بر اساس وضعیت
    if (userStats && userStats.points > 0) {
        buttons.push([
            { text: '📊 آمار من', callback_data: `stats|${taskIndex}` }
        ]);
    }

    return {
        inline_keyboard: buttons
    };
}

// Keyboard برای کار انجام شده
function getCompletedTaskKeyboard(taskIndex) {
    return {
        inline_keyboard: [
            [
                { text: '✅ انجام شده', callback_data: `done|${taskIndex}`, disabled: true }
            ]
        ]
    };
}

// Keyboard برای کارهایی که حواس کاربر هست
function getAwareTaskKeyboard(taskIndex) {
    return {
        inline_keyboard: [
            [
                { text: 'حواسم هست ✅', callback_data: `aware|${taskIndex}`, disabled: true },
                { text: 'انجام شد 🎉', callback_data: `done|${taskIndex}` }
            ]
        ]
    };
}

// Keyboard برای گزارش
function getReportKeyboard() {
    return {
        inline_keyboard: [
            [
                { text: '📊 گزارش امروز', callback_data: 'report|today' },
                { text: '📅 گزارش هفته', callback_data: 'report|week' }
            ],
            [
                { text: '🏆 آمار کامل', callback_data: 'stats|full' }
            ]
        ]
    };
}

// Keyboard برای پیام‌های انگیزشی
function getMotivationKeyboard() {
    return {
        inline_keyboard: [
            [
                { text: '💪 بیشتر انگیزه بده!', callback_data: 'motivate|more' },
                { text: '📊 آمار من', callback_data: 'stats|quick' }
            ]
        ]
    };
}

// Keyboard برای پیشنهادات
function getSuggestionsKeyboard() {
    return {
        inline_keyboard: [
            [
                { text: '💡 پیشنهاد جدید', callback_data: 'suggest|new' },
                { text: '📋 لیست کارها', callback_data: 'today|quick' }
            ]
        ]
    };
}

// Keyboard برای سناریوها
function getScenarioKeyboard(scenarioType) {
    if (scenarioType === 'advice') {
        return {
            inline_keyboard: [
                [
                    { text: 'بله 😊', callback_data: 'scenario|advice|yes' },
                    { text: 'نه ممنون 😅', callback_data: 'scenario|advice|no' }
                ]
            ]
        };
    } else if (scenarioType === 'complaint') {
        return {
            inline_keyboard: [
                [
                    { text: 'آره 😂', callback_data: 'scenario|complaint|yes' },
                    { text: 'نه 😊', callback_data: 'scenario|complaint|no' }
                ]
            ]
        };
    }
    
    return null;
}

// Helper برای ایجاد keyboard ساده
function createInlineKeyboard(buttons) {
    return {
        inline_keyboard: buttons
    };
}

// Helper برای ایجاد keyboard متنی ساده
function createKeyboard(buttons, options = {}) {
    return {
        keyboard: buttons,
        resize_keyboard: options.resize_keyboard !== false,
        one_time_keyboard: options.one_time_keyboard || false,
        selective: options.selective || false
    };
}

module.exports = {
    getMainKeyboard,
    getTaskKeyboard,
    getSmartReminderKeyboard,
    getCompletedTaskKeyboard,
    getAwareTaskKeyboard,
    getReportKeyboard,
    getMotivationKeyboard,
    getSuggestionsKeyboard,
    getScenarioKeyboard,
    createInlineKeyboard,
    createKeyboard
};

