{
  "meta": {
    "options": {
      "linkedFile": "/views/sign-up.ejs",
      "linkedForm": "signup_form"
    },
    "$_GET": [
      {
        "type": "text",
        "name": "sort"
      },
      {
        "type": "text",
        "name": "dir"
      }
    ],
    "$_POST": [
      {
        "type": "text",
        "fieldName": "razao_social",
        "options": {
          "rules": {}
        },
        "name": "razao_social"
      },
      {
        "type": "text",
        "fieldName": "nome_fantasia",
        "options": {
          "rules": {}
        },
        "name": "nome_fantasia"
      },
      {
        "type": "text",
        "fieldName": "nome_polo",
        "options": {
          "rules": {}
        },
        "name": "nome_polo"
      },
      {
        "type": "text",
        "fieldName": "cnpj",
        "options": {
          "rules": {}
        },
        "name": "cnpj"
      },
      {
        "type": "text",
        "fieldName": "whatsapp",
        "options": {
          "rules": {}
        },
        "name": "whatsapp"
      },
      {
        "type": "text",
        "fieldName": "logradouro",
        "options": {
          "rules": {}
        },
        "name": "logradouro"
      },
      {
        "type": "text",
        "fieldName": "numero",
        "options": {
          "rules": {}
        },
        "name": "numero"
      },
      {
        "type": "text",
        "fieldName": "cep",
        "options": {
          "rules": {}
        },
        "name": "cep"
      },
      {
        "type": "text",
        "fieldName": "complemento",
        "name": "complemento"
      },
      {
        "type": "text",
        "fieldName": "bairro",
        "options": {
          "rules": {}
        },
        "name": "bairro"
      },
      {
        "type": "text",
        "fieldName": "cidade",
        "options": {
          "rules": {}
        },
        "name": "cidade"
      },
      {
        "type": "text",
        "fieldName": "nome_completo",
        "options": {
          "rules": {}
        },
        "name": "nome_completo"
      },
      {
        "type": "text",
        "fieldName": "nome_tratamento",
        "options": {
          "rules": {}
        },
        "name": "nome_tratamento"
      },
      {
        "type": "text",
        "fieldName": "email",
        "options": {
          "rules": {}
        },
        "name": "email"
      },
      {
        "type": "text",
        "fieldName": "senha",
        "options": {
          "rules": {}
        },
        "name": "senha"
      },
      {
        "type": "text",
        "fieldName": "confirmar_senha",
        "options": {
          "rules": {}
        },
        "name": "confirmar_senha"
      },
      {
        "type": "number",
        "fieldName": "polos_adicionais",
        "options": {
          "rules": {}
        },
        "name": "polos_adicionais"
      },
      {
        "type": "number",
        "fieldName": "valor_plano",
        "multiple": true,
        "options": {
          "rules": {}
        },
        "name": "valor_plano"
      },
      {
        "type": "number",
        "fieldName": "valor_polos",
        "options": {
          "rules": {}
        },
        "name": "valor_polos"
      },
      {
        "type": "number",
        "fieldName": "valor_total",
        "options": {
          "rules": {}
        },
        "name": "valor_total"
      },
      {
        "type": "text",
        "fieldName": "estado",
        "options": {
          "rules": {}
        },
        "name": "estado"
      },
      {
        "type": "text",
        "fieldName": "plano",
        "options": {
          "rules": {}
        },
        "name": "plano"
      },
      {
        "type": "text",
        "fieldName": "id_plano_escolhido",
        "name": "id_plano_escolhido"
      }
    ]
  },
  "exec": {
    "steps": [
      {
        "name": "hash",
        "module": "crypto",
        "action": "passwordHash",
        "options": {
          "password": "{{$_POST.senha}}",
          "algo": "argon2id"
        },
        "outputType": "text"
      },
      {
        "name": "insert_empresa",
        "module": "dbupdater",
        "action": "insert",
        "options": {
          "connection": "postrgress",
          "sql": {
            "type": "insert",
            "values": [
              {
                "table": "empresas",
                "column": "razao_social",
                "type": "text",
                "value": "{{$_POST.razao_social}}"
              },
              {
                "table": "empresas",
                "column": "nome_fantasia",
                "type": "text",
                "value": "{{$_POST.nome_fantasia}}"
              },
              {
                "table": "empresas",
                "column": "nome_polo",
                "type": "text",
                "value": "{{$_POST.nome_polo}}"
              },
              {
                "table": "empresas",
                "column": "cnpj",
                "type": "text",
                "value": "{{$_POST.cnpj}}"
              },
              {
                "table": "empresas",
                "column": "cep",
                "type": "text",
                "value": "{{$_POST.cep}}"
              },
              {
                "table": "empresas",
                "column": "whatsapp",
                "type": "text",
                "value": "{{$_POST.whatsapp}}"
              },
              {
                "table": "empresas",
                "column": "status_empresa",
                "type": "text",
                "value": "{{'Pagamento Pendente'}}"
              },
              {
                "table": "empresas",
                "column": "logradouro",
                "type": "text",
                "value": "{{$_POST.logradouro}}"
              },
              {
                "table": "empresas",
                "column": "numero",
                "type": "text",
                "value": "{{$_POST.numero}}"
              },
              {
                "table": "empresas",
                "column": "complemento",
                "type": "text",
                "value": "{{$_POST.complemento}}"
              },
              {
                "table": "empresas",
                "column": "bairro",
                "type": "text",
                "value": "{{$_POST.bairro}}"
              },
              {
                "table": "empresas",
                "column": "cidade",
                "type": "text",
                "value": "{{$_POST.cidade}}"
              },
              {
                "table": "empresas",
                "column": "uf",
                "type": "text",
                "value": "{{$_POST.estado}}"
              }
            ],
            "table": "empresas",
            "returning": "id_empresa",
            "query": "insert into \"empresas\" (\"bairro\", \"cep\", \"cidade\", \"cnpj\", \"complemento\", \"logradouro\", \"nome_fantasia\", \"nome_polo\", \"numero\", \"razao_social\", \"status_empresa\", \"uf\", \"whatsapp\") values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) returning \"id_empresa\"",
            "params": [
              {
                "name": ":P1",
                "type": "expression",
                "value": "{{$_POST.razao_social}}",
                "test": ""
              },
              {
                "name": ":P2",
                "type": "expression",
                "value": "{{$_POST.nome_fantasia}}",
                "test": ""
              },
              {
                "name": ":P3",
                "type": "expression",
                "value": "{{$_POST.nome_polo}}",
                "test": ""
              },
              {
                "name": ":P4",
                "type": "expression",
                "value": "{{$_POST.cnpj}}",
                "test": ""
              },
              {
                "name": ":P5",
                "type": "expression",
                "value": "{{$_POST.cep}}",
                "test": ""
              },
              {
                "name": ":P6",
                "type": "expression",
                "value": "{{$_POST.whatsapp}}",
                "test": ""
              },
              {
                "name": ":P7",
                "type": "expression",
                "value": "{{'Pagamento Pendente'}}",
                "test": ""
              },
              {
                "name": ":P8",
                "type": "expression",
                "value": "{{$_POST.logradouro}}",
                "test": ""
              },
              {
                "name": ":P9",
                "type": "expression",
                "value": "{{$_POST.numero}}",
                "test": ""
              },
              {
                "name": ":P10",
                "type": "expression",
                "value": "{{$_POST.complemento}}",
                "test": ""
              },
              {
                "name": ":P11",
                "type": "expression",
                "value": "{{$_POST.bairro}}",
                "test": ""
              },
              {
                "name": ":P12",
                "type": "expression",
                "value": "{{$_POST.cidade}}",
                "test": ""
              },
              {
                "name": ":P13",
                "type": "expression",
                "value": "{{$_POST.estado}}",
                "test": ""
              }
            ]
          }
        },
        "meta": [
          {
            "name": "identity",
            "type": "text"
          },
          {
            "name": "affected",
            "type": "number"
          }
        ]
      },
      {
        "name": "update",
        "module": "dbupdater",
        "action": "update",
        "options": {
          "connection": "postrgress",
          "sql": {
            "type": "update",
            "values": [
              {
                "table": "empresas",
                "column": "empresa_matriz",
                "type": "text",
                "value": "{{insert_empresa.identity}}"
              }
            ],
            "table": "empresas",
            "wheres": {
              "condition": "AND",
              "rules": [
                {
                  "id": "id_empresa",
                  "field": "id_empresa",
                  "type": "string",
                  "operator": "equal",
                  "value": "{{insert_empresa.identity}}",
                  "data": {
                    "column": "id_empresa"
                  },
                  "operation": "="
                }
              ],
              "conditional": null,
              "valid": true
            },
            "returning": "id_empresa",
            "query": "update \"empresas\" set \"empresa_matriz\" = ? where \"id_empresa\" = ?",
            "params": [
              {
                "name": ":P1",
                "type": "expression",
                "value": "{{insert_empresa.identity}}",
                "test": ""
              },
              {
                "operator": "equal",
                "type": "expression",
                "name": ":P2",
                "value": "{{insert_empresa.identity}}",
                "test": ""
              }
            ]
          }
        },
        "meta": [
          {
            "name": "affected",
            "type": "number"
          }
        ]
      },
      {
        "name": "insert_usuario",
        "module": "dbupdater",
        "action": "insert",
        "options": {
          "connection": "postrgress",
          "sql": {
            "type": "insert",
            "values": [
              {
                "table": "usuarios",
                "column": "nome_completo",
                "type": "text",
                "value": "{{$_POST.nome_completo}}"
              },
              {
                "table": "usuarios",
                "column": "email",
                "type": "text",
                "value": "{{$_POST.email}}"
              },
              {
                "table": "usuarios",
                "column": "ref_id_empresa_ativa",
                "type": "text",
                "value": "{{insert_empresa.identity}}"
              },
              {
                "table": "usuarios",
                "column": "senha",
                "type": "text",
                "value": "{{hash}}"
              },
              {
                "table": "usuarios",
                "column": "tipo_usuario",
                "type": "text",
                "value": "{{'Colaborador'}}"
              },
              {
                "table": "usuarios",
                "column": "nome_tratamento",
                "type": "text",
                "value": "{{$_POST.nome_tratamento}}"
              }
            ],
            "table": "usuarios",
            "returning": "id_usuario",
            "query": "insert into \"usuarios\" (\"email\", \"nome_completo\", \"nome_tratamento\", \"ref_id_empresa_ativa\", \"senha\", \"tipo_usuario\") values (?, ?, ?, ?, ?, ?) returning \"id_usuario\"",
            "params": [
              {
                "name": ":P1",
                "type": "expression",
                "value": "{{$_POST.nome_completo}}",
                "test": ""
              },
              {
                "name": ":P2",
                "type": "expression",
                "value": "{{$_POST.email}}",
                "test": ""
              },
              {
                "name": ":P3",
                "type": "expression",
                "value": "{{insert_empresa.identity}}",
                "test": ""
              },
              {
                "name": ":P4",
                "type": "expression",
                "value": "{{hash}}",
                "test": ""
              },
              {
                "name": ":P5",
                "type": "expression",
                "value": "{{'Colaborador'}}",
                "test": ""
              },
              {
                "name": ":P6",
                "type": "expression",
                "value": "{{$_POST.nome_tratamento}}",
                "test": ""
              }
            ]
          }
        },
        "meta": [
          {
            "name": "identity",
            "type": "text"
          },
          {
            "name": "affected",
            "type": "number"
          }
        ]
      },
      {
        "name": "insert_usuario_empresa",
        "module": "dbupdater",
        "action": "insert",
        "options": {
          "connection": "postrgress",
          "sql": {
            "type": "insert",
            "values": [
              {
                "table": "usuarios_empresas",
                "column": "ref_id_usuario",
                "type": "text",
                "value": "{{insert_usuario.identity}}"
              },
              {
                "table": "usuarios_empresas",
                "column": "ref_id_empresa",
                "type": "text",
                "value": "{{insert_empresa.identity}}"
              },
              {
                "table": "usuarios_empresas",
                "column": "cargo_usuario_empresa",
                "type": "text",
                "value": "{{'Administrador'}}"
              },
              {
                "table": "usuarios_empresas",
                "column": "status_usuario",
                "type": "text",
                "value": "{{'Ativo'}}"
              }
            ],
            "table": "usuarios_empresas",
            "returning": "id_usuario_empresa",
            "query": "insert into \"usuarios_empresas\" (\"cargo_usuario_empresa\", \"ref_id_empresa\", \"ref_id_usuario\", \"status_usuario\") values (?, ?, ?, ?) returning \"id_usuario_empresa\"",
            "params": [
              {
                "name": ":P1",
                "type": "expression",
                "value": "{{insert_usuario.identity}}",
                "test": ""
              },
              {
                "name": ":P2",
                "type": "expression",
                "value": "{{insert_empresa.identity}}",
                "test": ""
              },
              {
                "name": ":P3",
                "type": "expression",
                "value": "{{'Administrador'}}",
                "test": ""
              },
              {
                "name": ":P4",
                "type": "expression",
                "value": "{{'Ativo'}}",
                "test": ""
              }
            ]
          }
        },
        "meta": [
          {
            "name": "identity",
            "type": "text"
          },
          {
            "name": "affected",
            "type": "number"
          }
        ]
      },
      {
        "name": "insert_plano_contratado",
        "module": "dbupdater",
        "action": "insert",
        "options": {
          "connection": "postrgress",
          "sql": {
            "type": "insert",
            "values": [
              {
                "table": "planos_contratados",
                "column": "ref_id_plano",
                "type": "text",
                "value": "{{$_POST.id_plano_escolhido}}"
              },
              {
                "table": "planos_contratados",
                "column": "ref_id_empresa",
                "type": "text",
                "value": "{{insert_empresa.identity}}"
              },
              {
                "table": "planos_contratados",
                "column": "ref_id_usuario_admin",
                "type": "text",
                "value": "{{insert_usuario.identity}}"
              },
              {
                "table": "planos_contratados",
                "column": "polos_adicionais",
                "type": "number",
                "value": "{{$_POST.polos_adicionais}}"
              },
              {
                "table": "planos_contratados",
                "column": "valor_total",
                "type": "number",
                "value": "{{$_POST.valor_total}}"
              },
              {
                "table": "planos_contratados",
                "column": "status_plano",
                "type": "text",
                "value": "{{'Ativo'}}"
              },
              {
                "table": "planos_contratados",
                "column": "data_contratacao",
                "type": "datetime",
                "value": "{{NOW}}"
              }
            ],
            "table": "planos_contratados",
            "returning": "id",
            "query": "insert into \"planos_contratados\" (\"data_contratacao\", \"polos_adicionais\", \"ref_id_empresa\", \"ref_id_plano\", \"ref_id_usuario_admin\", \"status_plano\", \"valor_total\") values (?, ?, ?, ?, ?, ?, ?)",
            "params": [
              {
                "name": ":P1",
                "type": "expression",
                "value": "{{$_POST.id_plano_escolhido}}",
                "test": ""
              },
              {
                "name": ":P2",
                "type": "expression",
                "value": "{{insert_empresa.identity}}",
                "test": ""
              },
              {
                "name": ":P3",
                "type": "expression",
                "value": "{{insert_usuario.identity}}",
                "test": ""
              },
              {
                "name": ":P4",
                "type": "expression",
                "value": "{{$_POST.polos_adicionais}}",
                "test": ""
              },
              {
                "name": ":P5",
                "type": "expression",
                "value": "{{$_POST.valor_total}}",
                "test": ""
              },
              {
                "name": ":P6",
                "type": "expression",
                "value": "{{'Ativo'}}",
                "test": ""
              },
              {
                "name": ":P7",
                "type": "expression",
                "value": "{{NOW}}",
                "test": ""
              }
            ]
          }
        },
        "meta": [
          {
            "name": "identity",
            "type": "text"
          },
          {
            "name": "affected",
            "type": "number"
          }
        ]
      }
    ]
  },
  "usedModules": {
    "argon2": "^0.30.2"
  }
}