"""Write remaining missing faces to JSON shards."""
import importlib
import json
import sys
from pathlib import Path

sys.path.insert(0, r"C:\Users\c5717\Downloads\modgle-demo-faces")
import generate_faces as gf

importlib.reload(gf)

root = Path(r"C:\Users\c5717\Downloads\modgle-demo-faces")
bad = root / "DEMO0934.jpg"
if bad.exists() and bad.stat().st_size < 8000:
    bad.unlink()

have = set()
for p in root.glob("DEMO????.jpg"):
    if len(p.stem) == 8 and p.stat().st_size > 8000:
        have.add(p.stem)

people = gf.load_people()
todo = []
for p in people:
    if p["demo_id"] in have:
        continue
    prompt, kind = gf.build_prompt(p)
    todo.append(
        {
            "demo_id": p["demo_id"],
            "display_name": p["display_name"],
            "gender": p["gender"],
            "age": int(p["age"]) if p["age"] is not None else 30,
            "country": p["country"],
            "kind": kind,
            "prompt": prompt,
        }
    )

print("todo", len(todo))
(root / "remaining_all.json").write_text(json.dumps(todo, indent=2), encoding="utf-8")
n = 3
for i in range(n):
    shard = todo[i::n]
    path = root / f"finish_{i+1}.json"
    path.write_text(json.dumps(shard, indent=2), encoding="utf-8")
    print(path.name, len(shard), shard[0]["demo_id"] if shard else "-", "->", shard[-1]["demo_id"] if shard else "-")
