Documentação da API | Nairim Holding

Usuarios

GET /users

Obter Detalhes dos Usuários

Descrição: Obtém uma lista de todos os usuarios cadastrados.

URL Completa: http://localhost:5000/users

Exemplo de Resposta (Sucesso - HTTP 200 OK):


[
    {
        "id": 1,
        "name": "joaosilva",
        "email": "joaosilva@gmail.com",
        "password": "$2b$10$XxdoTkL4Y22xrPMBlxsu0e/nVxbVvBAFLJFLkjlTs3ITyL8YtvSt2",
        "birth_date": "1990-05-10T00:00:00.000Z",
        "gender": "MALE",
        "role": "ADMIN",
        "created_at": "2025-05-29T13:10:14.823Z",
        "updated_at": "2025-05-29T13:12:42.237Z"
    },
    {
        "id": 2,
        "name": "joaosilva",
        "email": "joaosilva@example.com",
        "password": "$2b$10$XxdoTkL4Y22xrPMBlxsu0e/nVxbVvBAFLJFLkjlTs3ITyL8YtvSt2",
        "birth_date": "1990-05-10T00:00:00.000Z",
        "gender": "MALE",
        "role": "ADMIN",
        "created_at": "2025-05-29T13:10:14.823Z",
        "updated_at": "2025-05-29T13:12:42.237Z"
    },
    ...
]
                

Exemplo de Resposta (Erro - HTTP 500 Not Found):


{
    "error": "Erro interno ao buscar usuários."
}
                    
GET /users/{id}

Obter Detalhes do Usuário

Descrição: Obtém os detalhes de um usuário específico pelo seu ID.

URL Completa: http://localhost:5000/users/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
id number Sim O ID único do usuário.

Exemplo de Resposta (Sucesso - HTTP 200 OK):


{
    "id": 1,
    "name": "João Silva",
    "email": "joao@exemplo.com",
    "password": "$2b$10$XxdoTkL4Y22xrPMBlxsu0e/nVxbVvBAFLJFLkjlTs3ITyL8YtvSt2",
    "birth_date": "1990-05-10T00:00:00.000Z",
    "gender": "MALE",
    "role": "ADMIN",
    "created_at": "2025-05-29T13:10:14.823Z",
    "updated_at": "2025-05-29T13:12:42.237Z"
}
                

Exemplo de Resposta (Erro - HTTP 404 Not Found):


{
    "error": "Usuário não encontrado"
}
                    
POST /users

Criar Novo Usuário

Descrição: Cria um novo registro de usuário no sistema.

URL Completa: http://localhost:5000/users

Parâmetros de Requisição (Body - JSON):

Campo Tipo Obrigatório Descrição
name string Sim O nome completo do usuário.
email string Sim O endereço de e-mail do usuário.
password string Sim A senha do usuário (mínimo 8 caracteres).
birth_date dateTime Sim Data de nascimento do usuário. (1990-05-10T00:00:00.000Z)
gender string Sim Sexo do usuário. (MALE, FEMALE, OTHER)

Exemplo de Requisição:


{
    "name": "Teste22",
    "email": "teste2@gmail.com",
    "password": "222", 
    "birth_date": "1990-05-10T00:00:00.000Z",
    "gender": "MALE"
}
                    

Exemplo de Resposta (Sucesso - HTTP 201 Created):


{
    "status": 200,
    "message": "O usuário Teste22 foi criado com sucesso!"
}
                

Exemplo de Resposta (Erro - HTTP 500):


{
    "error": "Dados de requisição inválidos",
    "details": {
        "email": "Formato de e-mail inválido"
    }
}
                
PUT /users/{id}

Atualizar Usuário Existente

Descrição: Atualiza os dados de um usuário existente pelo seu ID.

URL Completa: http://localhost:5000/users/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
id number Sim O ID único do usuário a ser atualizado.

Parâmetros de Requisição (Body - JSON):

Envie apenas os campos que deseja atualizar.

Campo Tipo Obrigatório Descrição
name string Não Novo nome do usuário.
email string Não Novo endereço de e-mail.

Exemplo de Requisição:


{
    "name": "João Atualizado"
}
                

Exemplo de Resposta (Sucesso - HTTP 200 OK):


{
    "id": "a1b2c3d4e5f6",
    "name": "João Atualizado",
    "email": "joao@exemplo.com",
    "updatedAt": "2024-06-03T15:00:00Z"
}
                
DELETE /users/{id}

Deletar Usuário

Descrição: Deleta um usuário específico pelo seu ID.

URL Completa: http://localhost:5000/users/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
id string Sim O ID único do usuário a ser deletado.

Exemplo de Resposta (Sucesso - HTTP 204 No Content):

(Nenhuma resposta de corpo)

Exemplo de Resposta (Erro - HTTP 404 Not Found):


{
    "error": "Usuário não encontrado"
}
                

Inquilinos

GET /tenants

Listar Inquilinos

Descrição: Retorna uma lista de inquilinos cadastrados com seus contatos associados.

URL Completa: http://localhost:5000/tenants

Exemplo de Resposta (Sucesso - HTTP 200 OK):


[
    {
        "id": 1,
        "name": "Empresa XPTO",
        "internal_code": "TNT-001",
        "occupation": "Comércio",
        "contacts": [
            {
                "contact": {
                    "phone": "11999999999",
                    "email": "contato@empresa.com",
                    "whatsapp": "11999999999"
                }
            }
        ],
        ...
    }
]
        
