swagger: "2.0"
info:
  version: 1.0.0
  title: API Funil Pró
  description: >
    ##  Bem-Vindo \o/
    
    API para consumo do CRM Funil Pró
    
    ##  TokenFunil
    
    Toda a requisição feita para a API, deve ter um token de autenticação `TokenFunil = "hash do seu token aqui" `  via headers.<br><br>
    É obrigatório ter uma conta ativa, caso não tenha entre em contato pelo email <br> `oi@d3t.com.br` 
    
    <br><br>
    
    [O Token está localizado em](https://a9p.funil.pro/#/integracoes)
    <br>
    <i><b>`Menu Configurações > Área de Integrações`
    </i></b><br>
   # <br><br>
   # Caso seja de preferência do desenvolvedor, existe a possibilidade de utilizar a API via __*Swagger*__
   # <br>[Swagger Funil PRÓ](https://apia9p.funil.pro/doc/)
    
  contact:
    name: Suporte Funil Pró
    email: oi@d3t.com.br
    url: https://funilpro.com.br/#/
#host: api.funil.pro
host: apia9.funil.pro
basePath: /api/v1
schemes:
  - http
consumes:
  - application/json
produces:
  - application/json
paths:

# ***
# *** Pessoas
# ***
  /pessoas :
    x-summary : Listar
    x-description : | 
      Chamada para consultar pessoas ativas.
      <br> 
      O resultado desta chamada exibe apenas os dados simplificados das Pessoas cadastradas.
      <br><br>
      Para consultar informações detalhadas consulta a área [Busca Detalhada](#reference/service-pessoas/busca-detalhada)
      
      
    get:
      tags:
        - Pessoas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response pessoas
          examples: 
            application/json: {
              "code": 200,
              "totalClientes": "",
              "data": [
                  {
                    "IdPessoa": "",
                    "IdContaFunil": "",
                    "NomeContaFunil": "",
                    "IdResponsavel":"",
                    "NomeResponsavel": "",
                    "NomePessoa": "",
                    "Email": "",
                    "Fone1": "",
                    "Fone2": "",
                    "IdCategoria": "",
                    "NomeCategoria": "",
                    "IdCargo": "",
                    "NomeCargo": "",
                    "IdEmpresa": "",
                    "NomeEmpresa": "",
                    "Cpf": "",
                    "Observacao": "",
                    "AtivoInativo": 1,
                    "Slug": ""
                  } 
                ]
              }
        default:
          description: error
  /pessoas/inativos :
    x-summary : Listar pessoas inativas
    x-description : |
      Chamada para consultar pessoas inativas.
    get:
      tags:
        - Pessoas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findCliInativa
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response pessoas inativas
          examples: 
              application/json: {
                "code": 200,
                "totalClientes": "",
                "data": [
                  {
                      "IdPessoa": "",
                      "IdContaFunil": "",
                      "NomeContaFunil": "",
                      "IdResponsavel":"",
                      "NomeResponsavel": "",
                      "NomePessoa": "",
                      "Email": "",
                      "Fone1": "",
                      "Fone2": "",
                      "IdCategoria": "",
                      "NomeCategoria": "",
                      "IdCargo": "",
                      "NomeCargo": "",
                      "IdEmpresa": "",
                      "NomeEmpresa": "",
                      "Cpf": "",
                      "Observacao": "",
                      "AtivoInativo": 0,
                      "Slug": ""
                    }
                ]
              }
        default:
          description: error
  /pessoas/busca/{cliid} :
    x-summary : Busca simples
    x-description : |
      Chamada para buscar os dados simplificados de uma pessoa específica.
      
    get:
      tags:
        - Pessoas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: buscaCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: cliid
          # in: query
          in: path
          description: insira o id da pessoa que deseja buscar
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response busca simples pessoa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                  {
                    "IdPessoa": "",
                    "IdContaFunil": "",
                    "NomeContaFunil": "",
                    "IdResponsavel": "",
                    "NomeResponsavel": "",
                    "NomePessoa": "",
                    "Email": "",
                    "Fone1": "",
                    "Fone2": "",
                    "IdCategoria": "",
                    "NomeCategoria": "",
                    "IdCargo": "",
                    "NomeCargo": "",
                    "IdEmpresa": "",
                    "NomeEmpresa": "",
                    "Cpf": "",
                    "Observacao": "",
                    "AtivoInativo": "",
                    "Slug": ""
                  }
                ]
              }
        default:
          description: error
  /pessoas/busca-detalhada :
    x-summary : Busca Detalhada
    x-description : |
      Chamada para buscar uma única pessoa ativa, através de `1 (um)` dos seguintes parâmetros.
      <br> 
      `cli_id = "IdPessoa"`<br>
      `cli_nome = "NomePessoa"`<br>
      `cli_email = "Email"`<br>
      `cli_telefone = "Fone"`<br>
      `cli_cpf = "Cpf"`<br>
      `cli_slug = "Slug"`<br> 
      OBS. Caso passar mais que um parâmetro, será respeitado somente o primeiro argumento. 
      <br>
      Esta chamada exibe todas as informações do cadastro de um Pessoa, incluindo <br>
      `ENDEREÇO`<br>
      `E-MAILS ADICIONAIS`<br>
      `TAGS`<br>
      `REDES SOCIAIS`<br>
      `ATENDIMENTOS`<br>
    get:
      tags:
        - Pessoas
      # description: |
        # Chamada para consultar um único cliente ativo, através do seu ID. 
      operationId: findCliOne
      parameters:
        - in: header
          name: TokenFunil
          type: string
          description: insira o TokenFunil no headers.
          required: true
        - in: query
          name: cli_id 
          type: integer
          description: Id da pessoa
        - in: query
          name: cli_nome
          type: string
          description: Nome da pessoa
        - in: query
          name: cli_email
          type: string
          description: Email principal
        - in: query
          name: cli_telefone
          type: string
          description: Telefone
        - in: query
          name: cli_cpf
          type: string
          description: CPF
        - in: query
          name: cli_slug
          type: string
          description: Slug do cliente
      responses:
        200:
          description: Response busca avançada
          examples: 
              application/json: {
                "code": 200,
                "data": [
                  {
                  "pessoa": [
                      {
                          "cli_id": "",
                          "fk_saas_id": "",
                          "fk_user_id": "",
                          "cli_nome": "",
                          "cli_email": "",
                          "cli_telefone": "",
                          "cli_telefone2": "",
                          "fk_categ_id": "",
                          "fk_car_id": "",
                          "fk_emp_id": "",
                          "cli_cpf": "",
                          "cli_observacao": "",
                          "cli_ativo": "",
                          "cli_slug": ""
                      }
                  ],
                  "endereco": [
                      {
                          "endcli_id": "",
                          "fk_cli_id": "",
                          "endcli_logradouro": "",
                          "endcli_numero": "",
                          "endcli_complemento": "",
                          "endcli_cep": "",
                          "endcli_bairro": "",
                          "endcli_pais": "",
                          "endcli_cidade": "",
                          "endcli_estado": "",
                          "endcli_latitude": "",
                          "endcli_longitude": ""
                      }
                  ],
                  "lista_email": [
                      {
                          "emc_id": "",
                          "fk_emt_id": "",
                          "fk_cli_id": "",
                          "emc_email": ""
                      }
                  ],
                  "tag": [
                      {
                          "tagcli_id": "",
                          "fk_cli_id": "",
                          "fk_tag_id": "",
                          "tagcli_origem": ""
                      }
                  ],
                  "redes_sociais": [
                      {
                          "snc_id": "",
                          "snc_url": "",
                          "fk_sn_id": "",
                          "fk_cli_id": ""
                      }
                  ],
                  "atendimentos": [
                      {
                          "atdcli_id": "",
                          "atdcli_descricao": "",
                          "fk_cli_id": "",
                          "fk_user_id": ""
                      }
                  ]
              }
                ]
              }
        default:
          description: error
  /pessoas/novo :
    x-summary : Cadastrar
    x-description : |
      Chamada para cadastrar uma nova pessoa. 
      <br>
      Alguns arrays poderão enviar mais de um cadastro, conforme informações abaixo
      <br> 
      `E-MAILS ADICIONAIS`<br>
      `TAGS`<br>
      `REDES SOCIAIS`<br>
      `ATENDIMENTOS`<br><br>
      EXEMPLO
        ```json
          {...},
          "atendimentos": [
            {
              "atdcli_descricao": "Texto do PRIMEIRO atendimento",
              "fk_user_id": "100" \\Id do responsável pelo atendimento (usuário cadastrado Funil PRÓ)
            },
            {
              "atdcli_descricao": "Texto do SEGUNDO atendimento",
              "fk_user_id": "100" \\Id do responsável pelo atendimento (usuário cadastrado Funil PRÓ)
            },
            {...},
          ]
        ```
      
    post:
      tags:
        - Pessoas
      consumes:
        - application/json 
      operationId: CreateCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - in: body
          name: pessoasCreate
          # required: true
          schema:
            $ref: "#/definitions/pessoasCreate"
      responses:
        200:
          description: Response POST pessoas
          examples: 
              application/json: {
                "code": 200,
                "data": [
                 {
                    "fk_user_id": "IdResponsavel",
                    "cli_nome": "NomePessoa",
                    "cli_email": "Email",
                    "cli_telefone": "Fone1",
                    "cli_telefone2": "Fone2",
                    "fk_categ_id": "IdCategoria",
                    "fk_car_id": "IdCargo",
                    "fk_emp_id": "IdEmpresa",
                    "cli_cpf": "Cpf",
                    "cli_observacao": "Observação",
                    "identificador": "tag que identifica a origem do cadastro",
                    "endereco": [
                      {
                        "endcli_logradouro":"Logradouro",
                        "endcli_numero":"Numero",
                        "endcli_complemento":"Complemento",
                        "endcli_cep":"Cep",
                        "endcli_bairro":"Bairro",
                        "endcli_pais":"País",
                        "endcli_cidade":"Cidade",
                        "endcli_estado":"Estado",
                        "endcli_latitude":"LatitudeMapa",
                        "endcli_longitude":"LongitudeMapa"
                      }
                    ],
                    "lista_email": [
                      {
                        "fk_emt_id":"IdEmailTipo",
                        "emc_email":"Email"
                      }
                    ],
                    "redes_sociais": [
                      {
                        "snc_url":"RedeSocialPessoa",
                        "fk_sn_id":"IdRedeSocial"
                      }
                    ],
                    "tags": [
                      {
                        "fk_tag_id":"IdTag",
                        "tagcli_origem":"OrigemTag"
                      }
                    ],
                    "atendimentos": [
                        {
                        "atdcli_descricao":"Atendimento",
                        "fk_user_id":"IdResponsavel"
                      }
                    ]
                  }
                ]
              }
        default:
          description: error
  /pessoas/delete/{cliid} :
    x-summary : Excluir(desativar)
    x-description : |
      Chamada para desativar uma pessoa na sua base de dados.
      <br>
      Pessoa ativa `cli_ativo = 1`
      <br>
      Pessoa desativada `cli_ativo = 0`
      
    put:
      tags:
        - Pessoas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: excluirCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: cliid
          # in: query
          in: path
          description: insira o id da pessoa que deseja desativar
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response delete pessoa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                  {
                    "IdPessoa": "",
                    "IdContaFunil": "",
                    "NomeContaFunil": "",
                    "IdResponsavel":"",
                    "NomeResponsavel": "",
                    "NomePessoa": "",
                    "Email": "",
                    "Fone1": "",
                    "Fone2": "",
                    "IdCategoria": "",
                    "NomeCategoria": "",
                    "IdCargo": "",
                    "NomeCargo": "",
                    "IdEmpresa": "",
                    "NomeEmpresa": "",
                    "Cpf": "",
                    "Observacao": "",
                    "AtivoInativo": 0,
                    "Slug": ""
                  }
                ]
              }
        default:
          description: error
  /pessoas/ativa/{cliid} :
    x-summary : Ativar Pessoa
    x-description : |
      Chamada para ativar uma pessoa na sua base de dados.
      <br>
      Pessoa ativa `cli_ativo = 1`
      <br>
      Pessoa desativada `cli_ativo = 0`
    put:
      tags:
        - Pessoas 
      operationId: ativaCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: cliid
          # in: query
          in: path
          description: insira o id da pessoa que deseja ativar
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response ativar pessoa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                  {
                    "IdPessoa": "",
                    "IdContaFunil": "",
                    "NomeContaFunil": "",
                    "IdResponsavel":"",
                    "NomeResponsavel": "",
                    "NomePessoa": "",
                    "Email": "",
                    "Fone1": "",
                    "Fone2": "",
                    "IdCategoria": "",
                    "NomeCategoria": "",
                    "IdCargo": "",
                    "NomeCargo": "",
                    "IdEmpresa": "",
                    "NomeEmpresa": "",
                    "Cpf": "",
                    "Observacao": "",
                    "AtivoInativo": 1,
                    "Slug": ""
                  }
                ]
              }
        default:
          description: error
  /pessoas/update/{cliid} :
    x-summary : Alterar
    x-description : |
      Para alterar um registro de pessoa é necessário passar como parâmetro o id `cli_id` desta pessoa.
      <br><br>
      No <strong>Body</strong> encontra-se a estrutura completa do array para alterar o cadastro de uma pessoa, 
      os registros que não sofrerem alterações <strong>deverão ser removidos</strong> da estrutura do array.
      <br>
       EXEMPLO
        ```json
        //Alterar apenas o nome e o email de uma pessoa.
          {
           "cli_nome": "NomePessoa",
           "cli_email": "Email"
          }
          //Os demais campos do objeto deverão ser removidos.
        ```
    put:
      tags:
        - Pessoas 
      operationId: ativaCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: cliid
          # in: query
          in: path
          description: Id da pessoa
          required: true
          type: integer
          format: int64
        - in: body
          name: pessoasUpdate
          schema:
            $ref: "#/definitions/pessoasUpdate"  
      responses:
        200:
          description: Response alterar pessoa
         
        default:
          description: error
  
