"""
数据库会话 — SQLModel 同步引擎 + Session 工厂
"""

from sqlmodel import Session, SQLModel, create_engine

from app.core.config import settings

engine = create_engine(settings.DATABASE_URL, echo=False)


def init_db():
    """创建所有 SQLModel 表（仅开发用，生产由手写 SQL 管理）。"""
    SQLModel.metadata.create_all(engine)


def get_session():
    """FastAPI 依赖注入: 每个请求获取一个 Session，用完后关闭。"""
    with Session(engine) as session:
        yield session