"""Архів оцінювань — рольовий фільтр без Streamlit."""
from __future__ import annotations

from sqlmodel import Session, select

from db.session import get_engine
from models import Assessments, Companies


def get_assessments(company_id: int | None = None) -> list[dict]:
    """company_id=None → всі компанії (Admin/Expert); company_id=X → тільки X (CompanyRep)."""
    with Session(get_engine()) as s:
        companies = {c.id: c.name for c in s.exec(select(Companies)).all()}
        stmt = select(Assessments).order_by(Assessments.assessment_date.desc())
        if company_id is not None:
            stmt = stmt.where(Assessments.company_id == company_id)
        rows = s.exec(stmt).all()
        return [
            {
                "id": a.id,
                "company": companies.get(a.company_id, "?"),
                "date": a.assessment_date,
                "expert": a.expert or "—",
                "status": a.status,
                "level": a.certification_level,
            }
            for a in rows
        ]
