Initial public release
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s

This commit is contained in:
Jens
2026-08-31 21:56:53 +02:00
commit faeb58ef6d
1386 changed files with 263203 additions and 0 deletions
@@ -0,0 +1,47 @@
from __future__ import annotations
from uuid import UUID
from sqlalchemy.orm import Session
from app.models import Metric, QualityCheck
from app.schemas.qa import MetricRead, QualityCheckRead
class QualityCheckService:
@staticmethod
def list_quality_checks(
db: Session,
*,
project_id: UUID,
limit: int = 50,
offset: int = 0,
) -> tuple[list[QualityCheckRead], int]:
query = (
db.query(QualityCheck)
.filter(QualityCheck.project_id == project_id)
.order_by(QualityCheck.created_at.desc())
)
total = query.count()
rows = query.offset(offset).limit(limit).all()
if not rows:
return [], total
quality_check_ids = [row.id for row in rows]
metrics_by_quality_check: dict[UUID, list[MetricRead]] = {row.id: [] for row in rows}
metrics = (
db.query(Metric)
.filter(Metric.quality_check_id.in_(quality_check_ids))
.order_by(Metric.created_at.asc())
.all()
)
for metric in metrics:
if metric.quality_check_id in metrics_by_quality_check:
metrics_by_quality_check[metric.quality_check_id].append(MetricRead.model_validate(metric))
return [
QualityCheckRead.model_validate(row).model_copy(
update={"metrics": metrics_by_quality_check.get(row.id, [])}
)
for row in rows
], total