# ***
# *** Empresa
# ***
  /empresas :
    x-summary : Listar
    x-description : |
      Chamada para consultar empresas ativas.
      <br> 
      O resultado desta chamada exibe apenas os dados simplificados das Empresas cadastradas.
      <br><br>
      Para consultar informações detalhadas consulta a área [Busca Detalhada de Empresa](#reference/service-empresa/busca-detalhada-de-empresa)
    get:
      tags:
        - Empresas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response empresa
          examples: 
              application/json: {
                "totalEmpresas": "",
                "data": [
                    {
                      "IdEmpresa": "",
                      "IdContaFunil": "",
                      "NomeContaFunil": "",
                      "IdResponsavel": "",
                      "NomeResponsavel": "",
                      "NomeEmpresa": "",
                      "Email": "",
                      "Fone1": "",
                      "Fone2": "",
                      "IdCategoria": "",
                      "NomeCategoria": "",
                      "Cnpj": "",
                      "Observacao": "",
                      "AtivoInativo": 1,
                      "Slug": ""
                    }
                ]
              }
        default:
          description: error 
  /empresas/inativos :
    x-summary : Listar Empresas Inativas
    x-description : |
      Chamada para consultar empresas inativas.
    get:
      tags:
        - Empresas
      # description: |
        # Chamada para consultar empresas inativas. 
      operationId: findEmpInativa
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response empresas inativas
          examples: 
              application/json: {
                "code": 200,
                "totalEmpresas": "",
                "data": [
                                      {
                      "IdEmpresa": "",
                      "IdContaFunil": "",
                      "NomeContaFunil": "",
                      "IdResponsavel": "",
                      "NomeResponsavel": "",
                      "NomeEmpresa": "",
                      "Email": "",
                      "Fone1": "",
                      "Fone2": "",
                      "IdCategoria": "",
                      "NomeCategoria": "",
                      "Cnpj": "",
                      "Observacao": "",
                      "AtivoInativo": 0,
                      "Slug": ""
                    }
                ]
              }
        default:
          description: error
  /empresas/busca/{empid} :
    x-summary : Busca simples
    x-description : Chamada para buscar os dados simplificados de uma empresa específica
    get:
      tags:
        - Empresas 
      operationId: buscaEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: empid
          # in: query
          in: path
          description: insira o id da empresa que deseja buscar
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response busca simples empresa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                    {
                      "IdEmpresa": "",
                      "IdContaFunil": "",
                      "NomeContaFunil": "",
                      "IdResponsavel": "",
                      "NomeResponsavel": "",
                      "NomeEmpresa": "",
                      "Email": "",
                      "Fone1": "",
                      "Fone2": "",
                      "IdCategoria": "",
                      "NomeCategoria": "",
                      "Cnpj": "",
                      "Observacao": "",
                      "AtivoInativo": 1,
                      "Slug": ""
                    }
                ]
              }
        default:
          description: error
  /empresas/busca-detalhada :
    x-summary : Busca detalhada
    x-description : |
      Chamada para buscar uma única empresa ativa, através de `1 (um)` dos seguintes parâmetros.<br> `emp_id = "Id da empresa"`<br>`emp_nome = "Nome da empresa"`<br>`emp_email = "Email da empresa"`<br>`emp_telefone = "Telefone da empresa"`<br>`emp_cnpj = "CNPJ da empresa"`<br>`emp_slug = "Slug da empresa"`.
      <br> 
      `emp_id = "IdEmpresa"`<br>
      `emp_nome = "NomeEmpresa"`<br>
      `emp_email = "Email"`<br>
      `emp_telefone = "Fone"`<br>
      `emp_cnpj = "Cnpj"`<br>
      `emp_slug = "Slug"`<br> 
      <br> 
      OBS. Caso passar mais que um parâmetro, será respeitado somente um argumento. 
      <br>
      Esta chamada exibe todas as informações do cadastro de uma Empresa, incluindo <br>
      `ENDEREÇO`<br>
      `E-MAILS ADICIONAIS`<br>
      `TAGS`<br>
      `REDES SOCIAIS`<br>
      `ATENDIMENTOS`<br>
    get:
      tags:
        - Empresas
      # description: |
      operationId: findEmpOne
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - in: query
          name: emp_id
          type: integer
          description: Id da empresa
        - in: query
          name: emp_nome
          type: string
          description: Nome da empresa
        - in: query
          name: emp_email
          type: string
          description: Email da empresa
        - in: query
          name: emp_telefone
          type: string
          description: Telefone da empresa
        - in: query
          name: emp_cnpj
          type: string
          description: CNPJ da empresa
        - in: query
          name: emp_slug
          type: string
          description: Slug da empresa
      responses:
        200:
          description: Response busca avançada Empresa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                  {
                    "totalEmpresas": "",
                    "data": [
                        {
                            "empresas": [
                                {
                                    "emp_id": "",
                                    "fk_saas_id": "",
                                    "fk_user_id": "",
                                    "emp_nome": "",
                                    "emp_email": "",
                                    "emp_telefone": "",
                                    "emp_telefone2": "",
                                    "fk_categ_id": "",
                                    "emp_cnpj": "",
                                    "emp_observacao": "",
                                    "emp_ativo": "",
                                    "emp_slug": ""
                                }
                            ],
                            "endereco": [
                                {
                                    "endemp_id": "",
                                    "fk_emp_id": "",
                                    "endemp_logradouro": "",
                                    "endemp_numero": "",
                                    "endemp_complemento": "",
                                    "endemp_cep": "",
                                    "endemp_bairro": "",
                                    "endemp_pais": "",
                                    "endemp_cidade": "",
                                    "endemp_estado": "",
                                    "endemp_latitude": "",
                                    "endemp_longitude": ""
                                }
                            ],
                            "lista_email": [
                                {
                                    "eme_id": "",
                                    "fk_emt_id": "",
                                    "eme_email": ""
                                }
                            ],
                            "redes_sociais": [
                                {
                                    "sne_id": "",
                                    "sne_url": "", 
                                    "fk_sn_id": "",
                                    "fk_emp_id": ""
                                }
                            ],
                            "tag": [
                                {
                                    "tagemp_id": "",
                                    "fk_tag_id": "",
                                    "fk_emp_id":"",
                                    "tagemp_origem": ""
                                }
                            ],
                            "atendimentos": [
                                {
                                    "atdemp_id": "",
                                    "atdemp_descricao": ""
                                }
                            ]
                        }
                    ]
                }
                ]
              }
        default:
          description: error
  /empresas/delete/{empid} :
    x-summary : Excluir(desativar)
    x-description : |
      Chamada para desativar uma empresa na sua base de dados.
      <br>
      Empresa ativa `emp_ativo = 1`
      <br>
      Empresa desativada `emp_ativo = 0`
    put:
      tags:
        - Empresas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: excluirEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: empid
          # in: query
          in: path
          description: insira o id da empresa que deseja desativar
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response delete pessoa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                                      {
                      "IdEmpresa": "",
                      "IdContaFunil": "",
                      "NomeContaFunil": "",
                      "IdResponsavel": "",
                      "NomeResponsavel": "",
                      "NomeEmpresa": "",
                      "Email": "",
                      "Fone1": "",
                      "Fone2": "",
                      "IdCategoria": "",
                      "NomeCategoria": "",
                      "Cnpj": "",
                      "Observacao": "",
                      "AtivoInativo": 0,
                      "Slug": ""
                    }
                ]
              }
        default:
          description: error
  /empresas/ativa/{empid} :
    x-summary : Ativar Empresa
    x-description : |
      Chamada para ativar uma empresa na sua base de dados.
      <br>
      Empresa ativa `emp_ativo = 1`
      <br>
      Empresa desativada `emp_ativo = 0`
    put:
      tags:
        - Empresas 
      operationId: ativaEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: empid
          # in: query
          in: path
          description: insira o id da empresa que deseja ativar
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response ativar empresa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                    {
                      "IdEmpresa": "",
                      "IdContaFunil": "",
                      "NomeContaFunil": "",
                      "IdResponsavel": "",
                      "NomeResponsavel": "",
                      "NomeEmpresa": "",
                      "Email": "",
                      "Fone1": "",
                      "Fone2": "",
                      "IdCategoria": "",
                      "NomeCategoria": "",
                      "Cnpj": "",
                      "Observacao": "",
                      "AtivoInativo": 1,
                      "Slug": ""
                    }
                ]
              }
        default:
          description: error
  /empresas/novo :
    x-summary : Cadastrar
    x-description : |
      Chamada para cadastrar uma nova empresa.
      <br>
      Alguns arrays poderão enviar mais de um cadastro, conforme informações abaixo
      <br> 
      `E-MAILS ADICIONAIS`<br>
      `TAGS`<br>
      `REDES SOCIAIS`<br>
      `ATENDIMENTOS`<br><br>
      EXEMPLO
        ```json
          {...},
          "atendimentos": [
            {
              "atdemp_descricao": "Texto do PRIMEIRO atendimento",
              "fk_user_id": "100" \\Id do responsável pelo atendimento (usuário cadastrado Funil PRÓ)
            },
            {
              "atdemp_descricao": "Texto do SEGUNDO atendimento",
              "fk_user_id": "100" \\Id do responsável pelo atendimento (usuário cadastrado Funil PRÓ)
            },
            {...},
          ]
        ```
    post:
      tags:
        - Empresas
      consumes:
        - application/json 
      operationId: CreateEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - in: body
          name: pessoasCreate
          # required: true
          schema:
            $ref: "#/definitions/empresasCreate"
      responses:
        200:
          description: Response POST empresa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                   {
                    "fk_user_id": "IdResponsavel",
                    "emp_nome": "NomeEmpresa",
                    "emp_email": "Email",
                    "emp_telefone": "Fone1",
                    "emp_telefone2": "Fone2",
                    "fk_categ_id": "IdCategoria",
                    "emp_cnpj": "Cnpj - somente numeros",
                    "emp_observacao": "Observacao",
                    "endereco": [
                      {
                          "endemp_logradouro": "Logradouro",
                          "endemp_numero": "Número",
                          "endemp_complemento": "Complemento",
                          "endemp_cep": "Cep",
                          "endemp_bairro": "Bairro",
                          "endemp_pais": "País",
                          "endemp_cidade": "Cidade",
                          "endemp_estado": "Estado",
                          "endemp_latitude": "LatitudeMapa",
                          "endemp_longitude": "LongitudeMapa"
                      }
                      ],
                      "lista_email": [
                          {
                              "fk_emt_id": "IdEmailTipo",
                              "eme_email": "Email"
                          }
                      ],
                      "redes_sociais": [
                          {
                              "sne_url": "RedeSocialEmpresa",
                              "fk_sn_id": "IdRedeSocial"
                          }
                      ],
                      "tags": [
                          {
                              "fk_tag_id": "IdTag",
                              "tagemp_origem": "OrigemTag"
                          }
                      ],
                      "atendimentos": [
                          {
                              "atdemp_descricao": "Atendimento",
                              "fk_user_id": "IdResponsavel"
                          }
                      ]
                  }
                ]
              }
        default:
          description: error
  
    #  inicio do service configurações
  /empresas/update/{empid} :
    x-summary : Alterar
    x-description : |
      Para alterar um registro de pessoa é necessário passar como parâmetro o id `cli_id` desta pessoa.
      <br><br>
      No <strong>Body</strong> encontra-se a estrutura completa do array para alterar o cadastro de uma pessoa, 
      os registros que não sofrerem alterações <strong>deverão ser removidos</strong> da estrutura do array.
      <br>
       EXEMPLO
        ```json
        //Alterar apenas o nome e o email de uma pessoa.
          {
           "cli_nome": "NomePessoa",
           "cli_email": "Email"
          }
          //Os demais campos do objeto deverão ser removidos.
        ```
    put:
      tags:
        - Empresas 
      operationId: updateEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: empid
          # in: query
          in: path
          description: Id da pessoa
          required: true
          type: integer
          format: int64
        - in: body
          name: empresasUpdate
          schema:
            $ref: "#/definitions/empresasUpdate"  
      responses:
        200:
          description: Response alterar empresa
         
        default:
          description: error    
  /empresas/pessoas-vinculadas/{empid} :
    x-summary : Pessoas vínculadas
    x-description : |
      Chamada para consultar as pessoas vínculadas a uma empresa.
    get:
      tags:
        - Empresas
      # description: |
      operationId: findEmpOne
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: empid
          # in: query
          in: path
          description: Id da empresa
          required: true
          type: integer
          format: int64        
      responses:
        200:
          description: Response das pessoas vínculadas a empresa
          examples: 
              application/json: {
                "code": 200,
                "data": [
                  {
                  "pessoa": [
                      {
                          "cli_id": "",
                          "fk_saas_id": "",
                          "fk_user_id": "",
                          "cli_nome": "",
                          "cli_email": "",
                          "cli_telefone": "",
                          "cli_telefone2": "",
                          "fk_categ_id": "",
                          "fk_car_id": "",
                          "fk_emp_id": "",
                          "cli_cpf": "",
                          "cli_observacao": "",
                          "cli_ativo": "",
                          "cli_slug": ""
                      }
                  ],
                  "endereco": [
                      {
                          "endcli_id": "",
                          "fk_cli_id": "",
                          "endcli_logradouro": "",
                          "endcli_numero": "",
                          "endcli_complemento": "",
                          "endcli_cep": "",
                          "endcli_bairro": "",
                          "endcli_pais": "",
                          "endcli_cidade": "",
                          "endcli_estado": "",
                          "endcli_latitude": "",
                          "endcli_longitude": ""
                      }
                  ],
                  "lista_email": [
                      {
                          "emc_id": "",
                          "fk_emt_id": "",
                          "fk_cli_id": "",
                          "emc_email": ""
                      }
                  ],
                  "tag": [
                      {
                          "tagcli_id": "",
                          "fk_cli_id": "",
                          "fk_tag_id": "",
                          "tagcli_origem": ""
                      }
                  ],
                  "redes_sociais": [
                      {
                          "snc_id": "",
                          "snc_url": "",
                          "fk_sn_id": "",
                          "fk_cli_id": ""
                      }
                  ],
                  "atendimentos": [
                      {
                          "atdcli_id": "",
                          "atdcli_descricao": "",
                          "fk_cli_id": "",
                          "fk_user_id": ""
                      }
                  ]
              }
                ]
              }
        default:
          description: error


