diff --git a/app/dialogs/user.py b/app/bot.py similarity index 100% rename from app/dialogs/user.py rename to app/bot.py diff --git a/app/db/database.py b/app/db/database.py new file mode 100644 index 0000000..44a4551 --- /dev/null +++ b/app/db/database.py @@ -0,0 +1,12 @@ +from config import DATABASE_URL +from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine +from sqlalchemy.orm import declarative_base, sessionmaker + +engine = create_async_engine(DATABASE_URL, echo=True) +Base = declarative_base() +async_session = sessionmaker(bind=engine, expire_on_commit=False, class_=AsyncSession) + + +async def get_session() -> AsyncSession: + async with async_session() as session: + yield session diff --git a/app/database.py b/app/db/models.py similarity index 58% rename from app/database.py rename to app/db/models.py index e386b7a..25e6037 100644 --- a/app/database.py +++ b/app/db/models.py @@ -1,10 +1,14 @@ import datetime as dt -from sqlalchemy import BigInteger, DateTime, ForeignKey, create_engine, func -from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, sessionmaker +from sqlalchemy import ( + BigInteger, + DateTime, + ForeignKey, + func, +) +from sqlalchemy.orm import Mapped, mapped_column - -class Base(DeclarativeBase): ... +from app.db.database import Base class User(Base): @@ -33,22 +37,3 @@ class UserEvent(Base): DateTime(timezone=True), server_default=func.now() ) status: Mapped[str] = mapped_column(default="not confirmed") - -if __name__ == "__main__": - engine = create_engine("sqlite:///test.db") - SessionMaker = sessionmaker(engine) - Base.metadata.drop_all(engine) - Base.metadata.create_all(engine) - - with SessionMaker() as session: - user = User(fullname = "Shevkunov Daniil", tg_id=12023) - event = Event(title="Event") - - session.add_all([user, event]) - session.flush() - user_event = UserEvent(user=user.id, event=event.id) - session.add(user_event) - session.commit() - # with SessionMaker as session: - - \ No newline at end of file diff --git a/app/handlers.py b/app/dialogs/admin_dialog.py similarity index 100% rename from app/handlers.py rename to app/dialogs/admin_dialog.py diff --git a/app/main.py b/app/dialogs/user_dialog.py similarity index 100% rename from app/main.py rename to app/dialogs/user_dialog.py