"""Database models.""" from sqlalchemy import create_engine from sqlalchemy.orm import declarative_base, scoped_session, sessionmaker Base = declarative_base() engine = None db_session = None def init_db(database_url: str) -> None: """Initialize database connection.""" global engine, db_session engine = create_engine(database_url) session_factory = sessionmaker(bind=engine) db_session = scoped_session(session_factory) Base.query = db_session.query_property() def get_db(): """Get database session.""" return db_session def close_db(exception=None): """Close database session.""" if db_session: db_session.remove() def create_tables(): """Create all tables.""" from customer_portal.models import ( admin_user, booking, customer, otp, session, settings, ) Base.metadata.create_all(bind=engine)