# ***
# *** Service Etapas do Funil
# ***
  /etapas :
    x-summary : Etapas do Funil de Vendas (pipeline)
    x-description : | 
      Consulte as etapas do Funil de Vendas para criação das negociações. <br>
       >INFORMAÇÕES DOS CAMPOS DE RETORNO
        ```json
          {
            "IdEtapa": "Id da etapa",
            "EtapaNome": "Nome da etapa",
            "EtapaPosicao": "Posição que a etapa se encontra no funil"
          }
          //O `EtapaPosição` serefere ao número da coluna no Funil.
        ```      
    get:
      tags:
        - Etapas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findFunil
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response funil
          examples: 
              application/json: {
              "totalEtapas": 5,
               "etapas": [
                {
                  "IdEtapa": 1,
                  "EtapaNome": "Contato",
                  "EtapaPosicao": "1"
                },
                {
                  "IdEtapa": 2,
                  "EtapaNome": "Negócio Enviado ",
                  "EtapaPosicao": "2"
                },
                {
                  "IdEtapa": 3,
                  "EtapaNome": "Negociando",
                  "EtapaPosicao": "3"
                },
                {
                    "IdEtapa": 5,
                    "EtapaNome": "Follow-up",
                    "EtapaPosicao": "4"
                },
                {
                    "IdEtapa": 4,
                    "EtapaNome": "Finalização",
                    "EtapaPosicao": "5"
                }
              ]
            }
        default:
          description: error          
    
