from typing import Dict

class InlineBuilder:
    def __init__(self):
        self.rows = []

    def row(self, *buttons: Dict[str, str]):
        self.rows.append({"buttons": list(buttons)})
        return self

    def button(self, id: str, text: str, type: str = "Simple") -> Dict[str, str]:
        return {"id": id, "type": type, "button_text": text}

    def build(self):
        return {"rows": self.rows}
from typing import List, Dict, Optional

class ChatKeypadBuilder:
    def __init__(self):
        self.rows: List[Dict[str, List[Dict[str, str]]]] = []

    def row(self, *buttons: Dict[str, str]) -> "ChatKeypadBuilder":
        """
        یک ردیف دکمه به کی‌پد اضافه می‌کند.
        ورودی: چند دیکشنری که نماینده دکمه‌ها هستند.
        """
        self.rows.append({"buttons": list(buttons)})
        return self

    def button(self, id: str, text: str, type: str = "Simple") -> Dict[str, str]:
        """
        دیکشنری یک دکمه می‌سازد.
        """
        return {"id": id, "type": type, "button_text": text}

    def build(
        self,
        resize_keyboard: bool = True,
        on_time_keyboard: bool = False
    ) -> Dict[str, object]:
        """
        ساختار نهایی chat_keypad را می‌سازد.
        """
        return {
            "rows": self.rows,
            "resize_keyboard": resize_keyboard,
            "on_time_keyboard": on_time_keyboard
        }
