develop #83

Merged
M-Gabrielly merged 426 commits from develop into main 2025-12-04 04:13:15 +00:00
9 changed files with 1143 additions and 621 deletions
Showing only changes of commit ba93bb0f57 - Show all commits

View File

@ -1,34 +0,0 @@
"use client"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
export default function AgendaConfigPage() {
return (
<div className="p-6 space-y-6">
<h1 className="text-2xl font-bold">Configurações da Agenda</h1>
<Card>
<CardHeader>
<CardTitle>Tempo padrão de consulta</CardTitle>
</CardHeader>
<CardContent>
<select className="border rounded p-2">
<option>15 minutos</option>
<option>30 minutos</option>
<option>1 hora</option>
</select>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle>Horário de funcionamento</CardTitle>
</CardHeader>
<CardContent>
<input type="time" className="border rounded p-2 mr-2" /> até
<input type="time" className="border rounded p-2 ml-2" />
</CardContent>
</Card>
</div>
)
}

View File

@ -1,36 +0,0 @@
"use client"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
export default function ComunicacaoConfigPage() {
return (
<div className="p-6 space-y-6">
<h1 className="text-2xl font-bold">Configurações de Comunicação</h1>
<Card>
<CardHeader>
<CardTitle>Modelo de Lembrete</CardTitle>
</CardHeader>
<CardContent>
<textarea
className="w-full border rounded p-2"
placeholder="Exemplo: Olá {nome}, sua consulta está marcada para {data} às {hora}."
/>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle>Frequência de Lembretes</CardTitle>
</CardHeader>
<CardContent>
<select className="border rounded p-2">
<option>24 horas antes</option>
<option>4 horas antes</option>
<option>1 hora antes</option>
</select>
</CardContent>
</Card>
</div>
)
}

View File

@ -1,25 +0,0 @@
"use client"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
export default function NotificacoesConfigPage() {
return (
<div className="p-6 space-y-6">
<h1 className="text-2xl font-bold">Configurações de Notificações</h1>
<Card>
<CardHeader>
<CardTitle>Alertas Internos</CardTitle>
</CardHeader>
<CardContent>
<label className="flex items-center space-x-2">
<input type="checkbox" className="h-4 w-4" /> <span>Notificar quando consulta for cancelada</span>
</label>
<label className="flex items-center space-x-2 mt-2">
<input type="checkbox" className="h-4 w-4" /> <span>Notificar quando novo paciente for cadastrado</span>
</label>
</CardContent>
</Card>
</div>
)
}

View File

@ -1,77 +0,0 @@
"use client"
import Link from "next/link"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
import {
Calendar,
MessageSquare,
Bell,
Users,
ShieldCheck,
} from "lucide-react"
export default function ConfiguracaoPage() {
const items = [
{
title: "Agenda",
desc: "Defina horários e bloqueios",
href: "/dashboard/configuracao/agenda",
icon: Calendar,
},
{
title: "Comunicação",
desc: "Gerencie mensagens automáticas",
href: "/dashboard/configuracao/comunicacao",
icon: MessageSquare,
},
{
title: "Notificações",
desc: "Configure alertas internos",
href: "/dashboard/configuracao/notificacoes",
icon: Bell,
},
{
title: "Usuários",
desc: "Controle acessos e permissões",
href: "/dashboard/configuracao/usuarios",
icon: Users,
},
{
title: "Segurança",
desc: "Senhas, privacidade e LGPD",
href: "/dashboard/configuracao/seguranca",
icon: ShieldCheck,
},
]
return (
<div className="p-6 space-y-6">
{/* título */}
<h1 className="text-2xl font-bold">Configurações</h1>
{/* introdução */}
<p className="text-gray-600">
Ajuste os principais parâmetros do sistema. Escolha uma das seções abaixo
para configurar horários, mensagens, notificações internas, permissões de usuários
e regras de segurança da clínica.
</p>
{/* grid de cards */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
{items.map((item) => (
<Link key={item.title} href={item.href}>
<Card className="cursor-pointer hover:shadow-md transition">
<CardHeader className="flex flex-row items-center gap-2">
<item.icon className="w-5 h-5 text-primary" />
<CardTitle>{item.title}</CardTitle>
</CardHeader>
<CardContent>
<p className="text-sm text-gray-600">{item.desc}</p>
</CardContent>
</Card>
</Link>
))}
</div>
</div>
)
}

View File

@ -1,33 +0,0 @@
"use client"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
export default function SegurancaConfigPage() {
return (
<div className="p-6 space-y-6">
<h1 className="text-2xl font-bold">Configurações de Segurança</h1>
<Card>
<CardHeader>
<CardTitle>Alterar Senha</CardTitle>
</CardHeader>
<CardContent>
<input type="password" placeholder="Senha atual" className="w-full border rounded p-2 mb-2" />
<input type="password" placeholder="Nova senha" className="w-full border rounded p-2 mb-2" />
<input type="password" placeholder="Confirmar nova senha" className="w-full border rounded p-2" />
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle>Política de Dados (LGPD)</CardTitle>
</CardHeader>
<CardContent>
<label className="flex items-center space-x-2">
<input type="checkbox" className="h-4 w-4" /> <span>Solicitar consentimento do paciente no cadastro</span>
</label>
</CardContent>
</Card>
</div>
)
}

View File

@ -1,37 +0,0 @@
"use client"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"
export default function UsuariosConfigPage() {
return (
<div className="p-6 space-y-6">
<h1 className="text-2xl font-bold">Gerenciamento de Usuários</h1>
<Card>
<CardHeader>
<CardTitle>Usuários da Clínica</CardTitle>
</CardHeader>
<CardContent>
<table className="w-full border">
<thead>
<tr className="bg-gray-100">
<th className="p-2 text-left">Nome</th>
<th className="p-2 text-left">Email</th>
<th className="p-2 text-left">Permissão</th>
<th className="p-2">Ações</th>
</tr>
</thead>
<tbody>
<tr>
<td className="p-2">Maria Silva</td>
<td className="p-2">maria@clinica.com</td>
<td className="p-2">Secretária</td>
<td className="p-2">[Editar] [Remover]</td>
</tr>
</tbody>
</table>
</CardContent>
</Card>
</div>
)
}

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,6 @@ import {
UserCheck, UserCheck,
FileText, FileText,
BarChart3, BarChart3,
Settings,
Stethoscope, Stethoscope,
User, User,
} from "lucide-react" } from "lucide-react"
@ -36,7 +35,6 @@ const navigation = [
{ name: "Médicos", href: "/doutores", icon: User }, { name: "Médicos", href: "/doutores", icon: User },
{ name: "Consultas", href: "/consultas", icon: UserCheck }, { name: "Consultas", href: "/consultas", icon: UserCheck },
{ name: "Relatórios", href: "/dashboard/relatorios", icon: BarChart3 }, { name: "Relatórios", href: "/dashboard/relatorios", icon: BarChart3 },
{ name: "Configurações", href: "/configuracao", icon: Settings },
] ]
export function Sidebar() { export function Sidebar() {

View File

@ -1,5 +1,6 @@
/// <reference types="next" /> /// <reference types="next" />
/// <reference types="next/image-types/global" /> /// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />
// NOTE: This file should not be edited // NOTE: This file should not be edited
// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.