POST /tenants

Criar Inquilino

Descrição: Cria um novo inquilino com contatos associados.

URL Completa: http://localhost:5000/tenants

Parâmetros de Requisição (Body - JSON):

Campo Tipo Obrigatório Descrição
tenant_namestringSimNome do inquilino.
tenant_internal_codestringNãoCódigo interno identificador.
tenant_occupationstringNãoTipo de ocupação (ex: Comercial).
tenant_leasesarrayNãoLista de contratos (leases).
contactsarrayNãoContatos vinculados ao inquilino.

Exemplo de Requisição:


{
    "tenant_name": "Empresa XPTO",
    "tenant_internal_code": "TNT-001",
    "tenant_occupation": "Comércio",
    "contacts": [
        {
            "phone": "11999999999",
            "email": "contato@empresa.com",
            "whatsapp": "11999999999"
        }
    ]
}
        
PUT /tenants/{id}

Atualizar Inquilino

Descrição: Atualiza os dados de um inquilino pelo seu ID.

URL Completa: http://localhost:5000/tenants/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
idnumberSimID do inquilino.

Parâmetros de Requisição (Body - JSON):

Envie apenas os campos que deseja atualizar.


{
    "tenant_name": "Nome Atualizado",
    "tenant_internal_code": "TNT-002",
    "tenant_occupation": "Serviços"
}
        
DELETE /tenants/{id}

Deletar Inquilino

Descrição: Remove um inquilino e todos os vínculos com contatos do banco de dados.

URL Completa: http://localhost:5000/tenants/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
idnumberSimID do inquilino a ser deletado.

Exemplo de Resposta (Sucesso - HTTP 204 No Content):

(Nenhuma resposta de corpo)

Agências

GET /agencys

Listar Agências

Descrição: Retorna uma lista de agências com seus respectivos contatos e endereços.

URL Completa: http://localhost:5000/agencys

Exemplo de Resposta:


[
  {
    "id": 1,
    "trade_name": "Agência XPTO",
    "legal_name": "Agência XPTO Ltda",
    "cnpj": "00.000.000/0001-00",
    "state_registration": "123456",
    "municipal_registration": "654321",
    "license_number": "78910",
    "contacts": [
      {
        "contact": {
          "phone": "11999999999",
          "email": "contato@agencia.com",
          "whatsapp": "11999999999"
        }
      }
    ],
    "addresses": [
      {
        "address": {
          "zip_code": "12345-678",
          "street": "Rua Exemplo",
          "number": "123",
          "district": "Centro",
          "city": "São Paulo",
          "state": "SP",
          "country": "Brasil"
        }
      }
    ]
  }
]
        
POST /agencys

Criar Agência

Descrição: Cria uma nova agência, incluindo contatos e endereços relacionados.

URL Completa: http://localhost:5000/agencys

Parâmetros de Requisição (Body - JSON):

Campo Tipo Obrigatório Descrição
trade_namestringSimNome fantasia da agência.
legal_namestringSimRazão social da agência.
cnpjstringSimCNPJ da agência.
state_registrationstringNãoInscrição estadual.
municipal_registrationstringNãoInscrição municipal.
license_numberstringNãoNúmero da licença da agência.
contactsarrayNãoContatos vinculados à agência.
addressesarrayNãoEndereços vinculados à agência.

Exemplo de Requisição:


{
  "trade_name": "Agência XPTO",
  "legal_name": "Agência XPTO Ltda",
  "cnpj": "00.000.000/0001-00",
  "state_registration": "123456",
  "municipal_registration": "654321",
  "license_number": "78910",
  "contacts": [
    {
      "phone": "11999999999",
      "email": "contato@agencia.com",
      "whatsapp": "11999999999"
    }
  ],
  "addresses": [
    {
      "zip_code": "12345-678",
      "street": "Rua Exemplo",
      "number": "123",
      "district": "Centro",
      "city": "São Paulo",
      "state": "SP",
      "country": "Brasil"
    }
  ]
}
        
PUT /agencys/{id}

Atualizar Agência

Descrição: Atualiza os dados de uma agência específica e substitui os contatos e endereços existentes.

URL Completa: http://localhost:5000/agencys/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
idnumberSimID da agência a ser atualizada.

Exemplo de Requisição:


{
  "trade_name": "Agência Atualizada",
  "legal_name": "Nova Razão Social Ltda",
  "contacts": [
    {
      "phone": "11988888888",
      "email": "novo@agencia.com",
      "whatsapp": "11988888888"
    }
  ],
  "addresses": [
    {
      "zip_code": "87654-321",
      "street": "Avenida Nova",
      "number": "321",
      "district": "Jardins",
      "city": "Rio de Janeiro",
      "state": "RJ",
      "country": "Brasil"
    }
  ]
}
        
DELETE /agencys/{id}

Deletar Agência

Descrição: Remove uma agência e todos os vínculos com contatos e endereços.

URL Completa: http://localhost:5000/agencys/{id}

Parâmetros de URL:

Campo Tipo Obrigatório Descrição
idnumberSimID da agência.

Exemplo de Resposta (Sucesso - HTTP 204 No Content):

(Nenhuma resposta de corpo)