# ***
# *** Service Negociações
# ***
  /negociacao :
    x-summary : Listar 
    x-description : | 
      Chamada para consultar as negociações ativas.
      <br> 
      O resultado desta chamada exibe apenas os dados simplificados das negociações cadastradas.
      <br><br>
      Para consultar informações detalhadas consulta a área `Busca Detalhada`
      
    get:
      tags:
        - Negociações (propostas)
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response pessoas
          examples: 
              application/json: {
                "totalNegociacoes": "Total de negociações ativas",
                  "negociacoes": [
                     {
                      "IdNegociacao": "Id da negociação",
                      "EtapaId": "Id da etapa do funil",
                      "EtapaNome": "Nome da etapa do funil",
                      "TipoCLiente": "Negociação associada com Empresa ou Pessoa?",
                      "IdCliente": "Id da Pesso/Empresa associada",
                      "NomeCliente": "Nome da Pesso/Empresa associada",
                      "NegociacaoNome": "Nome(titulo) da negociação",
                      "NegociacaoPreco": "Valor da negociação",
                      "NegociacaoPrazo": "Data prazo",
                      "UsuarioId": "Id do usuário responsável",
                      "UsuarioNome": "Nome do usuário responsável",
                      "NegociacaoObservacao": "Observação",
                      "NegociacaoGanho": "Se negociação GANHA = 1",
                      "NegociacaoPerdido": "Se negociação PERDIDA = 1",
                      "NegociacaoDataGanhoPerda": "Data de quando a negociação foi ganha ou perdida",
                      "NegociacaoSlug": "Slug da negociação",
                      "ativoinativo": 1
                    },
                    { ... } 
                  ]
                }
        default:
          description: error          
  /negociacao/novo :
    x-summary : Cadastrar negociação
    x-description : |
      Chamada para cadastrar uma nova negociação. 
      <br>
      <strong>DEFINIÇÃO</strong> <br>
      Abaixo os campos <strong>obrigatórios</strong> para criação da negociação <br>
      * ETAPA `fk_etapa_id`;<br> 
      * NOME `prop_nome`;<br> 
      * RESPONSÁVEL `fk_user_id`;<br> 
      * PESSOA* `fk_cli_id` ou EMPRESA* `fk_emp_id` 
      
      
      Se uma negociação for vinculada a uma <i>Pessoa</i> o campo enviado deverá ser `fk_cli_id` via BODY.<br>
      Caso seja  <i>Empresa</i>, o campo deverá ser `fk_emp_id` <br>
      NUNCA enviar os dois campos `fk_cli_id` e `fk_emp_id`  via BODY <br>
      Ao enviar o <strong>valor</strong> `prop_valor` da negociação, via BODY, utilizar `ponto` e não `vírgula` comos eparador decimal.
      <br>
      Não utilizar formatação de milhar.
      <br>
      EXEMPLO
        ```json
          {
            "fk_etapa_id": "Id Etapa do funil",
            "fk_cli_id": "ID de pessoa", //fk_emp_id não deve ser enviado
            "prop_nome": "Nome da negociação", 
            "fk_user_id": "Id do responsável",
            "prop_valor": "17500.50"
          }
        ```
    post:
      tags:
        - Negociações (propostas)
      consumes:
        - application/json 
      operationId: CreateNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - in: body
          name: pessoasCreate
          # required: true
          schema:
            $ref: "#/definitions/negociosCreate"
      responses:
        200:
          description: Response POST negociacao
          examples: 
              application/json: {
                "code": 200,
                "negociacao": [
                      {
                        "prop_id": "Id da negociação",
                        "fk_etapa_id": "Etapa do funil",
                        "fk_cli_id": "ID pessoa/ NULL se for empresa",
                        "fk_emp_id": "ID empresa/ NULL se for pessoa",
                        "prop_nome": "Nome da negociação",
                        "prop_valor": "Valor",
                        "prop_prazo": "Prazo",
                        "fk_user_id": "Id do responsável",
                        "prop_observacao": "Observação",
                        "prop_ganho": "1 se for ganhgo",
                        "prop_perdido": "1 se perdida",
                        "prop_data_ganho_perda": "Data de ganho ou perda da negociação",
                        "prop_data_criacao": "data criação",
                        "prop_data_alteracao": "Data alteração",
                        "prop_ativo": "1 se ativo/0 se inativo",
                        "prop_slug": "Slug"
                      }
                  ]
              }

        default:
          description: error
  /negociacao/delete/{negid} :
    x-summary : Excluir(desativar)
    x-description : |
      Chamada para excluir(desativar) uma negociação.
      
    put:
      tags:
        - Negociações (propostas)
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: excluirNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: negid
          # in: query
          in: path
          description: insira o id da negociaçãor
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response delete negociacoes
          examples: 
              application/json: {
                "code": 200,
                "msg": "Negociação excluida com sucesso."
              }
        default:
          description: error          
  /negociacao/update/{negid} :
    x-summary : Alterar
    x-description : |
      Para alterar os dados de uma negociação é necessário passar como parâmetro o id `prop_id` desta negociação (proposta).
      <br><br>
      No <strong>Body</strong> encontra-se a estrutura completa do array para alteração, 
      os registros que não sofrerem alterações <strong>deverão ser removidos</strong> da estrutura do array.
      <br>
       EXEMPLO
        ```json
        //Alterar apenas o valor da negociação.
          {
           "prop_valor": "Valor da negociação"
          }
          //Os demais campos do objeto deverão ser removidos.
        ```
      <strong>Alterar Pessoa ou Empresa</strong>
      <br>
      Se a negociação estiver vinculada a uma <strong>pessoa</strong> e permanecerá assim, basta informar o ID da nova pessoa, 
      o mesmo acontece com <strong>empresa</strong>, basta alterar o id da empresa.
      <br>
      EXEMPLO
        ```json
        //Transferir negociação de uma pessoa para outra (ou empresa para empresa).
          {
           "fk_cli_id": "Id da pessoa(cliente)"
          }
          OU
          {
           "fk_emp_id": "Id da empresa"
          }
          //Os demais campos do objeto deverão ser removidos.
        ```
        ><strong>IMPORTANTE</strong>
        <br>
        A estrutura do BODY não permite que sejam enviados `fk_cli_id` e `fk_emp_id` juntos.
        <br>
        Mesmo que um esteja vazio e o outro com valor.
        <br> 
        O campo que não possuir valor <strong>deverá ser removido da estrutura</strong>
        <br>
        
    put:
      tags:
        - Negociações (propostas)
      operationId: updateNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: negid
          # in: query
          in: path
          description: Id da negociação
          required: true
          type: integer
          format: int64
        - in: body
          name: negociosUpdate
          schema:
            $ref: "#/definitions/negociosUpdate"  
      responses:
        200:
          description: Response alterar negociação
          examples: 
              application/json: {
                "negociacao": [
                {
                  "prop_id": "Id da negociação",
                  "fk_etapa_id": "Etapa do Funil",
                  "fk_cli_id": "Se pertencer a pessoa: Id da Pessoa",
                  "fk_emp_id": "Se pertencer a empresa: Id da Empresa",
                  "prop_nome": "Nome da negociação",
                  "prop_valor": "Valor da negociação",
                  "prop_prazo": "Prazo",
                  "fk_user_id": "Id do Responsável",
                  "prop_observacao": "Observação",
                  "prop_ganho": "Flag indicando se negociação for ganha",
                  "prop_perdido": "Flag indicando se negociação for perdida",
                  "prop_data_ganho_perda": "Data em que negociação foi ganha ou perdida",
                  "prop_data_criacao": "Data de criação da negociação",
                  "prop_data_alteracao": "Data que a negociação teve alteração",
                  "prop_ativo": 1,
                  "prop_slug": "Slug"
                }
              ]
            }
         
        default:
          description: error    
  /negociacao/situacao/{situ}/{negid} :
    x-summary : Situação da Negociação
    x-description : |
      Utilize este service para alterar a situação (status) da negociação, ou seja, marcar como <strong>GANHA</strong>, <strong>PERDIDA</strong> e, também para <strong>REABIR</strong> uma negociação.
      <br><br>
      <strong> Instruções </strong>
      <br>
      Siga abaixo as instruções para alterar a situação de uma negociação.
      <br>
      > <strong><i> GANHAR negociação </i></strong>
      <br>
      Além do `Token` envie as seguintes informações em <i>URL Parameters</i>
      <br>
      `situ = 'ganhar'` <br>
      `negid = ID da negociação`
      <br><br>
      
      > <strong><i> PERDER negociação</i></strong>
      <br>
      Além do `Token` envie as seguintes informações em <i>URL Parameters</i>
      <br>
      `situ = 'perder'` <br>
      `negid = ID da negociação`
      <br><br>
      
      > <strong><i> REABRIR negociação</i></strong>
      <br>
      Além do `Token` envie as seguintes informações em <i>URL Parameters</i>
      <br>
      `situ = 'reabrir'` <br>
      `negid = ID da negociação`
      
     
    put:
      tags:
        - Negociações (propostas)
      operationId: situacaoNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: situ
          # in: query
          in: path
          description: Situação da negociação
          required: true
          type: string
        - name: negid
          in: path
          description: Id da negociação
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response alterar negociação
          examples: 
              application/json: {
                "code": 200,
                "msg": 'Proposta alterada com sucesso.'

              }
         
        default:
          description: error    
  /negociacao/etapa/{negid} :
    x-summary : Alterar Etapa
    x-description : |
     Altere a etapa do Funil de vendas de uma negociação.
     <br>
     Informe apenas o `ID da negociação` em URL Parameter e o `ID da etapa` no BODY. 
     
    put:
      tags:
        - Negociações (propostas)
      operationId: etapaNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: negid
          # in: query
          in: path
          description: Id da negociação
          required: true
          type: integer
          format: int64
        - in: body
          name: negociosEtapa
          schema:
            $ref: "#/definitions/negociosEtapa"  
      responses:
        200:
          description: Response alterar etapa
          examples: 
              application/json: {
                "msg" : "Negociação alterada com sucesso"
              }
         
        default:
          description: error              
  /negociacao/troca/{identificador}/{negid} :
    x-summary : Trocar Cliente da Negociação
    x-description : |
      Utilize este service caso uma negociação pertença a uma EMPRESA e deva ser tranferida para uma PESSOA (ou vice-versa).
      <br>
      Basta informar o tipo do novo cliente e o seu id.
      <br>
      EXEMPLO
      > Enviar 'pessoa' e 'Id negociação' via <i>URL Parameter</i> e `fk_cli_id` via <i>BODY</i><br>
      Fará com que o vinculo da negociação seja trocado de cliente, passará de uma Empresa para uma Pessoa
      
    put:
      tags:
        - Negociações (propostas)
      operationId: trocaNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: identificador
          # in: query
          in: path
          description: Tipo do novo cliente, se pessoa ou empresa
          required: true
          type: string
        - name: negid
          in: path
          description: Id da negociação
          required: true
          type: integer
          format: int64
        - in: body
          name: negociosEtapa
          schema:
            $ref: "#/definitions/negociosTrocaCliente"  
      responses:
        200:
          description: Response troca cliente negociação
          examples: 
              application/json: {
                "code": 200,
                "msg": 'Proposta alterada com sucesso.'

              }
         
        default:
          description: error     
  /negociacao/interacao/{negid} :
    x-summary : Criar Interação
    x-description : |
     Inclua interações a uma determinada negociação
     
    post:
      tags:
        - Negociações (propostas)
      operationId: interacaoNeg
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: negid
          # in: query
          in: path
          description: Id da negociação
          required: true
          type: integer
          format: int64
        - in: body
          name: negociosInteracao
          schema:
            $ref: "#/definitions/negociosInteracao"  
      responses:
        200:
          description: Response alterar etapa
          examples: 
              application/json: {
                "interacao": [
                  {
                      "IdInteracao": "ID da Interação",
                      "IdProposta": "ID da negociação",
                      "Interacao": "Interação",
                      "IdResponsavel": "Id Responsável"
                  }
                ]
              }
         
        default:
          description: error                          

# ***
# *** Service Tipos de Compromisso
# ***
  /compromissos/tipo :
    x-summary : Tipos de Compromisso
    x-description : | 
      Todo compromisso criado no Funil PRÓ precisa de um tipo de compromisso para categorizar as atividades a serem realizadas.    
    get:
      tags:
        - Tipo Compromisso
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findTipoComp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response funil
          examples: 
              application/json: {
                 "totalCompromissosTipo": 6,
                  "CompromissosTipo": [
                    {
                      "IdCompromissoTipo": 1,
                      "NomeCompromissoTipo": "Reunião",
                      "ativo/inativo": 1
                    },
                    {
                      "IdCompromissoTipo": 2,
                      "NomeCompromissoTipo": "Ligação",
                      "ativo/inativo": 1
                    },
                    {
                      "IdCompromissoTipo": 3,
                      "NomeCompromissoTipo": "Visita",
                      "ativo/inativo": 1
                    },
                    {
                      "IdCompromissoTipo": 4,
                      "NomeCompromissoTipo": "E-mail",
                      "ativo/inativo": 1
                    },
                    {
                      "IdCompromissoTipo": 5,
                      "NomeCompromissoTipo": "Conferência Web",
                      "ativo/inativo": 1
                    },
                    {
                      "IdCompromissoTipo": 6,
                      "NomeCompromissoTipo": "Cafezinho",
                      "ativo/inativo": 1
                    }
                ]
              }
        default:
          description: error          

# ***
# *** Service Compromissos
# ***          

