"use client" import type React from "react" import { useState } from "react" import PatientLayout from "@/components/patient-layout" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Textarea } from "@/components/ui/textarea" import { Calendar, Clock, User } from "lucide-react" // Chave do LocalStorage const APPOINTMENTS_STORAGE_KEY = "clinic-appointments"; export default function ScheduleAppointment() { const [selectedDoctor, setSelectedDoctor] = useState("") const [selectedDate, setSelectedDate] = useState("") const [selectedTime, setSelectedTime] = useState("") const [notes, setNotes] = useState("") // ALTERAÇÃO AQUI: Adicionado 'location' para a tipagem e dados baterem const doctors = [ { id: "1", name: "Dr. João Silva", specialty: "Cardiologia", location: "Unidade Central - Sala 101" }, { id: "2", name: "Dra. Maria Santos", specialty: "Dermatologia", location: "Unidade Central - Sala 205" }, { id: "3", name: "Dr. Pedro Costa", specialty: "Ortopedia", location: "Unidade Centro-Oeste - Sala 302" }, { id: "4", name: "Dra. Ana Lima", specialty: "Ginecologia", location: "Unidade Centro-Oeste - Sala 108" }, ] const availableTimes = [ "08:00", "08:30", "09:00", "09:30", "10:00", "10:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", ] const handleSubmit = (e: React.FormEvent) => { e.preventDefault() const doctorDetails = doctors.find((d) => d.id === selectedDoctor) // Simulação do Paciente Logado (para fins de persistência) const patientDetails = { id: "P001", full_name: "Paciente Exemplo Único", phone: "(11) 98765-4321" }; if (!patientDetails || !doctorDetails || !selectedDate || !selectedTime) { alert("Erro: Por favor, preencha todos os campos obrigatórios."); return; } const newAppointment = { id: new Date().getTime(), patientName: patientDetails.full_name, doctor: doctorDetails.name, specialty: doctorDetails.specialty, date: selectedDate, time: selectedTime, status: "agendada" as const, // As const garante a tipagem correta // CORREÇÃO AQUI: Usando a nova propriedade 'location' location: doctorDetails.location, phone: patientDetails.phone, }; // 1. Carrega agendamentos existentes const storedAppointmentsRaw = localStorage.getItem(APPOINTMENTS_STORAGE_KEY); const currentAppointments = storedAppointmentsRaw ? JSON.parse(storedAppointmentsRaw) : []; // 2. Adiciona o novo agendamento const updatedAppointments = [...currentAppointments, newAppointment]; // 3. Salva a lista atualizada no LocalStorage localStorage.setItem(APPOINTMENTS_STORAGE_KEY, JSON.stringify(updatedAppointments)); alert(`Consulta com ${doctorDetails.name} agendada com sucesso!`); // Limpar o formulário após o sucesso setSelectedDoctor(""); setSelectedDate(""); setSelectedTime(""); setNotes(""); } return (

Agendar Consulta

Escolha o médico, data e horário para sua consulta

Dados da Consulta Preencha as informações para agendar sua consulta
setSelectedDate(e.target.value)} min={new Date().toISOString().split("T")[0]} />