openapi: 3.0.3
info:
  title: 'API Portal do cliente - Aster'
  description: 'Documentação da API Portal do cliente - Aster'
  version: 1.0.0
servers:
  -
    url: 'https://api.portaldocliente.aster.com.br'
paths:
  /v1/login:
    post:
      summary: Login
      operationId: login
      description: 'Endpoint para logar no sistema.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  access_token: '{YOUR_ACCESS_TOKEN}'
                  token_type: bearer
                  expires_in: 3600
                properties:
                  access_token:
                    type: string
                    example: '{YOUR_ACCESS_TOKEN}'
                  token_type:
                    type: string
                    example: bearer
                  expires_in:
                    type: integer
                    example: 3600
      tags:
        - 'Autenticação '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: Email.
                  example: dickinson.sam@example.net
                password:
                  type: string
                  description: Senha.
                  example: ')W66vB$E!Ey][*&m"[L'
              required:
                - email
                - password
      security: []
  /v1/me:
    get:
      summary: 'Refresh token'
      operationId: refreshToken
      description: 'Endpoint que retorna os dados do usuário autenticado.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  headers: {  }
                  original:
                    id: 1
                    nome: João
                    email: joao@email.com
                    email_verified_at: null
                    remember_token: null
                    created_at: '2022-12-06 07:10:10'
                    updated_at: '2022-12-06 07:10:10'
                  exception: null
                properties:
                  headers:
                    type: object
                    properties: []
                  original:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      nome:
                        type: string
                        example: João
                      email:
                        type: string
                        example: joao@email.com
                      email_verified_at:
                        type: string
                        example: null
                      remember_token:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '2022-12-06 07:10:10'
                      updated_at:
                        type: string
                        example: '2022-12-06 07:10:10'
                  exception:
                    type: string
                    example: null
      tags:
        - 'Autenticação '
      security: []
  /v1/contas:
    get:
      summary: 'Todas as contas'
      operationId: todasAsContas
      description: 'Endpoint que retorna as todas as contas.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n     {\n         \"id\": 1,\n         \"nome\": \"Condomínio 1\",\n         \"cep\": \"00000001\",\n         \"endereco\": \"RUA UM, 001 São Paulo - SP 00000001\"\n     },\n     {\n         \"id\": 2,\n         \"nome\": \"Condomínio 2\",\n         \"cep\": \"00000002\",\n         \"endereco\": \"RUA DOIS, 002 São Paulo - SP 00000002\"\n     }\n}"
      tags:
        - Contas
      security: []
  '/v1/contas/{contaId}':
    get:
      summary: 'Todas as unidades'
      operationId: todasAsUnidades
      description: 'Endpoint que retorna as todas as unidades de uma conta.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n     {\n\t    \"id\": 1,\n\t    \"nome\": \"Principal\",\n\t    \"torre\": \"Condomínio 1\"\n    },\n    {\n\t    \"id\": 2,\n\t    \"nome\": \"101\",\n\t    \"torre\": \"A\"\n    }\n}"
      tags:
        - Contas
      security: []
    parameters:
      -
        in: path
        name: contaId
        description: ''
        example: 1
        required: true
        schema:
          type: integer
  /v1/convites:
    get:
      summary: 'Todos os convites'
      operationId: todosOsConvites
      description: 'Endpoint que retorna as todos os convites.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      id_integracao: 'Integracao 1'
                      conta_id: 1
                      unidade_id: 1
                      descricao: 'Primeiro convite'
                      data_entrada: '2022-11-11 00:00:00'
                      data_saida: '2022-11-11 23:59:00'
                      cancelado: 0
                      criado_em: '2022-11-10 10:30:15'
                      visitantes:
                        -
                          id: 1
                          id_integracao: null
                          nome: João
                          cpf: '12345678910'
                          documento: null
                          processado: 0
                          celular: '33999999999'
                          foto: /storage/images/visitantes/visitante-1.jpeg
                          cancelado: 0
                          criado_em: '2022-11-10 10:30:15'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        id_integracao: 'Integracao 1'
                        conta_id: 1
                        unidade_id: 1
                        descricao: 'Primeiro convite'
                        data_entrada: '2022-11-11 00:00:00'
                        data_saida: '2022-11-11 23:59:00'
                        cancelado: 0
                        criado_em: '2022-11-10 10:30:15'
                        visitantes:
                          -
                            id: 1
                            id_integracao: null
                            nome: João
                            cpf: '12345678910'
                            documento: null
                            processado: 0
                            celular: '33999999999'
                            foto: /storage/images/visitantes/visitante-1.jpeg
                            cancelado: 0
                            criado_em: '2022-11-10 10:30:15'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        id_integracao:
                          type: string
                          example: 'Integracao 1'
                        conta_id:
                          type: integer
                          example: 1
                        unidade_id:
                          type: integer
                          example: 1
                        descricao:
                          type: string
                          example: 'Primeiro convite'
                        data_entrada:
                          type: string
                          example: '2022-11-11 00:00:00'
                        data_saida:
                          type: string
                          example: '2022-11-11 23:59:00'
                        cancelado:
                          type: integer
                          example: 0
                        criado_em:
                          type: string
                          example: '2022-11-10 10:30:15'
                        visitantes:
                          type: array
                          example:
                            -
                              id: 1
                              id_integracao: null
                              nome: João
                              cpf: '12345678910'
                              documento: null
                              processado: 0
                              celular: '33999999999'
                              foto: /storage/images/visitantes/visitante-1.jpeg
                              cancelado: 0
                              criado_em: '2022-11-10 10:30:15'
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 1
                              id_integracao:
                                type: string
                                example: null
                              nome:
                                type: string
                                example: João
                              cpf:
                                type: string
                                example: '12345678910'
                              documento:
                                type: string
                                example: null
                              processado:
                                type: integer
                                example: 0
                              celular:
                                type: string
                                example: '33999999999'
                              foto:
                                type: string
                                example: /storage/images/visitantes/visitante-1.jpeg
                              cancelado:
                                type: integer
                                example: 0
                              criado_em:
                                type: string
                                example: '2022-11-10 10:30:15'
      tags:
        - Convites
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'ID do convite.'
                  example: null
                unidade_id:
                  type: number
                  description: 'Unidade do convite.'
                  example: null
                id_integracao:
                  type: string
                  description: 'ID Integração do convite. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                descricao:
                  type: string
                  description: 'Descrição do convite. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                data_entrada:
                  type: string
                  description: 'Data de entrada do convite. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                data_saida:
                  type: string
                  description: 'Data de saída do convite. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                cancelado:
                  type: boolean
                  description: Cancelados.
                  example: false
                conta_id:
                  type: number
                  description: 'ID da conta do convite.'
                  example: null
      security: []
    post:
      summary: 'Inserir convite'
      operationId: inserirConvite
      description: 'Endpoint que insere um convite.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 201
                  message: 'Convite cadastrado com sucesso!'
                  data:
                    id: 7833
                    id_integracao: 'Integracao 1'
                    conta_id: 1
                    unidade_id: 1
                    descricao: 'Primeiro convite'
                    data_entrada: '2022-11-11 00:00:00'
                    data_saida: '2022-11-11 23:59:00'
                    cancelado: 0
                    criado_em: '2022-11-10 10:30:15'
                    visitantes:
                      -
                        id: 25929
                        id_integracao: null
                        nome: Maria
                        cpf: '12345678910'
                        documento: null
                        celular: '11999999999'
                        foto: null
                        cancelado: 0
                        criado_em: '2022-11-10 10:30:15'
                properties:
                  code:
                    type: integer
                    example: 201
                  message:
                    type: string
                    example: 'Convite cadastrado com sucesso!'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 7833
                      id_integracao:
                        type: string
                        example: 'Integracao 1'
                      conta_id:
                        type: integer
                        example: 1
                      unidade_id:
                        type: integer
                        example: 1
                      descricao:
                        type: string
                        example: 'Primeiro convite'
                      data_entrada:
                        type: string
                        example: '2022-11-11 00:00:00'
                      data_saida:
                        type: string
                        example: '2022-11-11 23:59:00'
                      cancelado:
                        type: integer
                        example: 0
                      criado_em:
                        type: string
                        example: '2022-11-10 10:30:15'
                      visitantes:
                        type: array
                        example:
                          -
                            id: 25929
                            id_integracao: null
                            nome: Maria
                            cpf: '12345678910'
                            documento: null
                            celular: '11999999999'
                            foto: null
                            cancelado: 0
                            criado_em: '2022-11-10 10:30:15'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 25929
                            id_integracao:
                              type: string
                              example: null
                            nome:
                              type: string
                              example: Maria
                            cpf:
                              type: string
                              example: '12345678910'
                            documento:
                              type: string
                              example: null
                            celular:
                              type: string
                              example: '11999999999'
                            foto:
                              type: string
                              example: null
                            cancelado:
                              type: integer
                              example: 0
                            criado_em:
                              type: string
                              example: '2022-11-10 10:30:15'
      tags:
        - Convites
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: number
                  description: 'ID da unidade que deve ser cadastrado.'
                  example: 5.367
                id_integracao:
                  type: string
                  description: 'ID Integração - Utilizado para referência do sistema origem do visitante.'
                  example: null
                data_entrada:
                  type: string
                  description: 'Data de entrada do convite. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                data_saida:
                  type: string
                  description: 'Data de saída do convite. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                descricao:
                  type: string
                  description: 'Descrição do convite. O campo value não pode ser superior a 255 caracteres.'
                  example: No-example
                visitantes:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      id_integracao:
                        type: string
                        description: 'ID Integração - Utilizado para referência do sistema origem do visitante. O campo value não pode ser superior a 255 caracteres.'
                        example: null
                      nome:
                        type: string
                        description: 'Nome do visitante. O campo value não pode ser superior a 255 caracteres.'
                        example: No-example
                      cpf:
                        type: string
                        description: 'CPF do visitante.O campo value é obrigatório quando <code>visitantes.*.documento</code> não está presente.  O campo value deve ter 11 dígitos.'
                        example: null
                      documento:
                        type: string
                        description: 'RG ou Passaporte em caso de estrangeiros.O campo value é obrigatório quando <code>visitantes.*.cpf</code> não está presente. O campo value não pode ser superior a 255 caracteres.'
                        example: null
                      celular:
                        type: string
                        description: 'Celular do visitante. O campo value não pode ser superior a 255 caracteres.'
                        example: No-example
                      foto:
                        type: string
                        description: 'Foto do visitante em base64.'
                        example: null
                    required:
                      - nome
                      - celular
              required:
                - id
                - data_entrada
                - data_saida
                - descricao
      security: []
  '/v1/convites/{id}':
    put:
      summary: 'Editar convite'
      operationId: editarConvite
      description: 'Endpoint que edita um convite.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 200
                  message: 'Convite atualizado com sucesso!'
                  data:
                    id: 1
                    id_integracao: 'Integracao 1'
                    conta_id: 1
                    unidade_id: 1
                    descricao: 'Primeiro convite'
                    data_entrada: '2022-11-11 00:00:00'
                    data_saida: '2022-11-11 23:59:00'
                    cancelado: 0
                    criado_em: '2022-11-10 10:30:15'
                    visitantes:
                      -
                        id: 1
                        id_integracao: null
                        nome: João
                        cpf: '12345678910'
                        documento: null
                        celular: '33999999999'
                        foto: /storage/images/visitantes/visitante-1.jpeg
                        cancelado: 0
                        criado_em: '2022-11-10 10:30:15'
                      -
                        id: 2
                        id_integracao: null
                        nome: Maria
                        cpf: '12345678911'
                        documento: null
                        celular: '33999999999'
                        foto: /storage/images/visitantes/visitante-2.jpeg
                        cancelado: 0
                        criado_em: '2022-11-10 10:30:15'
                properties:
                  code:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: 'Convite atualizado com sucesso!'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      id_integracao:
                        type: string
                        example: 'Integracao 1'
                      conta_id:
                        type: integer
                        example: 1
                      unidade_id:
                        type: integer
                        example: 1
                      descricao:
                        type: string
                        example: 'Primeiro convite'
                      data_entrada:
                        type: string
                        example: '2022-11-11 00:00:00'
                      data_saida:
                        type: string
                        example: '2022-11-11 23:59:00'
                      cancelado:
                        type: integer
                        example: 0
                      criado_em:
                        type: string
                        example: '2022-11-10 10:30:15'
                      visitantes:
                        type: array
                        example:
                          -
                            id: 1
                            id_integracao: null
                            nome: João
                            cpf: '12345678910'
                            documento: null
                            celular: '33999999999'
                            foto: /storage/images/visitantes/visitante-1.jpeg
                            cancelado: 0
                            criado_em: '2022-11-10 10:30:15'
                          -
                            id: 2
                            id_integracao: null
                            nome: Maria
                            cpf: '12345678911'
                            documento: null
                            celular: '33999999999'
                            foto: /storage/images/visitantes/visitante-2.jpeg
                            cancelado: 0
                            criado_em: '2022-11-10 10:30:15'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            id_integracao:
                              type: string
                              example: null
                            nome:
                              type: string
                              example: João
                            cpf:
                              type: string
                              example: '12345678910'
                            documento:
                              type: string
                              example: null
                            celular:
                              type: string
                              example: '33999999999'
                            foto:
                              type: string
                              example: /storage/images/visitantes/visitante-1.jpeg
                            cancelado:
                              type: integer
                              example: 0
                            criado_em:
                              type: string
                              example: '2022-11-10 10:30:15'
      tags:
        - Convites
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                unidade_id:
                  type: number
                  description: 'ID da unidade que deve ser cadastrado.'
                  example: null
                descricao:
                  type: string
                  description: 'Descrição do convite. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                data_entrada:
                  type: string
                  description: 'Data de entrada do convite. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                data_saida:
                  type: string
                  description: 'Data de saída do convite. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                visitantes:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: 'ID do visitante que deseja atualizar. (Apenas enviar o visitantes.id caso queira atualizar um visitante, caso contrário será criado um novo visitante).'
                        example: null
                      id_integracao:
                        type: string
                        description: 'ID Integração - Utilizado para referência do sistema origem do visitante. O campo value não pode ser superior a 255 caracteres.'
                        example: null
                      nome:
                        type: string
                        description: 'Nome do visitante. O campo value não pode ser superior a 255 caracteres.'
                        example: null
                      cpf:
                        type: string
                        description: 'CPF do visitante.O campo value é obrigatório quando <code>visitantes.*.documento</code> não está presente.  O campo value deve ter 11 dígitos.'
                        example: null
                      documento:
                        type: string
                        description: 'RG ou Passaporte em caso de estrangeiros.O campo value é obrigatório quando <code>visitantes.*.cpf</code> não está presente. O campo value não pode ser superior a 255 caracteres.'
                        example: null
                      celular:
                        type: string
                        description: 'Celular do visitante. O campo value não pode ser superior a 255 caracteres.'
                        example: null
                      foto:
                        type: string
                        description: 'Foto do visitante em base64.'
                        example: null
      security: []
    delete:
      summary: 'Cancelar convite'
      operationId: cancelarConvite
      description: 'Endpoint que deleta um convite.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 200
                  message: 'Convite cancelado com sucesso!'
                  data:
                    id: 1
                    id_integracao: 'Integracao 1'
                    conta_id: 1
                    unidade_id: 1
                    descricao: 'Primeiro convite'
                    data_entrada: '2022-11-11 00:00:00'
                    data_saida: '2022-11-11 23:59:00'
                    cancelado: 1
                    criado_em: '2022-11-10 10:30:15'
                    visitantes:
                      -
                        id: 1
                        id_integracao: null
                        nome: João
                        cpf: '12345678910'
                        documento: null
                        celular: '33999999999'
                        foto: /storage/images/visitantes/visitante-1.jpeg
                        cancelado: 1
                        criado_em: '2022-11-10 10:30:15'
                      -
                        id: 2
                        id_integracao: null
                        nome: Maria
                        cpf: '12345678911'
                        documento: null
                        celular: '33999999999'
                        foto: /storage/images/visitantes/visitante-2.jpeg
                        cancelado: 1
                        criado_em: '2022-11-10 10:30:15'
                properties:
                  code:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: 'Convite cancelado com sucesso!'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      id_integracao:
                        type: string
                        example: 'Integracao 1'
                      conta_id:
                        type: integer
                        example: 1
                      unidade_id:
                        type: integer
                        example: 1
                      descricao:
                        type: string
                        example: 'Primeiro convite'
                      data_entrada:
                        type: string
                        example: '2022-11-11 00:00:00'
                      data_saida:
                        type: string
                        example: '2022-11-11 23:59:00'
                      cancelado:
                        type: integer
                        example: 1
                      criado_em:
                        type: string
                        example: '2022-11-10 10:30:15'
                      visitantes:
                        type: array
                        example:
                          -
                            id: 1
                            id_integracao: null
                            nome: João
                            cpf: '12345678910'
                            documento: null
                            celular: '33999999999'
                            foto: /storage/images/visitantes/visitante-1.jpeg
                            cancelado: 1
                            criado_em: '2022-11-10 10:30:15'
                          -
                            id: 2
                            id_integracao: null
                            nome: Maria
                            cpf: '12345678911'
                            documento: null
                            celular: '33999999999'
                            foto: /storage/images/visitantes/visitante-2.jpeg
                            cancelado: 1
                            criado_em: '2022-11-10 10:30:15'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            id_integracao:
                              type: string
                              example: null
                            nome:
                              type: string
                              example: João
                            cpf:
                              type: string
                              example: '12345678910'
                            documento:
                              type: string
                              example: null
                            celular:
                              type: string
                              example: '33999999999'
                            foto:
                              type: string
                              example: /storage/images/visitantes/visitante-1.jpeg
                            cancelado:
                              type: integer
                              example: 1
                            criado_em:
                              type: string
                              example: '2022-11-10 10:30:15'
      tags:
        - Convites
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the convite.'
        example: 12651
        required: true
        schema:
          type: integer
  /v1/visitantes:
    get:
      summary: 'Listar visitantes'
      operationId: listarVisitantes
      description: 'Endpoint que retorna todos os visitantes.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      conta_id: 1
                      unidade_id: 1
                      id_integracao: 'Integracao 1'
                      nome: João
                      cpf: '12345678910'
                      documento: null
                      celular: '33999999999'
                      foto: /storage/images/visitantes/visitante-1.jpeg
                      processado: 0
                      data_entrada: '2022-11-11 00:00:00'
                      data_saida: '2022-11-11 23:59:00'
                      cancelado: 0
                      criado_em: '2022-11-10 10:30:15'
                      convite: null
                      hash: ''
                      email: joao@email.com
                      data_nascimento: '2002-11-10'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        conta_id: 1
                        unidade_id: 1
                        id_integracao: 'Integracao 1'
                        nome: João
                        cpf: '12345678910'
                        documento: null
                        celular: '33999999999'
                        foto: /storage/images/visitantes/visitante-1.jpeg
                        processado: 0
                        data_entrada: '2022-11-11 00:00:00'
                        data_saida: '2022-11-11 23:59:00'
                        cancelado: 0
                        criado_em: '2022-11-10 10:30:15'
                        convite: null
                        hash: ''
                        email: joao@email.com
                        data_nascimento: '2002-11-10'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        conta_id:
                          type: integer
                          example: 1
                        unidade_id:
                          type: integer
                          example: 1
                        id_integracao:
                          type: string
                          example: 'Integracao 1'
                        nome:
                          type: string
                          example: João
                        cpf:
                          type: string
                          example: '12345678910'
                        documento:
                          type: string
                          example: null
                        celular:
                          type: string
                          example: '33999999999'
                        foto:
                          type: string
                          example: /storage/images/visitantes/visitante-1.jpeg
                        processado:
                          type: integer
                          example: 0
                        data_entrada:
                          type: string
                          example: '2022-11-11 00:00:00'
                        data_saida:
                          type: string
                          example: '2022-11-11 23:59:00'
                        cancelado:
                          type: integer
                          example: 0
                        criado_em:
                          type: string
                          example: '2022-11-10 10:30:15'
                        convite:
                          type: string
                          example: null
                        hash:
                          type: string
                          example: ''
                        email:
                          type: string
                          example: joao@email.com
                        data_nascimento:
                          type: string
                          example: '2002-11-10'
      tags:
        - Visitantes
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'ID do visitante.'
                  example: null
                unidade_id:
                  type: number
                  description: 'Unidade do visitante.'
                  example: null
                id_integracao:
                  type: string
                  description: 'ID integração do visitante gerado na criação. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                nome:
                  type: string
                  description: 'Nome do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                cpf:
                  type: string
                  description: 'CPF do visitante. O campo value deve ter 11 dígitos.'
                  example: null
                documento:
                  type: string
                  description: 'RG ou Passaporte em caso de estrangeiros. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                celular:
                  type: string
                  description: 'Celular do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                data_entrada:
                  type: string
                  description: 'Data de entrada do visitante. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                data_saida:
                  type: string
                  description: 'Data de saída do visitante. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                cancelado:
                  type: boolean
                  description: ''
                  example: false
                convite_id:
                  type: number
                  description: 'ID do convite.'
                  example: 1405.0
      security: []
    post:
      summary: 'Cadastrar visitante'
      operationId: cadastrarVisitante
      description: 'Endpoint que cadastra um visitante.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 201
                  message: 'Visitante cadastrado com sucesso!'
                  data:
                    id: 1
                    conta_id: 1
                    unidade_id: 1
                    id_integracao: null
                    nome: João
                    cpf: '12345678910'
                    documento: null
                    celular: '33999999999'
                    foto: null
                    data_entrada: '2022-11-11 00:00:00'
                    data_saida: '2022-11-11 23:59:00'
                    cancelado: null
                    criado_em: '2022-11-10 10:30:15'
                    convite: null
                properties:
                  code:
                    type: integer
                    example: 201
                  message:
                    type: string
                    example: 'Visitante cadastrado com sucesso!'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      conta_id:
                        type: integer
                        example: 1
                      unidade_id:
                        type: integer
                        example: 1
                      id_integracao:
                        type: string
                        example: null
                      nome:
                        type: string
                        example: João
                      cpf:
                        type: string
                        example: '12345678910'
                      documento:
                        type: string
                        example: null
                      celular:
                        type: string
                        example: '33999999999'
                      foto:
                        type: string
                        example: null
                      data_entrada:
                        type: string
                        example: '2022-11-11 00:00:00'
                      data_saida:
                        type: string
                        example: '2022-11-11 23:59:00'
                      cancelado:
                        type: string
                        example: null
                      criado_em:
                        type: string
                        example: '2022-11-10 10:30:15'
                      convite:
                        type: string
                        example: null
      tags:
        - Visitantes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: number
                  description: 'ID da unidade que o visitante deve ser cadastrado.'
                  example: 2173.3181
                id_integracao:
                  type: string
                  description: 'ID Integração - Utilizado para referência do sistema origem do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                nome:
                  type: string
                  description: 'Nome do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: No-example
                cpf:
                  type: string
                  description: 'CPF do visitante.O campo value é obrigatório quando <code>documento</code> não está presente.  O campo value deve ter 11 dígitos.'
                  example: null
                documento:
                  type: string
                  description: 'RG ou Passaporte em caso de estrangeiros.O campo value é obrigatório quando <code>cpf</code> não está presente. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                celular:
                  type: string
                  description: 'Celular do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: No-example
                foto:
                  type: string
                  description: 'Foto em base64 do visitante.'
                  example: null
                data_entrada:
                  type: string
                  description: 'Data de entrada do visitante. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                data_saida:
                  type: string
                  description: 'Data de saída do visitante. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
              required:
                - id
                - nome
                - celular
                - data_entrada
                - data_saida
      security: []
  '/v1/visitantes/{id}':
    delete:
      summary: 'Cancelar visitante'
      operationId: cancelarVisitante
      description: 'Endpoint que deleta um visitante.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 200
                  message: 'Visitante cancelado com sucesso!'
                  data:
                    id: 1
                    conta_id: 1
                    unidade_id: 1
                    id_integracao: null
                    nome: João
                    cpf: '12345678910'
                    documento: null
                    celular: '33999999999'
                    foto: null
                    data_entrada: '2022-11-11 00:00:00'
                    data_saida: '2022-11-11 23:59:00'
                    cancelado: null
                    criado_em: '2022-11-10 10:30:15'
                    convite: null
                properties:
                  code:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: 'Visitante cancelado com sucesso!'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      conta_id:
                        type: integer
                        example: 1
                      unidade_id:
                        type: integer
                        example: 1
                      id_integracao:
                        type: string
                        example: null
                      nome:
                        type: string
                        example: João
                      cpf:
                        type: string
                        example: '12345678910'
                      documento:
                        type: string
                        example: null
                      celular:
                        type: string
                        example: '33999999999'
                      foto:
                        type: string
                        example: null
                      data_entrada:
                        type: string
                        example: '2022-11-11 00:00:00'
                      data_saida:
                        type: string
                        example: '2022-11-11 23:59:00'
                      cancelado:
                        type: string
                        example: null
                      criado_em:
                        type: string
                        example: '2022-11-10 10:30:15'
                      convite:
                        type: string
                        example: null
      tags:
        - Visitantes
      security: []
    put:
      summary: 'Editar visitante'
      operationId: editarVisitante
      description: 'Endpoint que edita um visitante.'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 200
                  message: 'Visitante atualizado com sucesso!'
                  data:
                    id: 1
                    conta_id: 1
                    unidade_id: 1
                    id_integracao: null
                    nome: João
                    cpf: '12345678910'
                    documento: null
                    celular: '33999999999'
                    foto: null
                    data_entrada: '2022-11-11 00:00:00'
                    data_saida: '2022-11-11 23:59:00'
                    cancelado: null
                    criado_em: '2022-11-10 10:30:15'
                    convite: null
                properties:
                  code:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: 'Visitante atualizado com sucesso!'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      conta_id:
                        type: integer
                        example: 1
                      unidade_id:
                        type: integer
                        example: 1
                      id_integracao:
                        type: string
                        example: null
                      nome:
                        type: string
                        example: João
                      cpf:
                        type: string
                        example: '12345678910'
                      documento:
                        type: string
                        example: null
                      celular:
                        type: string
                        example: '33999999999'
                      foto:
                        type: string
                        example: null
                      data_entrada:
                        type: string
                        example: '2022-11-11 00:00:00'
                      data_saida:
                        type: string
                        example: '2022-11-11 23:59:00'
                      cancelado:
                        type: string
                        example: null
                      criado_em:
                        type: string
                        example: '2022-11-10 10:30:15'
                      convite:
                        type: string
                        example: null
      tags:
        - Visitantes
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                unidade_id:
                  type: number
                  description: ''
                  example: 265.8
                nome:
                  type: string
                  description: 'Nome do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                cpf:
                  type: string
                  description: 'CPF do visitante.O campo value é obrigatório quando <code>documento</code> não está presente.  O campo value deve ter 11 dígitos.'
                  example: null
                documento:
                  type: string
                  description: 'RG ou Passaporte em caso de estrangeiros.O campo value é obrigatório quando <code>cpf</code> não está presente. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                celular:
                  type: string
                  description: 'Celular do visitante. O campo value não pode ser superior a 255 caracteres.'
                  example: null
                foto:
                  type: string
                  description: 'Foto em base64 do visitante.'
                  example: null
                data_entrada:
                  type: string
                  description: 'Data de entrada do visitante. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
                data_saida:
                  type: string
                  description: 'Data de saída do visitante. Must be a valid date in the format <code>Y-m-d H:i:s</code>.'
                  example: '2021-01-02 22:00:00'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'ID do visitante.'
        example: 9
        required: true
        schema:
          type: integer
tags:
  -
    name: 'Autenticação '
    description: "\nEndpoints para realizar ações básicas de autenticação do usuário."
  -
    name: Contas
    description: "\nEndpoints para interagir com os contas."
  -
    name: Convites
    description: "\nEndpoints para interagir com os convites."
  -
    name: Visitantes
    description: "\nEndpoints para interagir com os visitantes."
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: ''
security:
  -
    default: []