# Compromissos de Pessoas
  /compromissos/pessoa:
    x-summary : Listar Compromissos de Pessoa
    x-description : | 
      Chamada para consultar OS COMPROMISSOS DE PESSOAS
    get:
      tags:
        - Compromisso de Pessoa 
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findCompPes
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response compromisso pessoas
          examples: 
              application/json: {
                "totalCompromissos": "Total de compromissos de pessoas",
                 "compromissos": [
                    {
                      "IdCompromisso": "Id do compromisso",
                      "CompromissoTipoId": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
                      "CompromissoTipoNome": "Nome do tipo de compromisso",
                      "CompromissoNome": "Nome do compromisso",
                      "CompromissoDescricao": "Descrição (observação)",
                      "CompromissoPrazo": "YYYY/MM/DD HH:MM:SS - Prazo",
                      "PessoaID": "Id da pessoa (cliente)",
                      "PessoaNome": "Nome da pessoa (cliente)",
                      "UsuarioId": "Id responsável",
                      "UsuarioNome": "Nome do responsável",
                      "CompromissoFinalziado": "0 se aberto/1 se finalizado",
                      "CompromissoDataFinalizado": "YYYY/MM/DD- Se finalizado, data de finalização",
                      "CompromissoSlug": "Slug"
                  }
                 ]
              }
        default:
          description: error
  /compromissos/pessoa/deleta/{idcomp} :
    x-summary : Excluir Compromisso de Pessoa
    x-description : |
      Chamada para excluir(desativar) compromisso de pessoa
    put:
      tags:
        - Compromisso de Pessoa
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: excluirCompPes
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: idcomp
          # in: query
          in: path
          description: insira o id do compromisso de pessoa
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response delete compromisso pessoa
          examples: 
              application/json: {
                "code": 200,
                "msg": "Compromisso excluído com sucesso"
              }
        default:
          description: error          
  /compromissos/pessoa/novo :
    x-summary : Cadastrar compromisso
    x-description : |
      Chamada para cadastrar um novo compromisso vinculado a uma pessoa.
      
    post:
      tags:
        - Compromisso de Pessoa
      consumes:
        - application/json 
      operationId: CreateComPes
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - in: body
          name: compromissoPesCreate
          # required: true
          schema:
            $ref: "#/definitions/compromissoPesCreate"
      responses:
        200:
          description: Response POST compromisso pessoa
          examples: 
             application/json: {
                  "compromisso": [
                    {
                      "IdCompromisso": "Id do compromisso",
                      "CompromissoTipoId": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
                      "CompromissoTipoNome": "Nome do tipo de compromisso",
                      "CompromissoNome": "Nome do compromisso",
                      "CompromissoDescricao": "Descrição (observação)",
                      "CompromissoPrazo": "YYYY/MM/DD HH:MM:SS - Prazo",
                      "PessoaID": "Id da pessoa (cliente)",
                      "PessoaNome": "Nome da pessoa (cliente)",
                      "UsuarioId": "Id responsável",
                      "UsuarioNome": "Nome do responsável",
                      "CompromissoFinalziado": "0 se aberto/1 se finalizado",
                      "CompromissoDataFinalizado": "YYYY/MM/DD- Se finalizado, data de finalização",
                      "CompromissoSlug": "Slug"
                    }
                  ]
                }

        default:
          description: error
  /compromissos/pessoa/update/{idcomp} :
    x-summary : Alterar Compromisso
    x-description : |
      Alterar compromisso de pessoa
        
    put:
      tags:
        - Compromisso de Pessoa
      operationId: updateComPes
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: idcomp
          # in: query
          in: path
          description: Id do compromisso de pessoa
          required: true
          type: integer
          format: int64
        - in: body
          name: compromissoPesUpdate
          schema:
            $ref: "#/definitions/compromissoPesUpdate"  
      responses:
        200:
          description: Response alterar compromisso de pessoa
          examples: 
              application/json: {
                "compromisso": [
                {
                  "IdCompromisso": "Id do compromisso",
                  "CompromissoTipoId": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
                  "CompromissoTipoNome": "Nome do Tipo Compromisso",
                  "CompromissoNome": "Nome do compromisso",
                  "CompromissoDescricao": "Descrição (observação)",
                  "CompromissoPrazo": "YYYY/MM/DD HH:MM:SS - Prazo",
                  "PessoaID": "Id da pessoa (cliente)",
                  "PessoaNome": "Nome da pessoa",
                  "UsuarioId": "Id responsável",
                  "UsuarioNome": "Responsável",
                  "CompromissoFinalziado": "0 se aberto/1 se finalizado",
                  "CompromissoDataFinalizado": "YYYY/MM/DD- Se finalizado, data de finalização",
                  "CompromissoSlug": "Slug"
                }
              ]
            }
         
        default:
          description: error      
  
  
  
  /compromissos/pessoa/finaliza/{idcomp} :
    x-summary : Situação Compromisso de Pessoa
    x-description : |
      Chamada para finalizar ou reabrir um compromisso.
    put:
      tags:
        - Compromisso de Pessoa
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: compromissoPesStatus
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: idcomp
          # in: query
          in: path
          description: insira o id do compromisso de pessoa
          required: true
          type: integer
          format: int64
        - in: body
          name: compromissoPesStatus
          # required: true
          schema:
            $ref: "#/definitions/compromissoPesStatus"
      responses:
        200:
          description: Response finaliza compromisso pessoa
          examples: 
              application/json: {
                "code": 200,
                "msg": "Compromisso finalizado com sucesso"
              }
        default:
          description: error      
    
# Compromissos de Empresa
  /compromissos/empresa:
    x-summary : Listar Compromissos de Empresas
    x-description : | 
      Chamada para consultar OS COMPROMISSOS DE EMPRESAS
    get:
      tags:
        - Compromisso de Empresas 
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: findCompEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response compromisso empresa
          examples: 
              application/json: {
                "totalCompromissos": "Total de compromissos de pessoas",
                 "compromissos": [
                    {
                      "IdCompromisso": "Id do compromisso",
                      "CompromissoTipoId": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
                      "CompromissoTipoNome": "Nome do tipo de compromisso",
                      "CompromissoNome": "Nome do compromisso",
                      "CompromissoDescricao": "Descrição (observação)",
                      "CompromissoPrazo": "YYYY/MM/DD HH:MM:SS - Prazo",
                      "EmpresaID": "Id da empresa (cliente)",
                      "EmpresaNome": "Nome da empresa (cliente)",
                      "UsuarioId": "Id responsável",
                      "UsuarioNome": "Nome do responsável",
                      "CompromissoFinalziado": "0 se aberto/1 se finalizado",
                      "CompromissoDataFinalizado": "YYYY/MM/DD- Se finalizado, data de finalização",
                      "CompromissoSlug": "Slug"
                  }
                 ]
              }
        default:
          description: error        
  /compromissos/empresa/deleta/{idcomp} :
    x-summary : Excluir Compromisso de Empresa
    x-description : |
      Chamada para excluir(desativar) compromisso de pessoa
    put:
      tags:
        - Compromisso de Empresas
      operationId: excluirCompEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: idcomp
          # in: query
          in: path
          description: insira o id do compromisso de empresa
          required: true
          type: integer
          format: int64
      responses:
        200:
          description: Response delete compromisso empresa
          examples: 
              application/json: {
                "code": 200,
                "msg": "Compromisso excluído com sucesso"
              }
        default:
          description: error            
  /compromissos/empresa/novo :
    x-summary : Cadastrar compromisso
    x-description : |
      Chamada para cadastrar um novo compromisso vinculado a uma empresa.
      
    post:
      tags:
        - Compromisso de Empresas
      consumes:
        - application/json 
      operationId: compromissoEmpCreate
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - in: body
          name: compromissoEmpCreate
          # required: true
          schema:
            $ref: "#/definitions/compromissoEmpCreate"
      responses:
        200:
          description: Response POST compromisso Empresa
          examples: 
              application/json: {
                "compromisso": [
                  {
                    "IdCompromisso": "Id do compromisso",
                    "CompromissoTipoId": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
                    "CompromissoTipoNome": "Nome do tipo de compromisso",
                    "CompromissoNome": "Nome do compromisso",
                    "CompromissoDescricao": "Descrição (observação)",
                    "CompromissoPrazo": "YYYY/MM/DD HH:MM:SS - Prazo",
                    "EmpresaID": "Id da empresa (cliente)",
                    "EmpresaNome": "Nome da empresa (cliente)",
                    "UsuarioId": "Id responsável",
                    "UsuarioNome": "Nome do responsável",
                    "CompromissoFinalziado": "0 se aberto/1 se finalizado",
                    "CompromissoDataFinalizado": "YYYY/MM/DD- Se finalizado, data de finalização",
                    "CompromissoSlug": "Slug"
                  }
                ]
              }

        default:
          description: error          
  /compromissos/empresa/update/{idcomp} :
    x-summary : Alterar Compromisso
    x-description : |
      Alterar compromisso de empresa
        
    put:
      tags:
        - Compromisso de Empresas
      operationId: updateComEmp
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: idcomp
          # in: query
          in: path
          description: Id do compromisso de empresa
          required: true
          type: integer
          format: int64
        - in: body
          name: compromissoEmpUpdate
          schema:
            $ref: "#/definitions/compromissoEmpUpdate"  
      responses:
        200:
          description: Response alterar compromisso de empresa
          examples: 
              application/json: {
                "compromisso": [
                {
                  "IdCompromisso": "Id do compromisso",
                  "CompromissoTipoId": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
                  "CompromissoTipoNome": "Nome do Tipo Compromisso",
                  "CompromissoNome": "Nome do compromisso",
                  "CompromissoDescricao": "Descrição (observação)",
                  "CompromissoPrazo": "YYYY/MM/DD HH:MM:SS - Prazo",
                  "EmpresaID": "Id da empresa (cliente)",
                  "EmpresaNome": "Nome da emp´resa",
                  "UsuarioId": "Id responsável",
                  "UsuarioNome": "Responsável",
                  "CompromissoFinalziado": "0 se aberto/1 se finalizado",
                  "CompromissoDataFinalizado": "YYYY/MM/DD- Se finalizado, data de finalização",
                  "CompromissoSlug": "Slug"
                }
              ]
            }
         
        default:
          description: error                
  /compromissos/empresa/finaliza/{idcomp} :
    x-summary : Status Compromisso de Empresa
    x-description : |
      Chamada para finalizar ou reabrir um compromisso.
    put:
      tags:
        - Compromisso de Empresas
      # description: |
        # Chamada para consultar seus clientes ativos. 
      operationId: compromissoEmpStatus
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
        - name: idcomp
          # in: query
          in: path
          description: insira o id do compromisso de empresa
          required: true
          type: integer
          format: int64
        - in: body
          name: compromissoEmpStatus
          # required: true
          schema:
            $ref: "#/definitions/compromissoEmpStatus"
      responses:
        200:
          description: Response finaliza compromisso empresa
          examples: 
              application/json: {
                "code": 200,
                "msg": "Compromisso finalizado com sucesso"
              }
        default:
          description: error 
          
# ***
# *** Service Configurações
# ***
  
# Configurações de Produtos
  /configuracao/produtos/ :
      x-summary : Produtos - Listar 
      x-description : | 
        Chamada para consultar os produtos cadastrados.
        
      get:
        tags:
          - Configurações
        # operationId: findCli
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
        responses:
          200:
            description: response produtos
            examples: 
                application/json: {
                  "code": 200,
                  "totalProdutos": "",
                  "data": [
                       {
                          "ProdutoId": "",
                          "ProdutoNome": "",
                          "ProdutoSlug": "",
                          "ativo/inativo"
                        }
                    ]
                  }
          default:
            description: error        
  /configuracao/produtos/delete/{proid} :
      x-summary : Produtos - Excluir
      x-description : | 
        Chamada para excluir os produtos cadastrados.
        
        `Um Produto só pode ser excluído caso não esteja sendo usado em uma negociação.`
        
      put:
        tags:
          - Configurações
        operationId: proid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - name: proid
            # in: query
            in: path
            description: insira o id do produto que deseja excluir
            required: true
            type: integer
            format: int64  
        responses:
          200:
            description: response produtos
            examples: 
                application/json: {
                    "produto": [
                      {
                        "ProdutoId": "",
                        "ProdutoNome": "",
                        "ProdutoSlug": "",
                        "ativo/inativo": 0
                      }
                    ]
                  }
          default:
            description: error 
  /configuracao/produtos/novo :  
      x-summary : Produtos - Cadastrar
      x-description : |
        Cadastrar novos produtos
        <br>
        O array de produto poderá receber mais de um produto
        <br> 
        EXEMPLO
          ```json
            "produtos": [
              {
                "prod_nome": "produto 1"
              },
              {
                "prod_nome": "produto 2"
              },
              {...},
            ]
          ```
      post:
        tags:
          - Configurações
        consumes:
          - application/json 
        operationId: CreateProd
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: body
            name: prodnome
            # required: true
            schema:
              $ref: "#/definitions/produtoCreate"
        responses:
          200:
            description: Response POST empresa
            examples: 
                application/json: {
                    "code": 200,
                    "data": [
                      {
                        "ProdutoId": "",
                        "ProdutoNome": "",
                        "ProdutoSlug": "",
                        "ativo/inativo"
                      }
                    ]
                  }
          default:
            description: error
  /configuracao/produtos/update/{proid} :
      x-summary : Produtos - Alterar 
      x-description : | 
        Chamada para alterar o nome de um produtos.
        
      put:
        tags:
          - Configurações
        operationId: proid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: path
            # in: query
            name: proid
            description: insira o id do produto que deseja alterar
            required: true
            type: integer
            format: int64  
          - in: body
            name: produtoUpdate
            schema:
              $ref: "#/definitions/produtoUpdate"    
        responses:
          200:
            description: response produtos
            examples: 
                application/json: {
                  "produto": [
                       {
                          "ProdutoId": "IdProduto",
                          "ProdutoNome": "NomeProduto",
                          "ProdutoSlug": "Slug",
                          "ativo/inativo": 1
                        }
                    ]
                  }
          default:
            description: error 
  
