import uuid from typing import Any from app.db import SessionLocal from app.models import Job, JobStatus, Sample, Variant async def seed_job( variants: list[dict[str, Any]], status: JobStatus = JobStatus.succeeded ) -> uuid.UUID: """Insert a sample, a job and its variants; each variant dict overrides the defaults.""" async with SessionLocal() as s: sample = Sample(name=f"s-{uuid.uuid4()}", vcf_uri="gs://b/x.vcf.gz", assembly="GRCh38") job = Job(sample=sample, status=status) rows = [ Variant(job=job, **{"chrom": "22", "pos": 1, "ref": "A", "alt": "G", "annotations": {}} | v) for v in variants ] s.add_all([sample, job, *rows]) await s.commit() return job.id