package ru.kayashov.bar.bot.domain;

import ru.kayashov.bar.bot.domain.methods.AbstractDeleteMessage;
import ru.kayashov.bar.bot.domain.methods.AbstractInlineKeyboard;
import ru.kayashov.bar.bot.domain.methods.AbstractMethod;
import ru.kayashov.bar.bot.domain.methods.AbstractSendKeyboardMessage;
import ru.kayashov.bar.bot.domain.methods.AbstractSendMessage;

import java.util.List;

public interface Bot {

    default void methodExecute(List<? extends AbstractMethod> methods) {
        methods.forEach(x -> x.execute(this));
    }

    void deleteMessage(AbstractDeleteMessage abstractDeleteMessage);

    void sendMessage(AbstractSendMessage abstractSendMessage);

    void sendKeyboardMessage(AbstractSendKeyboardMessage keyboardMessage);

    void sendInlineKeyboard(AbstractInlineKeyboard keyboardMessage);
}