# Configurações de  Categorias
  /configuracao/categorias :
    x-summary : Categorias - Listar 
    x-description : | 
      Chamada para consultar as categorias cadastradas.
        
    get:
      tags:
        - Configurações
        # operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response categorias
          examples: 
              application/json: {
                "code": 200,
                "totalCategorias": "",
                "data": [
                   {
                      "CategoriaId": "",
                      "CategoriaNome": "",
                      "ativo/inativo"
                    }
                    ]
                  }
        default:
          description: error    
  /configuracao/categorias/delete/{catid} :
      x-summary : Categorias - Excluir
      x-description : | 
        Chamada para excluir categorias cadastradas.
        
        `Uma Categoria só pode ser excluído caso não esteja sendo usado por uma pessoa/empresa.`
        
      put:
        tags:
          - Configurações
        operationId: catid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - name: catid
            # in: query
            in: path
            description: insira o id da categoria que deseja excluir
            required: true
            type: integer
            format: int64  
        responses:
          200:
            description: response categorias
            examples: 
                application/json: {
                    "categoria": [
                      {
                        "CategoriaId": "",
                        "CategoriaNome": "",
                        "ativo/inativo": 0
                      }
                    ]
                  }
          default:
            description: error 
  /configuracao/categorias/novo :  
      x-summary : Categorias - Cadastrar 
      x-description : |
        Cadastrar novas categorias
        <br>
        O array de produto poderá receber mais de uma categoria
        <br> 
        EXEMPLO
          ```json
          {
            "categorias": [
              {
                "categ_nome": "Uma categoria"
              },
              {
                "categ_nome": "Outra categoria"
              },
              {...}
            ]
          }
          ```
      post:
        tags:
          - Configurações
        consumes:
          - application/json 
        operationId: CreateCateg
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: body
            name: categnome
            # required: true
            schema:
              $ref: "#/definitions/categoriaCreate"
        responses:
          200:
            description: Response POST categorias
            examples: 
                application/json: {
                    "code": 200,
                    "data": [
                       "categoria": [
                          {
                            "CategoriaId": "IdCategoria",
                            "CategoriaNome": "NomeCategoria",
                            "ativo/inativo": 1
                          }
                        ]
                      ]
                    }
          default:
            description: error
  /configuracao/categorias/update/{catid} :
      x-summary : Categorias - Alterar
      x-description : | 
        Chamada para alterar uam categoria.
        
      put:
        tags:
          - Configurações
        operationId: catid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: path
            # in: query
            name: catid
            description: insira o id ca categoria
            required: true
            type: integer
            format: int64  
          - in: body
            name: categoriaUpdate
            schema:
              $ref: "#/definitions/categoriaUpdate"    
        responses:
          200:
            description: response categorias
            examples: 
                application/json: {
                  "categoria": [
                        {
                            "CategoriaId": 33,
                            "CategoriaNome": "Apostrofo",
                            "ativo/inativo": 1
                        }
                    ]
                  }
          default:
            description: error 

# Configurações de TAGs
  /configuracao/tags :
    x-summary : TAGs - Listar
    x-description : | 
      Chamada para consultar as TAGs cadastradas.
        
    get:
      tags:
        - Configurações
        # operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response tags
          examples: 
              application/json: {
                "code": 200,
                "totalTags": "",
                "data": [
                   {
                      "TagId": "",
                      "TagNome": "",
                      "TagDescricao",
                      "ativo/inativo"
                    }
                  ]
                }
        default:
          description: error      
  /configuracao/tags/delete/{tagid} :
      x-summary : TAGs - Excluir
      x-description : | 
        Chamada para excluir uma TAG.
        
        `Uma TAG só pode ser excluído caso não esteja sendo usado por uma pessoa/empresa.`
        
      put:
        tags:
          - Configurações
        operationId: tagid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - name: tagid
            # in: query
            in: path
            description: insira o id da TAG.
            required: true
            type: integer
            format: int64  
        responses:
          200:
            description: response tags
            examples: 
                application/json: {
                    "tag": [
                      {
                        "TagId": "",
                        "TagNome": "",
                        "TagDescricao": "",
                        "ativo/inativo": 0
                      }
                    ]
                  }
          default:
            description: error      
  /configuracao/tags/novo :  
      x-summary : TAGs - Cadastrar 
      x-description : |
        Cadastrar novas TAGs
        <br>
        O array de tags poderá receber mais de uma categoria
        <br> 
        EXEMPLO
          ```json
          {
            "tags": [
              {
                "tag_nome": "TAG joinha",
                "tag_descricao": "Descrição da tag joinha"
              },
              {
                "tag_nome": "TAG legal",
                "tag_descricao": "Descrição da tag legal"
              },
              {...}
            ]
          }
          ```
      post:
        tags:
          - Configurações
        consumes:
          - application/json 
        operationId: Createtag
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: body
            name: tagnome
            # required: true
            schema:
              $ref: "#/definitions/tagCreate"
        responses:
          200:
            description: Response POST categorias
            examples: 
                application/json: {
                    "code": 200,
                    "data": [
                       "tags": [
                          {
                            "msg": "Tags cadastradas com sucesso"
                          }
                        ]
                      ]
                    }
          default:
            description: error            
  /configuracao/tags/update/{tagid} :
      x-summary : TAGs - Alterar
      x-description : | 
        Chamada para alterar uma TAG.
        
      put:
        tags:
          - Configurações
        operationId: tagid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: path
            # in: query
            name: tagid
            description: insira o id da tag
            required: true
            type: integer
            format: int64  
          - in: body
            name: tagUpdate
            schema:
              $ref: "#/definitions/tagUpdate"    
        responses:
          200:
            description: response tags
            examples: 
                application/json: {
                  "tag": [
                        {
                          "TagId": "",
                          "TagNome": "",
                          "TagDescricao": "",
                          "ativo/inativo": 1
                        }
                    ]
                  }
          default:
            description: error 

# Configurações de Cargos
  /configuracao/cargos :
    x-summary : Cargos - Listar
    x-description : | 
      Chamada para consultar os Cargos cadastrados.
        
    get:
      tags:
        - Configurações
        # operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response cargos
          examples: 
              application/json: {
                "code": 200,
                "totalCargos": "",
                "data": [
                   {
                      "CargoId": "",
                      "CargoNome": "",
                      "ativo/inativo"
                    }
                  ]
                }
        default:
          description: error      
  /configuracao/cargos/delete/{carid} :
      x-summary : Cargos - Excluir
      x-description : | 
        Chamada para excluir um Cargo.
        
        `Um cargo só pode ser excluído caso não esteja sendo usado por uma pessoa.`
      put:
        tags:
          - Configurações
        operationId: carid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - name: carid
            # in: query
            in: path
            description: insira o id do cargo.
            required: true
            type: integer
            format: int64  
        responses:
          200:
            description: response cargos
            examples: 
                application/json: {
                    "cargo": [
                      {
                        "CargoId": "",
                        "CargoNome": "",
                        "ativo/inativo": 0
                      }
                    ]
                  }
          default:
            description: error      
  /configuracao/cargos/novo :  
      x-summary : Cargos - Cadastrar 
      x-description : |
        Cadastrar novos Cargos
        <br>
        O array de cargos poderá receber mais de um cargo por 'insert'
        <br> 
        EXEMPLO
          ```json
          {
            "cargos": [
              {"car_nome": "Cargo importante"},
              {"car_nome": "Estagiário, importante tb =)"},
              {...}
            ]
          }
          ```
      post:
        tags:
          - Configurações
        consumes:
          - application/json 
        operationId: cargoCreate
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: body
            name: carnome
            # required: true
            schema:
              $ref: "#/definitions/cargoCreate"
        responses:
          200:
            description: Response POST cargos
            examples: 
                application/json: {
                    "code": 200,
                    "data": [
                       "cargos": [
                          {
                            "msg": "Cargos cadastrados com sucesso"
                          }
                        ]
                      ]
                    }
          default:
            description: error            
  /configuracao/cargos/update/{carid} :
      x-summary : Cargos - Alterar
      x-description : | 
        Chamada para alterar um Cargo.
        
      put:
        tags:
          - Configurações
        operationId: carid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: path
            # in: query
            name: carid
            description: insira o id da cargo
            required: true
            type: integer
            format: int64  
          - in: body
            name: cargoUpdate
            schema:
              $ref: "#/definitions/cargoUpdate"    
        responses:
          200:
            description: response cargos
            examples: 
                application/json: {
                  "cargo": [
                        { 
                          "CargoId": "Id do cargo",
                          "CargoNome": "update novo valor",
                          "ativo/inativo": 0
                        }
                    ]
                  }
          default:
            description: error 

# Configurações de Tipo de E-mail
  /configuracao/email_tipo :
    x-summary : Tipos de E-mail - Listar
    x-description : | 
      Chamada para consultar os tipos de e-mails cadastrados.
        
    get:
      tags:
        - Configurações
        # operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response tipo_email
          examples: 
              application/json: {
                "code": 200,
                "totalEmailTipo": "",
                "EmailTipo": [
                   {
                      "EmailTipoId": "",
                      "EmailTipoNome": "",
                      "ativo/inativo"
                    }
                  ]
                }
        default:
          description: error      
  /configuracao/email_tipo/delete/{etipoid} :
      x-summary : Tipos de E-mail - Excluir
      x-description : | 
        Chamada para excluir Tipo de E-mail.
        
        `Um Tipo de E-mail só pode ser excluído caso não esteja sendo usado.`
      put:
        tags:
          - Configurações
        operationId: etipoid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - name: etipoid
            # in: query
            in: path
            description: insira o id do tipo de e-mail.
            required: true
            type: integer
            format: int64  
        responses:
          200:
            description: response tipo_email
            examples: 
                application/json: {
                    "EmailTipo": [
                      {
                        "EmailTipoId": "",
                        "EmailTipoNome": "",
                        "ativo/inativo": 0
                      }
                    ]
                  }
          default:
            description: error      
  /configuracao/email_tipo/novo :  
      x-summary : Tipos de E-mail - Cadastrar 
      x-description : |
        Cadastrar novos Tipos de E-mail
        <br>
        O array de Tipos de E-mail poderá receber mais de um tipo por 'insert'
        <br> 
        EXEMPLO
          ```json
          {
            "emailTipo": [
              {"emt_nome": "Tipo de e-mail"},
              {"emt_nome": "Outro tipo de e-mail"},
              {...}
            ]
          }
          ```
      post:
        tags:
          - Configurações
        consumes:
          - application/json 
        operationId: tipoemailCreate
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: body
            name: tipoemailnome
            # required: true
            schema:
              $ref: "#/definitions/tipoEmailCreate"
        responses:
          200:
            description: Response POST cargos
            examples: 
                application/json: {
                    "code": 200,
                    "data": [
                       "cargos": [
                          {
                            "msg": "Email tipo cadastrado com sucesso"
                          }
                        ]
                      ]
                    }
          default:
            description: error                        
  /configuracao/email_tipo/update/{etipoid} :
      x-summary : Tipos de Email - Alterar
      x-description : | 
        Chamada para alterar um Tipo de E-mail.
        
      put:
        tags:
          - Configurações
        operationId: etipoid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: path
            # in: query
            name: etipoid
            description: insira o id do tipo de e-mail
            required: true
            type: integer
            format: int64  
          - in: body
            name: tipoEmailUpdate
            schema:
              $ref: "#/definitions/tipoEmailUpdate"    
        responses:
          200:
            description: response tipo_email
            examples: 
                application/json: {
                  "EmailTipo": [
                        { 
                          "EmailTipoId": "Id do tipo e-mail",
                          "EmailTipoNome": "update novo valor",
                          "ativo/inativo": 0
                        }
                    ]
                  }
          default:
            description: error 

