Skip to content
Caio Santos edited this page Mar 6, 2024 · 3 revisions

Welcome to the Barberqueue wiki!

Introdução

Bem-vindo à documentação da Barberqueue, nossa API de agendamento de serviços de barbearia. Esta API foi desenvolvida para facilitar a marcação de horários para clientes em uma barbearia, proporcionando uma experiência eficiente e conveniente para ambas as partes.

Base URL

A base URL para todas as chamadas da API é: https://barberqueue-api.com

Autenticação

A API utiliza autenticação baseada em token JWT. Para acessar os recursos, você precisará incluir o token de autenticação nas suas solicitações.

Obtenção do Token

Para obter um token de acesso, faça uma solicitação para o endpoint de autenticação com suas credenciais. O token será retornado no corpo da resposta.

Endpoint de Autenticação:

POST /authenticate

Parâmetros da Solicitação:

  • username: Nome de usuário do cliente ou barbeiro.
  • password: Senha associada ao nome de usuário.

Exemplo de Resposta:

{
  "token": "seu_token_aqui"
}

Recursos Principais

1. Listar Horários Disponíveis

Retorna a lista de horários disponíveis para agendamento.

Endpoint:

GET /schedules/available

Parâmetros de Consulta:

  • date: Data para verificar a disponibilidade.

Exemplo de Resposta:

{
  "available_slots": [
    {
      "time": "09:00",
      "barber": "João da Silva"
    },
    {
      "time": "10:30",
      "barber": "Maria Oliveira"
    },
  ]
}

2. Agendar Horário

Permite que um cliente agende um horário disponível.

Endpoint:

POST /api/schedule/book

Parâmetros da Solicitação:

  • date: Data do agendamento.
  • time: Horário desejado.
  • barber: Nome do barbeiro.
  • customer: Nome do cliente.
  • service: Lista de serviços. Ex: ['corte de cabelo', 'barba']

Exemplo de Resposta:

{
  "message": "Agendamento realizado com sucesso."
}

3. Listar Agendamentos

Retorna a lista de agendamentos para um cliente ou barbeiro específico.

Endpoint:

GET /schedules

Parâmetros de Consulta:

  • username: Nome de usuário do cliente ou barbeiro.

Exemplo de Resposta:

{
  "appointments": [
    {
      "date": "2024-03-15",
      "time": "14:00",
      "barber": "João da Silva",
      "customer_name": "Carlos Oliveira"
    },
    {
      "date": "2024-03-20",
      "time": "10:30",
      "barber": "Maria Oliveira",
      "customer_name": "Ana Souza"
    },
  ]
}