{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Lead workflow blueprint result",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "identity",
    "version",
    "assumptions",
    "calculation",
    "formulas",
    "workflow",
    "implementation",
    "template",
    "checklist",
    "limitations"
  ],
  "properties": {
    "identity": {
      "type": "object",
      "required": [
        "name",
        "kind",
        "modelUsed"
      ],
      "properties": {
        "name": {
          "const": "CiterLabs lead workflow planner"
        },
        "kind": {
          "const": "deterministic-rules-service"
        },
        "modelUsed": {
          "const": false
        }
      }
    },
    "version": {
      "const": "0.1.0"
    },
    "assumptions": {
      "$ref": "#/$defs/assumptions"
    },
    "calculation": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "monthlyEnquiries",
        "eligible",
        "currentHours",
        "proposedHours",
        "netHours",
        "setupRecoveryMonths",
        "capacityValue",
        "currency"
      ],
      "properties": {
        "monthlyEnquiries": {
          "type": "number",
          "minimum": 0
        },
        "eligible": {
          "type": "number",
          "minimum": 0
        },
        "currentHours": {
          "type": "number",
          "minimum": 0
        },
        "proposedHours": {
          "type": "number",
          "minimum": 0
        },
        "netHours": {
          "type": "number"
        },
        "setupRecoveryMonths": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0
        },
        "capacityValue": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        }
      }
    },
    "formulas": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "workflow": {
      "type": "array",
      "minItems": 7,
      "maxItems": 7,
      "items": {
        "type": "object",
        "required": [
          "step",
          "action",
          "review"
        ],
        "additionalProperties": false,
        "properties": {
          "step": {
            "type": "integer",
            "minimum": 1,
            "maximum": 7
          },
          "action": {
            "type": "string"
          },
          "review": {
            "type": "string"
          }
        }
      }
    },
    "implementation": {
      "type": "object",
      "required": [
        "start",
        "mode"
      ],
      "properties": {
        "start": {
          "type": "string"
        },
        "mode": {
          "type": "string"
        }
      }
    },
    "template": {
      "type": "string"
    },
    "checklist": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "limitations": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "assumptions": {
      "title": "Lead workflow blueprint assumptions",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "enquiriesPerWeek",
        "currentMinutes",
        "eligiblePercent",
        "draftMinutes",
        "reviewMinutes",
        "maintenanceHours",
        "setupHours",
        "hourlyCost",
        "existingTools",
        "sensitiveData"
      ],
      "properties": {
        "enquiriesPerWeek": {
          "type": "number",
          "minimum": 0,
          "maximum": 25000
        },
        "currentMinutes": {
          "type": "number",
          "minimum": 0,
          "maximum": 480
        },
        "eligiblePercent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "draftMinutes": {
          "type": "number",
          "minimum": 0,
          "maximum": 480
        },
        "reviewMinutes": {
          "type": "number",
          "minimum": 0,
          "maximum": 480
        },
        "maintenanceHours": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000
        },
        "setupHours": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000
        },
        "hourlyCost": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000
        },
        "existingTools": {
          "type": "array",
          "minItems": 1,
          "maxItems": 5,
          "uniqueItems": true,
          "items": {
            "enum": [
              "shared-inbox",
              "spreadsheet",
              "crm",
              "automation-platform",
              "none"
            ]
          },
          "allOf": [
            {
              "if": {
                "contains": {
                  "const": "none"
                }
              },
              "then": {
                "maxItems": 1
              }
            }
          ]
        },
        "sensitiveData": {
          "type": "boolean"
        }
      }
    }
  }
}