# Configurações de Grupo de Usuários
  /configuracao/grupos_usuarios :
    x-summary : Grupos - Listar
    x-description : | 
      Chamada para consultar os Grupos de Usuários cadastrados.
        
    get:
      tags:
        - Configurações
        # operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response grupos_usuarios
          examples: 
              application/json: {
                "totalGrupoUsuario": "",
                "GrupoUsuario": [
                   {
                      "GrupoUsuarioId": "",
                      "GrupoUsuarioNome": "",
                      "ativo/inativo": 1
                    }
                  ]
                }
        default:
          description: error      
  /configuracao/grupos_usuarios/delete/{grupoid} :
      x-summary : Grupos - Excluir
      x-description : | 
        Chamada para excluir um Grupo de Usuários.
        
        `Um Grupo só pode ser excluído caso não esteja vinculado a um usuário.`
      put:
        tags:
          - Configurações
        operationId: grupoid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - name: grupoid
            # in: query
            in: path
            description: insira o id do grupo.
            required: true
            type: integer
            format: int64  
        responses:
          200:
            description: response grupos_usuarios
            examples: 
                application/json: {
                    "grupoUsuario": [
                      {
                        "GrupoUsuarioId": "",
                        "GrupoUsuarioNome": "",
                        "ativo/inativo": 0
                      }
                    ]
                  }
          default:
            description: error      
  /configuracao/grupos_usuarios/novo :  
      x-summary : Grupos - Cadastrar 
      x-description : |
        Cadastrar novos Grupos de Usuários
        <br>
        O array de Grupo poderá receber mais de um registro por 'insert'
        <br> 
        EXEMPLO
          ```json
          {
            "grupoUsuario": [
              {"gru_nome": "Um setor de sua empresa"},
              {"gru_nome": "Um time da equipe comercial"},
              {...}
            ]
          }
          ```
      post:
        tags:
          - Configurações
        consumes:
          - application/json 
        operationId: gruposUsuariosCreate
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: body
            name: gruponome
            # required: true
            schema:
              $ref: "#/definitions/gruposUsuariosCreate"
        responses:
          200:
            description: Response POST grupos de usuarios
            examples: 
                application/json: {
                    "code": 200,
                    "data": [
                       "grupoUsuario": [
                          {
                            "msg": "Grupo cadastrado com sucesso"
                          }
                        ]
                      ]
                    }
          default:
            description: error                                  
  /configuracao/grupos_usuarios/update/{grupoid} :
      x-summary : Grupos - Alterar
      x-description : | 
        Chamada para alterar um Grupo de Usuário.
        
      put:
        tags:
          - Configurações
        operationId: grupoid
        parameters:
          - in: header
            name: TokenFunil
            description: Seu Token (Menu Configurações > Área de Integrações)
            type: string
            required: true
          - in: path
            # in: query
            name: grupoid
            description: insira o id do grupo
            required: true
            type: integer
            format: int64  
          - in: body
            name: gruposUsuariosUpdate
            schema:
              $ref: "#/definitions/gruposUsuariosUpdate"    
        responses:
          200:
            description: response grupos_usuarios
            examples: 
                application/json: {
                  "grupoUsuario": [
                        { 
                          "GrupoUsuarioId": "",
                          "GrupoUsuarioNome": "",
                          "ativo/inativo": 1
                        }
                    ]
                  }
          default:
            description: error   
          
# Configurações de Usuários (listagem)
  /configuracao/usuarios :
    x-summary : Usuários - Listar
    x-description : | 
      Chamada para consultar os usuário ativos do Funil PRÓ
        
    get:
      tags:
        - Configurações
        # operationId: findCli
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response usuarios
          examples: 
              application/json: {
                "totalUsuarios": "",
                "GrupoUsuario": [
                   {
                      "UsuarioId": "",
                      "PerfilId": "",
                      "PerfilNome": "",
                      "GrupoId": "",
                      "GrupoNome": "",
                      "UsuarioNome": "",
                      "UsuarioEmail": "",
                      "UsuarioSlug": ""
                    }
                  ]
                }
        default:
          description: error          
