from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine from sqlalchemy.orm import DeclarativeBase import os class Base(DeclarativeBase): """Project ORM base model.""" DATABASE_URL = os.getenv('DATABASE_URL', 'postgresql+asyncpg://fifa_user:change_me@fifa2026-postgres:5432/fifa2026') def get_engine(database_url: str = DATABASE_URL): """Create asynchronous SQLAlchemy engine for production use.""" return create_async_engine(database_url, echo=False, pool_pre_ping=True) def get_session_factory(database_url: str = DATABASE_URL): """Create session factory for async query operations.""" engine = get_engine(database_url) return async_sessionmaker(bind=engine, class_=AsyncSession, expire_on_commit=False) SessionFactory = get_session_factory()