import os import json from uuid import uuid4 from seed_profile import SeedProfile, GrowthStage from trait_normalizer import expressed_rgb_from_alleles PROFILE_FILE = os.path.join(os.path.dirname(__file__), "starter_profiles.json") class StarterSeedLoader: def __init__(self, catalog, name_generator): self.catalog = catalog self.name_generator = name_generator def load_starter_seeds(self): with open(PROFILE_FILE, "r") as f: starter_profiles = json.load(f) for profile in starter_profiles: alleles = profile["alleles"] leaf_rgb = expressed_rgb_from_alleles(alleles["LeafColor"]) bud_rgb = expressed_rgb_from_alleles(alleles["BudColor"]) base = profile["traits_base"] seed = SeedProfile( strain_name=profile["name"], type=profile["type"], alleles=alleles, stabilities=profile["stabilities"], thc=base["THC"], cbd=base["CBD"], yield_=base["Yield"], grow_time=base["GrowTime"], bud_color=bud_rgb, leaf_color=leaf_rgb, base_image_name=profile["base_image_name"], growth_stage=GrowthStage.SEED, lineage=(None, None), description=profile.get("description", ""), is_starter=True, ) self.catalog.add_seed(seed)