def main()

in scripts/add_awesome_azd/add_azd.py [0:0]


def main():
    with open("./workloads/azd_templates.json", "r") as f:
        data = json.load(f)

    new_workloads = []

    ## Get azd workloads
    for workload in data:
        if "msft" in workload["tags"]:
            new_workloads.append(workload)

    ## Add correct fields
    with open("./workloads/workloads.json", "r") as f:
        workloads = json.load(f)
    
    correct_keys = []
    unique_azd = {}
    for key in workloads[0].keys():
        correct_keys.append(key)

    for workload in workloads:
        unique_azd[workload["source"]] = workload

    ## Add correct keys for new_workloads
    for workload in new_workloads:
        if workload["source"] in unique_azd:
            keys = unique_azd[workload["source"]].keys()
            for key in keys:
                if key in workload:
                    unique_azd[workload["source"]][key] = workload[key]
        else:
            new_workload = {}
            for key in correct_keys:
                if key in workload:
                    new_workload[key] = workload[key]
                else:
                    match key:
                        case "tags":
                            new_workload[key] = []
                        case "products":
                            new_workload[key] = []
                        case "sampleQueries":
                            new_workload[key] = []
                        case "deploymentOptions":
                            new_workload[key] = ["AzD"]
                        case "sourceType":
                            new_workload[key] = "Azd"
                        case "deploymentConfig":
                            new_workload[key] = {}
                        case "id":
                            new_workload[key] = str(uuid.uuid4())
            workloads.append(new_workload)

    ## Write to file
    with open("./workloads/new_workloads.json", "w") as f:
        json.dump(workloads, f, indent=4)