You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Desenvolver uma API mínima viável que permita à Clinsite integrar a funcionalidade de agendamento de serviços, mantendo o foco nas funcionalidades essenciais e simplificando o escopo do projeto, incluindo a identificação de múltiplos usuários através de tokens exclusivos.
Funcionalidades Essenciais
1. API de Agendamento com Identificação de Usuários
Contexto: A Clinsite possui vários clientes (usuários), e cada um deles precisa integrar-se à Adri. É necessário que cada usuário seja identificado de forma única ao utilizar a API, garantindo que os agendamentos e configurações sejam gerenciados de forma isolada para cada cliente.
Como um usuário da Clinsite, quero integrar a funcionalidade de agendamento da Adri ao meu sistema, com um token de identificação exclusivo, para que meus clientes possam agendar serviços diretamente através do meu site, e meus dados sejam mantidos separados dos de outros usuários.
Funcionalidades:
Autenticação por Usuário:
Fornecer um token de acesso exclusivo para cada usuário da Clinsite.
Utilizar esse token para identificar e autorizar as requisições feitas à API da Adri.
Listar Disponibilidade:
Fornecer endpoint para obter os horários disponíveis para agendamento, específicos para cada usuário.
Criar Agendamento:
Permitir que a Clinsite crie agendamentos em nome dos usuários finais, vinculados ao usuário identificado pelo token.
Cancelar Agendamento:
Permitir o cancelamento de agendamentos existentes, garantindo que somente o usuário que criou possa cancelar.
Endpoints:
GET /disponibilidade/
Obter horários disponíveis para o usuário autenticado.
POST /agendamentos/
Criar um novo agendamento para o usuário autenticado.
DELETE /agendamentos/{id}/
Cancelar um agendamento do usuário autenticado.
Regras de Negócio:
Identificação de Usuários:
Cada usuário da Clinsite que tiver o módulo de agendamento Adri receberá um token de API exclusivo.
O token deve ser enviado em cada requisição, através de um header de autorização:
Authorization: Bearer {token}
Isolamento de Dados:
Os agendamentos, disponibilidades e configurações são específicos para cada usuário.
Um usuário não pode acessar ou modificar dados de outro usuário.
2. Configuração Básica de Disponibilidade por Usuário
Como administrador da Adri, quero permitir que cada usuário defina seus próprios horários de funcionamento e duração dos serviços, para que possam controlar quando os usuários finais podem agendar.
Funcionalidades:
Horários de Funcionamento por Usuário:
Cada usuário pode definir seus próprios dias e horários de funcionamento.
Duração dos Serviços por Usuário:
Cada usuário pode definir a duração padrão dos seus serviços oferecidos.
Endpoints:
GET /configuracoes/horarios/
Obter horários de funcionamento do usuário autenticado.
PUT /configuracoes/horarios/
Definir ou atualizar horários de funcionamento para o usuário autenticado.
GET /configuracoes/duracao_servico/
Obter duração padrão dos serviços do usuário autenticado.
POST /configuracoes/duracao_servico/
Definir duração padrão dos serviços para o usuário autenticado.
Regras de Negócio:
Personalização Individual:
As configurações de horários e serviços são específicas para cada usuário identificado pelo token.
Validação de Dados:
Garantir que os horários de funcionamento e duração dos serviços estejam dentro de limites razoáveis.
3. Documentação da API com Autenticação
Como parceiro integrador (Clinsite), quero ter acesso a documentação clara, incluindo como utilizar os tokens de autenticação, para facilitar a integração e o uso da API.
Funcionalidades:
Documentação Interativa:
Disponibilizar documentação automática dos endpoints (Swagger ou Redoc), incluindo informações sobre autenticação.
Requisitos:
Documentação acessível via endpoint (/docs).
Exemplos de requisições e respostas, incluindo cabeçalhos de autorização com o token.
Requisitos Técnicos
Tecnologia
Linguagem e Framework:
Python com FastAPI para construção da API.
Ambiente:
Utilizar Docker e docker-compose para containerização.
Banco de dados SQLite para simplificar o armazenamento (pode ser substituído por PostgreSQL no futuro).
Segurança
Autenticação por Token para Cada Usuário:
Implementar autenticação via API Keys ou tokens estáticos por usuário.
Os tokens serão gerados pela Adri e fornecidos à Clinsite para distribuição aos usuários.
Isolamento de Dados:
Garantir que cada usuário só possa acessar e modificar seus próprios dados.
Simplicidade e Foco
Código Limpo e Simples:
Priorizar a clareza e simplicidade no código
Utilizar princípios SOLID
Evitar funcionalidades complexas ou não essenciais.
Fluxo Básico de Uso
Usuário Recebe Token de Acesso:
Cada usuário da Clinsite recebe um token exclusivo fornecido pela Adri.
Clinsite Consulta Disponibilidade:
Faz uma requisição GET /disponibilidade/ com o token no header de autorização, para obter os horários disponíveis do usuário autenticado.
Usuário Final Seleciona Horário:
O usuário final escolhe um horário para agendar pela interface Clinsite
Clinsite Cria Agendamento:
Faz uma requisição POST /agendamentos/ com o token e as informações necessárias (horário, dados do usuário final).
Confirmação do Agendamento:
A API confirma o agendamento e retorna os detalhes.
Considerações Finais
Este MVP atualizado foca nas funcionalidades essenciais para permitir que a Clinsite integre o agendamento de serviços através da Adri, garantindo a identificação e isolamento de dados de cada usuário através de tokens exclusivos. A inclusão de autenticação por usuário é fundamental para atender ao cenário em que a Clinsite possui vários usuários integrando-se à Adri.
Próximos Passos
Gerenciamento de Tokens de Usuário:
Implementar um mecanismo simples para gerar e gerenciar tokens de acesso para cada usuário da Clinsite.
Fornecer um meio seguro para a Clinsite distribuir os tokens aos usuários.
Desenvolvimento dos Endpoints com Autenticação:
Implementar os endpoints listados, garantindo que todos exijam o token de autenticação e que os dados sejam isolados por usuário.
Documentação e Testes:
Atualizar a documentação para incluir informações sobre como utilizar os tokens de autenticação.
Realizar testes para verificar a segurança e o correto isolamento dos dados entre usuários.
Feedback com a Clinsite:
Compartilhar o MVP com a equipe da Clinsite para testes e feedback, especialmente sobre o fluxo de autenticação e integração multiusuário.
Nota: Ao adicionar a autenticação por usuário, estamos garantindo que cada cliente da Clinsite tenha acesso exclusivo aos seus dados, o que é essencial em um cenário multiusuário. Mantemos a simplicidade do MVP, mas com a funcionalidade necessária para suportar múltiplos usuários de forma segura e eficaz.
Roadmap
A Adri pretende ter funcionalidade de LLM para agendamento, através de chat
A Adri pretende integrar métodos de pagamento com interface própria para integração e pagamento via Stripe com divisão de recursos e transferência apenas quando o serviço concluir
The text was updated successfully, but these errors were encountered:
Requisitos Simplificados para o MVP da Adri
Objetivo do MVP
Desenvolver uma API mínima viável que permita à Clinsite integrar a funcionalidade de agendamento de serviços, mantendo o foco nas funcionalidades essenciais e simplificando o escopo do projeto, incluindo a identificação de múltiplos usuários através de tokens exclusivos.
Funcionalidades Essenciais
1. API de Agendamento com Identificação de Usuários
Contexto: A Clinsite possui vários clientes (usuários), e cada um deles precisa integrar-se à Adri. É necessário que cada usuário seja identificado de forma única ao utilizar a API, garantindo que os agendamentos e configurações sejam gerenciados de forma isolada para cada cliente.
Como um usuário da Clinsite, quero integrar a funcionalidade de agendamento da Adri ao meu sistema, com um token de identificação exclusivo, para que meus clientes possam agendar serviços diretamente através do meu site, e meus dados sejam mantidos separados dos de outros usuários.
Funcionalidades:
Autenticação por Usuário:
Listar Disponibilidade:
Criar Agendamento:
Cancelar Agendamento:
Endpoints:
GET /disponibilidade/
Obter horários disponíveis para o usuário autenticado.
POST /agendamentos/
Criar um novo agendamento para o usuário autenticado.
DELETE /agendamentos/{id}/
Cancelar um agendamento do usuário autenticado.
Regras de Negócio:
Identificação de Usuários:
Cada usuário da Clinsite que tiver o módulo de agendamento Adri receberá um token de API exclusivo.
O token deve ser enviado em cada requisição, através de um header de autorização:
Isolamento de Dados:
2. Configuração Básica de Disponibilidade por Usuário
Como administrador da Adri, quero permitir que cada usuário defina seus próprios horários de funcionamento e duração dos serviços, para que possam controlar quando os usuários finais podem agendar.
Funcionalidades:
Horários de Funcionamento por Usuário:
Duração dos Serviços por Usuário:
Endpoints:
GET /configuracoes/horarios/
Obter horários de funcionamento do usuário autenticado.
PUT /configuracoes/horarios/
Definir ou atualizar horários de funcionamento para o usuário autenticado.
GET /configuracoes/duracao_servico/
Obter duração padrão dos serviços do usuário autenticado.
POST /configuracoes/duracao_servico/
Definir duração padrão dos serviços para o usuário autenticado.
Regras de Negócio:
Personalização Individual:
Validação de Dados:
3. Documentação da API com Autenticação
Como parceiro integrador (Clinsite), quero ter acesso a documentação clara, incluindo como utilizar os tokens de autenticação, para facilitar a integração e o uso da API.
Funcionalidades:
Requisitos:
/docs
).Requisitos Técnicos
Tecnologia
Linguagem e Framework:
Ambiente:
Segurança
Autenticação por Token para Cada Usuário:
Isolamento de Dados:
Simplicidade e Foco
Fluxo Básico de Uso
Usuário Recebe Token de Acesso:
Clinsite Consulta Disponibilidade:
GET /disponibilidade/
com o token no header de autorização, para obter os horários disponíveis do usuário autenticado.Usuário Final Seleciona Horário:
Clinsite Cria Agendamento:
POST /agendamentos/
com o token e as informações necessárias (horário, dados do usuário final).Confirmação do Agendamento:
Considerações Finais
Este MVP atualizado foca nas funcionalidades essenciais para permitir que a Clinsite integre o agendamento de serviços através da Adri, garantindo a identificação e isolamento de dados de cada usuário através de tokens exclusivos. A inclusão de autenticação por usuário é fundamental para atender ao cenário em que a Clinsite possui vários usuários integrando-se à Adri.
Próximos Passos
Gerenciamento de Tokens de Usuário:
Desenvolvimento dos Endpoints com Autenticação:
Documentação e Testes:
Feedback com a Clinsite:
Nota: Ao adicionar a autenticação por usuário, estamos garantindo que cada cliente da Clinsite tenha acesso exclusivo aos seus dados, o que é essencial em um cenário multiusuário. Mantemos a simplicidade do MVP, mas com a funcionalidade necessária para suportar múltiplos usuários de forma segura e eficaz.
Roadmap
The text was updated successfully, but these errors were encountered: