
window.onload = function() {
  // Build a system
  var url = window.location.search.match(/url=([^&]+)/);
  if (url && url.length > 1) {
    url = decodeURIComponent(url[1]);
  } else {
    url = window.location.origin;
  }
  var options = {
  "swaggerDoc": {
    "openapi": "3.0.0",
    "info": {
      "title": "Wascript API",
      "version": "1.0.0",
      "description": "Bem-vindo à documentação da Wascript API. Nossa API disponibiliza um conjunto de endpoints que permitem a integração e automação com o WhatsApp Web, facilitando o desenvolvimento de soluções personalizadas."
    },
    "servers": [
      {
        "url": "https://api-whatsapp.wascript.com.br"
      }
    ],
    "tags": [
      {
        "name": "Mensagens",
        "description": "Endpoints para envio de mensagens de texto, imagens, vídeos, documents e áudios."
      },
      {
        "name": "Etiquetas",
        "description": "Endpoints para gerenciamento de etiquetas."
      },
      {
        "name": "Notas",
        "description": "Endpoints para criação de notas."
      }
    ],
    "paths": {
      "/api/listar-etiquetas/{token}": {
        "get": {
          "summary": "Obtém etiquetas do Whatsapp usando o método GET.",
          "description": "Emite uma solicitação para capturar as etiquetas e aguarda a resposta.",
          "tags": [
            "Etiquetas"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "responses": {
            "200": {
              "description": "Etiquetas capturadas com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Etiquetas capturadas com sucesso"
                      },
                      "etiquetas": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "etiqueta_123"
                            },
                            "name": {
                              "type": "string",
                              "example": "Exemplo de Etiqueta"
                            },
                            "color": {
                              "type": "integer",
                              "nullable": true,
                              "example": 12345
                            },
                            "count": {
                              "type": "integer",
                              "example": 10
                            },
                            "hexColor": {
                              "type": "string",
                              "example": "#FF5733"
                            },
                            "colorIndex": {
                              "type": "integer",
                              "example": 3
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não fornecido"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            },
            "504": {
              "description": "Tempo limite excedido ao tentar capturar as etiquetas",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Timeout - Não foi possível capturar as etiquetas."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/modificar-etiquetas/{token}": {
        "post": {
          "summary": "Adiciona ou remove etiquetas para um ou mais números no WhatsApp",
          "description": "Gerencia etiquetas para Contacts do WhatsApp, permitindo adicionar ou remover múltiplas etiquetas para um ou mais números",
          "tags": [
            "Etiquetas"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      ],
                      "description": "Número(s) de telefone para gerenciar etiquetas",
                      "example": [
                        "553101010101",
                        "553102020202"
                      ]
                    },
                    "actions": {
                      "oneOf": [
                        {
                          "type": "object",
                          "properties": {
                            "labelId": {
                              "type": "string",
                              "description": "ID da etiqueta"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "add",
                                "remove"
                              ],
                              "description": "Tipo de ação para a etiqueta"
                            }
                          }
                        },
                        {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "labelId": {
                                "type": "string",
                                "description": "ID da etiqueta"
                              },
                              "type": {
                                "type": "string",
                                "enum": [
                                  "add",
                                  "remove"
                                ],
                                "description": "Tipo de ação para a etiqueta"
                              }
                            }
                          }
                        }
                      ],
                      "example": [
                        {
                          "labelId": "1",
                          "type": "add"
                        },
                        {
                          "labelId": "2",
                          "type": "remove"
                        }
                      ]
                    }
                  },
                  "required": [
                    "phone",
                    "actions"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Etiquetas modificadas com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Etiquetas modificadas com sucesso"
                      },
                      "result": {
                        "type": "object",
                        "properties": {
                          "phoneNumbers": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "example": [
                              "553101010101",
                              "553102020202"
                            ]
                          },
                          "actions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "labelId": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string"
                                }
                              }
                            },
                            "example": [
                              {
                                "labelId": "1",
                                "type": "add"
                              },
                              {
                                "labelId": "2",
                                "type": "remove"
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "phone e actions são obrigatórios"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "406": {
              "description": "Chat não encontrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Chat não encontrado no inbox do Whatsapp"
                      },
                      "id": {
                        "type": "string",
                        "example": "553101010101"
                      }
                    }
                  }
                }
              }
            },
            "422": {
              "description": "Erro de validação do telefone",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "phone não pode ser vazio ou conter strings vazias."
                      },
                      "example": {
                        "type": "object",
                        "description": "Exemplo do formato correto",
                        "example": {
                          "phone": "553101010101",
                          "actions": {
                            "labelId": "1",
                            "type": "add"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "423": {
              "description": "Erro de validação das ações",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Cada ação deve conter labelId e type válidos (\"add\" ou \"remove\")."
                      },
                      "example": {
                        "type": "object",
                        "description": "Exemplo do formato correto",
                        "example": {
                          "actions": {
                            "labelId": "1",
                            "type": "add"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "424": {
              "description": "Número de telefone inválido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Número de telefone inválido"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "description": "Mensagem detalhada do erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/enviar-audio/{token}": {
        "post": {
          "summary": "Envia um áudio para um número de telefone via WhatsApp.",
          "description": "Recebe um áudio em base64 e o envia para um número de telefone específico no WhatsApp.",
          "tags": [
            "Mensagens"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "type": "string",
                      "description": "Número de telefone para onde o áudio será Sent",
                      "example": "551183550000"
                    },
                    "base64": {
                      "type": "string",
                      "description": "Áudio codificado em base64",
                      "example": "data:audio/mp3;base64,SUQzBAAAAA..."
                    }
                  },
                  "required": [
                    "phone",
                    "base64"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Áudio Sent com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Áudio Sent com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token é obrigatório ou phone/base64 são obrigatórios"
                      }
                    }
                  }
                }
              }
            },
            "402": {
              "description": "Tamanho do base64 excede o limite",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "O tamanho do base64 excede o limite"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/enviar-document/{token}": {
        "post": {
          "summary": "Envia um document para um número de telefone via WhatsApp.",
          "description": "Recebe um document em base64 e o envia para um número de telefone específico no WhatsApp.",
          "tags": [
            "Mensagens"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "type": "string",
                      "description": "Número de telefone para onde o document será Sent",
                      "example": "551183550000"
                    },
                    "base64": {
                      "type": "string",
                      "description": "document codificado em base64",
                      "example": "data:application/pdf;base64,SUQzBAAAAA..."
                    },
                    "name": {
                      "type": "string",
                      "description": "Nome do document (opcional)",
                      "example": "document.pdf"
                    }
                  },
                  "required": [
                    "phone",
                    "base64"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "document Sent com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "document Sent com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token é obrigatório ou phone/base64 são obrigatórios. name é opcional"
                      }
                    }
                  }
                }
              }
            },
            "402": {
              "description": "Tamanho do base64 excede o limite",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "O tamanho do base64 excede o limite"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/enviar-Image/{token}": {
        "post": {
          "summary": "Envia uma Image para um número de telefone via WhatsApp.",
          "description": "Recebe uma Image em base64 e a envia para um número de telefone específico no WhatsApp.",
          "tags": [
            "Mensagens"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "type": "string",
                      "description": "Número de telefone para onde a Image será enviada",
                      "example": "551183550000"
                    },
                    "base64": {
                      "type": "string",
                      "description": "Image codificada em base64",
                      "example": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD/..."
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem opcional que acompanha a Image",
                      "example": "Confira o document em anexo."
                    }
                  },
                  "required": [
                    "phone",
                    "base64"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Image enviada com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Image enviada com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "phone e base64 são obrigatórios. message é opcional"
                      }
                    }
                  }
                }
              }
            },
            "402": {
              "description": "Tamanho do base64 excede o limite",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "O tamanho do base64 excede o limite"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/enviar-texto/{token}": {
        "get": {
          "summary": "Envia uma mensagem de texto para um número de telefone via WhatsApp usando método GET.",
          "description": "Recebe uma mensagem de texto e a envia para um número de telefone específico no WhatsApp.",
          "tags": [
            "Mensagens"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            },
            {
              "in": "query",
              "name": "phone",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Número de telefone para onde a mensagem será enviada",
              "example": "551183550000"
            },
            {
              "in": "query",
              "name": "message",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Mensagem de texto a ser enviada",
              "example": "Olá, este é um exemplo de mensagem!"
            }
          ],
          "responses": {
            "200": {
              "description": "Mensagem enviada com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Mensagem enviada com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "phone e message são obrigatórios"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "post": {
          "summary": "Envia uma mensagem de texto para um número de telefone via WhatsApp.",
          "description": "Recebe uma mensagem de texto e a envia para um número de telefone específico no WhatsApp.",
          "tags": [
            "Mensagens"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "type": "string",
                      "description": "Número de telefone para onde a mensagem será enviada",
                      "example": "551183550000"
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de texto a ser enviada",
                      "example": "Olá, este é um exemplo de mensagem!"
                    }
                  },
                  "required": [
                    "phone",
                    "message"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Mensagem enviada com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Mensagem enviada com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "phone e message são obrigatórios"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/enviar-video/{token}": {
        "post": {
          "summary": "Envia um vídeo para um número de telefone via WhatsApp.",
          "description": "Recebe um vídeo em base64 e o envia para um número de telefone específico no WhatsApp.",
          "tags": [
            "Mensagens"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "type": "string",
                      "description": "Número de telefone para onde o vídeo será Sent",
                      "example": "551183550000"
                    },
                    "base64": {
                      "type": "string",
                      "description": "Vídeo codificado em base64",
                      "example": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQEAAAAAAAD/..."
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem opcional que acompanha o vídeo",
                      "example": "Confira o vídeo em anexo."
                    }
                  },
                  "required": [
                    "phone",
                    "base64"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Vídeo Sent com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Vídeo Sent com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "phone e base64 são obrigatórios. message é opcional"
                      }
                    }
                  }
                }
              }
            },
            "402": {
              "description": "Tamanho do base64 excede o limite",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "O tamanho do base64 excede o limite"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "/api/criar-nota/{token}": {
        "post": {
          "summary": "Cria uma nova nota.",
          "description": "Recebe uma nota e a salva no sistema.",
          "tags": [
            "Notas"
          ],
          "parameters": [
            {
              "in": "path",
              "name": "token",
              "required": true,
              "schema": {
                "type": "string"
              },
              "description": "Token de autenticação do usuário"
            }
          ],
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "userID": {
                      "type": "string",
                      "description": "Identificador do chat onde a nota será armazenada",
                      "example": "551101010101"
                    },
                    "text": {
                      "type": "string",
                      "description": "Conteúdo textual da nota",
                      "example": "Este é o conteúdo da minha nota."
                    },
                    "base64": {
                      "type": "string",
                      "description": "document em formato base64 para ser anexado à nota",
                      "example": "data:application/pdf;base64,JVBERi0xLjQKJcfs..."
                    }
                  },
                  "required": [
                    "userID"
                  ]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Nota criada com sucesso",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": true
                      },
                      "message": {
                        "type": "string",
                        "example": "Nota criada com sucesso"
                      }
                    }
                  }
                }
              }
            },
            "400": {
              "description": "Requisição inválida ou token não fornecido",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "userID é obrigatório e pelo menos um dos campos text ou base64 deve ser fornecido"
                      }
                    }
                  },
                  "examples": {
                    "missingFields": {
                      "summary": "Campos obrigatórios ausentes",
                      "value": {
                        "success": false,
                        "message": "userID é obrigatório e pelo menos um dos campos text ou base64 deve ser fornecido"
                      }
                    },
                    "invalidBase64": {
                      "summary": "Formato de base64 inválido",
                      "value": {
                        "success": false,
                        "message": "base64 deve ser uma string que começa com \"data:\""
                      }
                    }
                  }
                }
              }
            },
            "402": {
              "description": "Tamanho do base64 excede o limite",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "O tamanho do base64 excede o limite"
                      }
                    }
                  }
                }
              }
            },
            "404": {
              "description": "Token não cadastrado",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Token não cadastrado"
                      }
                    }
                  }
                }
              }
            },
            "500": {
              "description": "Erro no servidor",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Erro no servidor. Por favor, tente novamente mais tarde."
                      },
                      "error": {
                        "type": "string",
                        "example": "Mensagem de erro"
                      }
                    }
                  }
                }
              }
            },
            "501": {
              "description": "Erro no socket",
              "content": {
                "application/json": {
                  "schema": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "example": false
                      },
                      "message": {
                        "type": "string",
                        "example": "Página do Whatsapp não aberta ou API desconectada."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "components": {}
  },
  "customOptions": {}
};
  url = options.swaggerUrl || url
  var urls = options.swaggerUrls
  var customOptions = options.customOptions
  var spec1 = options.swaggerDoc
  var swaggerOptions = {
    spec: spec1,
    url: url,
    urls: urls,
    dom_id: '#swagger-ui',
    deepLinking: true,
    presets: [
      SwaggerUIBundle.presets.apis,
      SwaggerUIStandalonePreset
    ],
    plugins: [
      SwaggerUIBundle.plugins.DownloadUrl
    ],
    layout: "StandaloneLayout"
  }
  for (var attrname in customOptions) {
    swaggerOptions[attrname] = customOptions[attrname];
  }
  var ui = SwaggerUIBundle(swaggerOptions)

  if (customOptions.oauth) {
    ui.initOAuth(customOptions.oauth)
  }

  if (customOptions.preauthorizeApiKey) {
    const key = customOptions.preauthorizeApiKey.authDefinitionKey;
    const value = customOptions.preauthorizeApiKey.apiKeyValue;
    if (!!key && !!value) {
      const pid = setInterval(() => {
        const authorized = ui.preauthorizeApiKey(key, value);
        if(!!authorized) clearInterval(pid);
      }, 500)

    }
  }

  if (customOptions.authAction) {
    ui.authActions.authorize(customOptions.authAction)
  }

  window.ui = ui
}
