"""结果记录数据访问：目标库 render_record 查询。"""
from sqlalchemy import func, select
from sqlalchemy.orm import Session

from app.models import RenderRecord


def query_records(
    session: Session,
    *,
    enterprise_id: int | None = None,
    status: str | None = None,
    page: int = 1,
    size: int = 20,
) -> tuple[int, list[RenderRecord]]:
    """分页查询结果记录，返回 (总数, 当前页记录)。"""
    stmt = select(RenderRecord)
    if enterprise_id is not None:
        stmt = stmt.where(RenderRecord.enterprise_id == enterprise_id)
    if status:
        stmt = stmt.where(RenderRecord.status == status)

    total = session.scalar(select(func.count()).select_from(stmt.subquery())) or 0
    rows = session.scalars(
        stmt.order_by(RenderRecord.id.desc()).offset((page - 1) * size).limit(size)
    ).all()
    return total, rows