# ***
# *** Service Webhooks
# ***   
  /webhook :
    x-summary : Webhooks do Funil PRÓ
    x-description : | 
      É possível receber informações do Funil PRÓ a partir de determinados eventos.
      <br>
      Acesse o Funil PRÓ e vá até  [Área de Integração](https://a9p.funil.pro/#/integracoes), 
      selecione a tab<b> `Webhooks` </b>e cadastre suas URLs para recebimentos dos eventos.
      Abaixo você tem acesso a todos os eventos disposíveis.
      <br>
      
      ## Eventos de negociação.
      #### Criação de negociação <br>
      > Event: <b> `neg` </b> <br>
      
      A URL cadastrada no  <b> Evento `neg` </b> receberá os dados de criação da negociação.
      
       #### Situação da negociação <br>
      > Event: <b>`negsit` </b> <br>
      
      A URL cadastrada no  <b> Evento `negsit` </b> receberá os dados básicos de uma negociação sempre que sua situação for alterada, assim como a sua nova situação.
      <br>
      ###### SITUAÇÕES
      * `GANHA` - 
      Evento disparado sempre que uma negociação é marcada como <b> ganha</b>.
      * `PERDIDA` - 
      Evento disparado sempre que uma negociação é marcada como <b> perdida</b>.
      * `REABERTA` - 
      Evento disparado sempre que uma negociação é <b> reaberta</b>.
      
      #### Alteração de negociação <br>
      > Event: <b> `negalter` </b> <br>
      
      A URL cadastrada no  <b> Evento `neg` </b> receberá os dados de alteração da negociação.
      ###### GATILHOS
      * Após salvar uma edição da negociação; 
      * Ao vincular um compromisso;
      * Alterar a etapa do funil;
      * Criar uma interação. 
      <br>
      #### Cadastro de uma pessoa <br>
      > Event: <b>`pessoa` </b> <br>
      
      A URL cadastrada no  <b> Evento `pessoa` </b> receberá os dados de uma pessoa sempre que houver um novo cadastro.
      <br>
      #### Edição de uma pessoa <br>
      > Event: <b>`pessoa_alter` </b> <br>
      
      A URL cadastrada no  <b> Evento `pessoa_alter` </b> receberá todos os dados associados a uma pessoa sempre que houver uma alteração.
      <br>
      #### Cadastro de uma empresa <br>
      > Event: <b>`empresa` </b> <br>
      
      A URL cadastrada no  <b> Evento `empresa` </b> receberá os dados de uma empresa sempre que houver um novo cadastro.
      <br>
      #### Edição de uma empresa <br>
      > Event: <b>`empresa_alter` </b> <br>
      
      A URL cadastrada no  <b> Evento `empresa_alter` </b> receberá todos os dados associados a uma empresa sempre que houver uma alteração.
      <br>
      <br>
      #### Consultar webhooks cadastrados <br>
      O método `GET` abaixo exibe as URL cadastradas assim como o modelo do objeto disparado em cada evento.
      
    get:    
      tags:
        - Webhooks
      operationId: webhook
      parameters:
        - in: header
          name: TokenFunil
          description: Seu Token (Menu Configurações > Área de Integrações)
          type: string
          required: true
      responses:
        200:
          description: response tags

        default:
          description: error

# ***
# *** Service Mail mkt
# ***   
  # /mailmkt/contatos :
  #   x-summary : automação e marketing Funil PRÓ
  #   x-description : | 
  #     retorna os contatos cadastrados.
      
  #   get:    
  #     tags:
  #       - mailmkt
  #     operationId: mailmkt
  #     parameters:
  #       - in: header
  #         name: TokenFunil
  #         description: Seu Token (Menu Configurações > Área de Integrações)
  #         type: string
  #         required: true
  #     responses:
  #       200:
  #         description: response tags

  #       default:
  #         description: error

# /mailmkt/contatos/:id :
#   x-summary : automação e marketing Funil PRÓ
#   x-description : | 
#     retorna os contatos cadastrados.
    
#   get:    
#     tags:
#       - mailmkt
#     operationId: mailmkt
#     parameters:
#       - in: header
#         name: TokenFunil
#         description: Seu Token (Menu Configurações > Área de Integrações)
#         type: string
#         required: true
#     responses:
#       200:
#         description: response tags

#       default:
#         description: error   




definitions:
# ***                 
# *** Definitions Service Pessoa
# ***
  pessoasCreate:
    type: object
    example: {
      "fk_user_id": "IdResponsavel",
      "cli_nome": "NomePessoa",
      "cli_email": "Email",
      "cli_telefone": "Fone1",
      "cli_telefone2": "Fone2",
      "fk_categ_id": "IdCategoria",
      "fk_car_id": "IdCargo",
      "fk_emp_id": "IdEmpresa",
      "cli_cpf": "Cpf - somente numeros",
      "cli_observacao": "Observação",
      "identificador": "tag que identifica a origem do cadastro",
      "endereco": [
        {
          "endcli_logradouro":"Logradouro",
          "endcli_numero":"Numero",
          "endcli_complemento":"Complemento",
          "endcli_cep":"Cep",
          "endcli_bairro":"Bairro",
          "endcli_pais":"País",
          "endcli_cidade":"Cidade",
          "endcli_estado":"Estado",
          "endcli_latitude":"LatitudeMapa",
          "endcli_longitude":"LongitudeMapa"
        }
      ],
      "lista_email": [
        {
          "fk_emt_id":"IdEmailTipo",
          "emc_email":"Email"
        }
      ],
      "redes_sociais": [
        {
          "snc_url":"RedeSocialPessoa",
          "fk_sn_id":"IdRedeSocial"
        }
      ],
      "tags": [
        {
          "fk_tag_id":"IdTag",
          "tagcli_origem":"OrigemTag"
        }
      ],
      "atendimentos": [
          {
          "atdcli_descricao":"Atendimento",
          "fk_user_id":"IdResponsavel"
        }
      ]
    }
    required:
      - fk_user_id
      - cli_nome
      - cli_email
      - cli_telefone
      - cli_telefone2
      - fk_categ_id
      - fk_car_id
      - fk_emp_id
      - cli_cpf
      - cli_observacao
    properties:
      fk_user_id:
        type: string
      cli_nome:
        type: string
      cli_email:
        type: string
      cli_telefone:
        type: string
      cli_telefone2:
        type: string
      fk_categ_id:
        type: integer
      fk_car_id:
        type: integer
        description: id
      fk_emp_id:
        type: integer
        description: id
      cli_cpf:
        type: string
      cli_observacao:
        type: string
  pessoasUpdate:
    type: object
    example: {
      "fk_user_id": "IdResponsavel",
      "cli_nome": "NomePessoa",
      "cli_email": "Email",
      "cli_telefone": "Fone1",
      "cli_telefone2": "Fone2",
      "fk_categ_id": "IdCategoria",
      "fk_car_id": "IdCargo",
      "fk_emp_id": "IdEmpresa",
      "cli_cpf": "Cpf - somente numeros",
      "cli_observacao": "Observação",
      "endereco": [
        {
          "endcli_logradouro":"Logradouro",
          "endcli_numero":"Numero",
          "endcli_complemento":"Complemento",
          "endcli_cep":"Cep",
          "endcli_bairro":"Bairro",
          "endcli_pais":"País",
          "endcli_cidade":"Cidade",
          "endcli_estado":"Estado",
          "endcli_latitude":"LatitudeMapa",
          "endcli_longitude":"LongitudeMapa"
        }
      ],
      "lista_email": [
        {
          "fk_emt_id":"IdEmailTipo",
          "emc_email":"Email"
        }
      ],
      "tags": [
        {
          "fk_tag_id":"IdTag",
          "tagcli_origem":"OrigemTag"
        }
      ],
      "atendimentos": [
          {
          "atdcli_descricao":"Atendimento",
          "fk_user_id":"IdResponsavel"
        }
      ]
    }
    required:
      - fk_user_id
      - cli_nome
      - cli_email
      - cli_telefone
      - cli_telefone2
      - fk_categ_id
      - fk_car_id
      - fk_emp_id
      - cli_cpf
      - cli_observacao
    properties:
      fk_user_id:
        type: string
      cli_nome:
        type: string
      cli_email:
        type: string
      cli_telefone:
        type: string
      cli_telefone2:
        type: string
      fk_categ_id:
        type: integer
      fk_car_id:
        type: integer
        description: id
      fk_emp_id:
        type: integer
        description: id
      cli_cpf:
        type: string
      cli_observacao:
        type: string

# ***
# *** Definitions Empresa
# ***
  empresasCreate:
    type: object
    example: {
      "fk_user_id": "IdResponsavel",
      "emp_nome": "NomeEmpresa",
      "emp_email": "Email",
      "emp_telefone": "Fone1",
      "emp_telefone2": "Fone2",
      "fk_categ_id": "IdCategoria",
      "emp_cnpj": "Cnpj - somente numeros",
      "emp_observacao": "Observacao",
      "endereco": [
        {
            "endemp_logradouro": "Logradouro",
            "endemp_numero": "Número",
            "endemp_complemento": "Complemento",
            "endemp_cep": "Cep",
            "endemp_bairro": "Bairro",
            "endemp_pais": "País",
            "endemp_cidade": "Cidade",
            "endemp_estado": "Estado",
            "endemp_latitude": "LatitudeMapa",
            "endemp_longitude": "LongitudeMapa"
        }
        ],
        "lista_email": [
            {
                "fk_emt_id": "IdEmailTipo",
                "eme_email": "Email"
            }
        ],
        "redes_sociais": [
            {
                "sne_url": "RedeSocialEmpresa",
                "fk_sn_id": "IdRedeSocial"
            }
        ],
        "tags": [
            {
                "fk_tag_id": "IdTag",
                "tagemp_origem": "OrigemTag"
            }
        ],
        "atendimentos": [
            {
                "atdemp_descricao": "Atendimento",
                "fk_user_id": "IdResponsavel"
            }
        ]
    }
  empresasUpdate:
    type: object
    example: {
      "fk_user_id": "IdResponsavel",
      "emp_nome": "NomeEmpresa",
      "emp_email": "Email",
      "emp_telefone": "Fone1",
      "emp_telefone2": "Fone2",
      "fk_categ_id": "IdCategoria",
      "emp_cnpj": "Cnpj - somente numeros",
      "emp_observacao": "Observacao",
      "endereco": [
        {
            "endemp_logradouro": "Logradouro",
            "endemp_numero": "Número",
            "endemp_complemento": "Complemento",
            "endemp_cep": "Cep",
            "endemp_bairro": "Bairro",
            "endemp_pais": "País",
            "endemp_cidade": "Cidade",
            "endemp_estado": "Estado",
            "endemp_latitude": "LatitudeMapa",
            "endemp_longitude": "LongitudeMapa"
        }
        ],
        "lista_email": [
            {
                "fk_emt_id": "IdEmailTipo",
                "eme_email": "Email"
            }
        ],
        "tags": [
            {
                "fk_tag_id": "IdTag",
                "tagemp_origem": "OrigemTag"
            }
        ],
        "atendimentos": [
            {
                "atdemp_descricao": "Atendimento",
                "fk_user_id": "IdResponsavel"
            }
        ]
    }
    
# ***
# *** Definitions Service Negociação
# ***  
  negociosUpdate:
    type: object
    example:
      {
        "fk_etapa_id": "Etapa do Funil",
        "fk_cli_id": "Se pertencer a pessoa: Id da Pessoa",
        "fk_emp_id": "Se pertencer a empresa: Id da Empresa",
        "prop_nome": "Nome da negociação",
        "prop_valor": "Valor da negociação",
        "prop_prazo": "YYYY/MM/DD (prazo da negociação)",
        "fk_user_id": "Id do Responsável",
        "prop_observacao": "Observação",
        "prop_ganho": "Flag indicando se negociação for ganha",
        "prop_perdido": "Flag indicando se negociação for perdida",
        "prop_data_ganho_perda": "YYYY/MM/DD (Data em que negociação foi ganha ou perdida)"
      }    
  negociosEtapa:
    type: object
    example:
        {
          "fk_etapa_id": "Nova etapa da negociação"
        }  
  negociosCreate:
    type: object
    example: {
      "fk_etapa_id": "Etapa do funil",
      "fk_cli_id": "Obrigatório se negociação for de pessoa",
      "fk_emp_id": "Obrigatório se negociação for de empresa",
      "prop_nome": "Nome da negociação (obrigatorio)",
      "prop_valor": "Valor",
      "prop_prazo": "YYYY/MM/DD (Prazo)",
      "fk_user_id": "Id do responsável (obrigatório)",
      "prop_observacao": "Observação",
      "prop_ganho": "1 se for ganhgo",
      "prop_perdido": "1 se perdida",
      "prop_data_ganho_perda": "YYYY/MM/DD HH:MM:SS (TIMESTAMP de ganho ou perda da negociação)"
    }        
  negociosTrocaCliente:
    type: object
    example:
        {
          "fk_cli_id": "Se identificador for pessoa",
          //Apenas uma instrução - Pessoa ou Empresa,
          "fk_emp_id": "Se identificador for empresa"
        }
  negociosInteracao:
    type: object
    example:
        {
          "Interacao": "Interação",
          "IdResponsavel": "Id Responsável(opcional)"
        }    

# ***
# *** Definitions Service Compromissos
# ***        

# Compromisso de Pessoas
  compromissoPesCreate:
    type: object
    example: {
      "fk_cot_id": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
      "compcli_nome": "Nome do compromisso",
      "compcli_descricao": "Descrição (observação)",
      "compcli_prazo": "YYYY/MM/DD HH:MM:SS - Prazo",
      "fk_cli_id": "Id da pessoa (cliente)",
      "fk_user_id": "Id responsável",
      "compcli_finalizado": "0 se aberto/1 se finalizado",
      "compcli_data_finalizado": "YYYY/MM/DD- Se finalizado, data de finalização"
    }  
  compromissoPesStatus:
    type: object
    example: {
      "compcli_finalizado": "1 = Finaliza/0 = Reabre"
    }
  compromissoPesUpdate:
    type: object
    example: {
        "fk_cot_id": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
        "compcli_nome": "Nome do compromisso",
        "compcli_descricao": "Descrição (observação)",
        "compcli_prazo": "YYYY/MM/DD HH:MM:SS - Prazo",
        "fk_cli_id": "Id da pessoa (cliente)",
        "fk_user_id": "Id responsável",
        "compcli_finalizado": "0 se aberto/1 se finalizado",
        "compcli_data_finalizado": "YYYY/MM/DD- Se finalizado, data de finalização"
    }  
  
# Compromisso de Empresa
  compromissoEmpCreate:
    type: object
    example: {
      "fk_cot_id": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
      "compemp_nome": "Nome do compromisso",
      "compemp_descricao": "Descrição (observação)",
      "compemp_prazo": "YYYY/MM/DD HH:MM:SS - Prazo",
      "fk_emp_id": "Id da pessoa (cliente)",
      "fk_user_id": "Id responsável",
      "compemp_finalizado": "0 se aberto/1 se finalizado",
      "compemp_data_finalizado": "YYYY/MM/DD- Se finalizado, data de finalização"
    }          
  compromissoEmpStatus:
    type: object
    example: {
      "compemp_finalizado": "1 = Finaliza/0 = Reabre"
    }  
  compromissoEmpUpdate:
    type: object
    example: {
      "fk_cot_id": "Id do tipo de compromisso (reunião, visita, telefone e etc)",
      "compemp_nome": "Nome do compromisso",
      "compemp_descricao": "Descrição (observação)",
      "compemp_prazo": "YYYY/MM/DD HH:MM:SS - Prazo",
      "fk_emp_id": "Id da empresa (cliente)",
      "fk_user_id": "Id responsável",
      "compemp_finalizado": "0 se aberto/1 se finalizado",
      "compemp_data_finalizado": "YYYY/MM/DD- Se finalizado, data de finalização"
    }    
  
# ***
# *** Definitions Service Configurações
# ***

# Definitions de Produtos
  produtoCreate:
    type: object
    example: {
      "produtos": [
        {
          "prod_nome": "produto 1",
        },
        {
          "prod_nome": "produto 2",
        }
      ]
    }
  produtoUpdate:
    type: object
    example:
        {
          "prod_nome": "produto 1",
        }

# Definitions de Categorias
  categoriaCreate:
    type: object
    example: {
      "categorias": [
        {
          "categ_nome": "Uma categoria ",
        },
        {
          "categ_nome": "Outra categoria",
        }
      ]
    }
  categoriaUpdate: 
    type: object
    example:
        {
          "categ_nome": "Uma categoria"
        }
        
# Definitions de TAGs
  tagCreate:
    type: object
    example: {
      "tags": [
        {
          "tag_nome": "Nome da tag",
          "tag_descricao": "Descrição da tag"
        }
      ]
    }  
  tagUpdate: 
    type: object
    example:
        {
          "tag_nome": "Novo nome da tag",
          "tag_descricao": "Nova descrição da tag"
        }  
  
# Definitions de Cargos
  cargoCreate:
    type: object
    example: {
        "cargos": [
            {"car_nome": "Cargo importante"},
            {"car_nome": "Estagiário, importante tb =)"}
        ]
      }  
  cargoUpdate: 
    type: object
    example:
        {"car_nome": "Novo nome do novo cargo"}      
        
# Definitions de Tipo de Email
  tipoEmailCreate:
    type: object
    example: {
      "emailTipo": [
         {"emt_nome": "Tipo de e-mail"}
      ]
    }  
  tipoEmailUpdate: 
   example:
        {"emt_nome": ""}    
        
# Definitions de Grupo de Usuários
  gruposUsuariosCreate:
    type: object
    example: {
      "grupoUsuario": [
         {"gru_nome": "Um setor/equipe de sua empresa"}
      ]
    }  
  gruposUsuariosUpdate: 
   example:
        {"gru_nome": "Nome do grupo a ser alterado"}