Prefer complete demo workflow state
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-17 01:03:06 +02:00
parent c6c8a54931
commit 014d088866
4 changed files with 42 additions and 2 deletions
+31 -1
View File
@@ -51,12 +51,42 @@ class DemoWorkflowService:
@staticmethod
def _find_existing_project(db: Session) -> Project | None:
return (
projects = (
db.query(Project)
.filter(Project.name == DemoWorkflowService.PROJECT_NAME)
.filter(Project.status != "deleted")
.order_by(Project.created_at.asc())
.all()
)
for project in projects:
if DemoWorkflowService._has_complete_demo_state(db, project.id):
return project
return projects[0] if projects else None
@staticmethod
def _has_complete_demo_state(db: Session, project_id: UUID) -> bool:
area = db.query(Area).filter(Area.project_id == project_id).first()
reference = (
db.query(Dataset)
.filter(Dataset.project_id == project_id)
.filter(Dataset.dataset_role == "reference")
.filter(Dataset.source_name == "fixture")
.first()
)
candidate = (
db.query(Dataset)
.filter(Dataset.project_id == project_id)
.filter(Dataset.dataset_role == "source")
.filter(Dataset.source_name == "fixture")
.first()
)
quality_check = (
db.query(QualityCheck)
.filter(QualityCheck.project_id == project_id)
.filter(QualityCheck.check_type == "demo_candidate_vs_reference")
.first()
)
return bool(area and reference and candidate and quality_check)
@staticmethod
def _create_area(db: Session, project_id: UUID) -> Area: