- Corrige bug na página de consultas do médico que impedia a exibição dos agendamentos devido a inconsistências nos IDs de usuário e médico. A lógica agora mapeia corretamente o user_id da autenticação para o doctor_id correspondente antes de buscar os dados.
Melhora a UX da agenda do médico, agrupando as consultas por dia e focando na data atual por padrão, com uma interface de cards mais limpa e informativa.
Adiciona validação de CPF no frontend no formulário de criação de novo usuário (/manager/usuario/novo) para evitar erros de check constraint do banco de dados, fornecendo feedback imediato ao usuário.
Refina o fluxo de login para múltiplos perfis, garantindo que a role seja salva corretamente e eliminando bugs de sessão.
Remove o componente de formulário de criação de médico (`/manager/home/novo`) que estava duplicado e desatualizado.
O botão "Novo Usuário" na página de gerenciamento de médicos (`/manager/home`) foi redirecionado para o formulário genérico e aprimorado em `/manager/usuario/novo`.
Essa alteração centraliza toda a lógica de criação de usuários em um único componente, aproveitando a UI condicional já implementada para a role "medico" e simplificando a manutenção do código.
Remove o componente de formulário de criação de médico (`/manager/home/novo`) que estava duplicado e desatualizado.
O botão "Novo Usuário" na página de gerenciamento de médicos (`/manager/home`) foi redirecionado para o formulário genérico e aprimorado em `/manager/usuario/novo`.
Essa alteração centraliza toda a lógica de criação de usuários em um único componente, aproveitando a UI condicional já implementada para a role "medico" e simplificando a manutenção do código.
Refatora o formulário de criação de usuários no painel do manager para lidar com a lógica de múltiplos endpoints, diferenciando a criação de médicos das demais roles.
- Adiciona campos condicionais para CRM e especialidade na UI.
- Implementa a chamada ao endpoint `/functions/v1/create-doctor` para a role "medico".
- Ajusta o payload para o endpoint `/create-user-with-password` para as outras roles.
fix(patient): corrige renderização duplicada do layout nas páginas de agendamento e consultas, removendo o wrapper redundante do `PatientLayout`.
refactor(services): ajusta os serviços `doctorsApi` e `usersApi` para alinhar com os schemas de dados corretos da API.
Esta refatoração unifica todo o sistema de login e logout da aplicação, resolvendo inconsistências e eliminando código duplicado.
Problema Anterior:
- A lógica de login estava espalhada por múltiplos componentes e páginas (`/doctor/login`, `/patient/login`, etc.).
- Cada layout de área restrita (`DoctorLayout`, `PatientLayout`, etc.) tinha sua própria lógica de verificação de segurança e logout, resultando em bugs (ex: uso de Cookies vs. localStorage).
Solução Aplicada:
- Foi criado um componente `LoginForm` unificado e inteligente, responsável por toda a interação de login.
- Toda a lógica de comunicação com a API de autenticação foi centralizada no serviço `api.mjs`, incluindo uma nova função `api.logout()`.
- Todos os layouts de áreas restritas (`DoctorLayout`, `PatientLayout`, etc.) foram padronizados para usar `localStorage.getItem('token')` para verificação e para chamar `api.logout()` ao sair.
- As páginas de login específicas de cada perfil foram atualizadas para usar o novo `LoginForm` genérico.