"use client" import type React from "react" import { useState } from "react" import { useRouter } from "next/navigation" import Link from "next/link" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { ArrowLeft, Loader2 } from "lucide-react" import { useToast } from "@/hooks/use-toast" import { usersService } from "@/services/usersApi.mjs" // Mantém a importação import { isValidCPF } from "@/lib/utils" export default function PatientRegister() { // REMOVIDO: Estados para 'showPassword' e 'showConfirmPassword' const [formData, setFormData] = useState({ name: "", email: "", phone: "", cpf: "", birthDate: "", // REMOVIDO: Campos 'password' e 'confirmPassword' }) const [isLoading, setIsLoading] = useState(false) const router = useRouter() const { toast } = useToast() const handleInputChange = (field: string, value: string) => { setFormData((prev) => ({ ...prev, [field]: value, })) } const handleRegister = async (e: React.FormEvent) => { e.preventDefault() setIsLoading(true) // --- VALIDAÇÃO DE CPF --- if (!isValidCPF(formData.cpf)) { toast({ title: "CPF Inválido", description: "O CPF informado não é válido. Verifique os dígitos.", variant: "destructive", }) setIsLoading(false) return } // --- LÓGICA DE REGISTRO COM ENDPOINT PÚBLICO --- try { // ALTERADO: Payload ajustado para o endpoint 'register-patient' const payload = { email: formData.email.trim().toLowerCase(), full_name: formData.name, phone_mobile: formData.phone, // O endpoint espera 'phone_mobile' cpf: formData.cpf.replace(/\D/g, ''), birth_date: formData.birthDate, } // ALTERADO: Chamada para a nova função de serviço await usersService.registerPatient(payload) // ALTERADO: Mensagem de sucesso para refletir o fluxo de confirmação por e-mail toast({ title: "Cadastro enviado com sucesso!", description: "Enviamos um link de confirmação para o seu e-mail. Por favor, verifique sua caixa de entrada para ativar sua conta.", }) // Redireciona para a página de login router.push("/login") } catch (error: any) { console.error("Erro no registro:", error) toast({ title: "Erro ao Criar Conta", description: error.message || "Não foi possível concluir o cadastro. Verifique seus dados e tente novamente.", variant: "destructive", }) } finally { setIsLoading(false) } } return (
Já tem uma conta?{" "} Faça login aqui