init commit

This commit is contained in:
2025-08-17 11:44:54 +09:00
commit 5592014530
59 changed files with 3175 additions and 0 deletions

20
app/models/keyboard.py Normal file
View File

@@ -0,0 +1,20 @@
from __future__ import annotations
from sqlalchemy import ForeignKey, Integer, String
from sqlalchemy.orm import Mapped, mapped_column
from app.db.session import Base
class Keyboard(Base):
__tablename__ = "keyboards"
id: Mapped[int] = mapped_column(primary_key=True)
owner_id: Mapped[int] = mapped_column(ForeignKey("users.id", ondelete="CASCADE"))
name: Mapped[str] = mapped_column(String(64))
class KeyboardButton(Base):
__tablename__ = "keyboard_buttons"
id: Mapped[int] = mapped_column(primary_key=True)
keyboard_id: Mapped[int] = mapped_column(ForeignKey("keyboards.id", ondelete="CASCADE"))
text: Mapped[str] = mapped_column(String(128))
url: Mapped[str] = mapped_column(String(512))
order_index: Mapped[int] = mapped_column(Integer, default=0)