Create authorization system

This commit is contained in:
2026-01-05 23:31:36 +03:00
parent d438f7bf5b
commit 2e14a7f364
39 changed files with 2500 additions and 9 deletions
+27
View File
@@ -0,0 +1,27 @@
from datetime import datetime
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, sessionmaker
from sqlalchemy.engine import create_engine
from sqlalchemy import MetaData, NullPool, func
from app.config import settings
from app.constants import DB_NAMING_CONVENTION
class Base(DeclarativeBase):
metadata = MetaData(naming_convention=DB_NAMING_CONVENTION)
created_at: Mapped[datetime] = mapped_column(server_default=func.now())
updated_at: Mapped[datetime] = mapped_column(server_default=func.now(), onupdate=func.now())
if settings.MODE == "TEST":
DATABASE_URL = settings.TEST_DATABASE_URL
DATABASE_PARAMS = {"poolclass": NullPool}
else:
DATABASE_URL = settings.DATABASE_URL
DATABASE_PARAMS = {}
async_engine = create_async_engine(DATABASE_URL, **DATABASE_PARAMS)
async_session_maker = async_sessionmaker(async_engine, expire_on_commit=False)