const {combineRgb} = require("@companion-module/base");
module.exports = function () {
    let presets = {};

    // Pad Playback
    for (let i = 0; i < 100; i++) {
        presets[`pad-playback-${i}`] = {
            category: 'Pad Playback',
            name: `pad-playback-${i}`,
            type: 'button',
            previewStyle: {
                text: `Pad ${i + 1}`,
                size: '18',
                color: combineRgb(255, 255, 255),
                bgcolor: combineRgb(0, 0, 0),
            },
            style: {
                text: `$(PlayWall:pad-${i})`,
                size: '18',
                color: combineRgb(255, 255, 255),
                bgcolor: combineRgb(0, 0, 0),
            },
            steps: [
                {
                    down: [
                        {
                            actionId: 'pad_playback_action',
                            options: {
                                'type': 'NUMBER',
                                'index': i + 1
                            }
                        }
                    ]
                }
            ],
            feedbacks: [
                {
                    feedbackId: 'pad_status',
                    options: {
                        'type': 'NUMBER',
                        'index': i + 1
                    }
                }
            ]
        };
    }

    // Pages
    for (let i = 0; i < 20; i++) {
        presets[`page-set-${i}`] = {
            category: 'Pad Set',
            name: `page-set-${i}`,
            type: 'button',
            style: {
                text: `Seite ${i + 1}`,
                size: '18',
                color: combineRgb(255, 255, 255),
                bgcolor: combineRgb(0, 0, 0),
            },
            steps: [
                {
                    down: [
                        {
                            actionId: 'page_set_action',
                            options: {
                                'page': i + 1
                            }
                        }
                    ]
                }
            ],
            feedbacks: [
                {
                    feedbackId: 'page_active',
                    options: {
                        'index': i + 1
                    },
                    style: {
                        bgcolor: combineRgb(255, 0, 0),
                        color: combineRgb(255, 255, 255),
                    }
                }
            ]
        };
    }

    presets['pad-navigate-previous'] = {
        category: 'Page Navigate',
        name: 'pad-navigate-previous',
        type: 'button',
        style: {
            text: 'Zurück',
            size: '18',
            color: combineRgb(255, 255, 255),
            bgcolor: combineRgb(0, 0, 0),
        },
        steps: [
            {
                down: [
                    {
                        actionId: 'pad_navigate_action',
                        options: {
                            'type': 'PREVIOUS'
                        }
                    }
                ]
            }
        ]
    };
    presets['pad-navigate-next'] = {
        category: 'Page Navigate',
        name: 'pad-navigate-next',
        type: 'button',
        style: {
            text: 'Vor',
            size: '18',
            color: combineRgb(255, 255, 255),
            bgcolor: combineRgb(0, 0, 0),
        },
        steps: [
            {
                down: [
                    {
                        actionId: 'pad_navigate_action',
                        options: {
                            'type': 'NEXT'
                        }
                    }
                ]
            }
        ]
    }


    return presets;
};