feat: melhora página de perfil e integra preferências de notificação

- Atualiza cores das badges para padrão cyan do projeto
- Adiciona degradê no header do card de perfil
- Implementa upload de foto de perfil via API Convex
- Integra notificações do Convex com preferências do usuário
- Cria API /api/notifications/send para verificar preferências
- Melhora layout das páginas de login/recuperação com degradê
- Adiciona badge "Helpdesk" e título "Raven" consistente

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
rever-tecnologia 2025-12-15 11:00:02 -03:00
parent 1bc08d3a5f
commit ab7dfa81ca
8 changed files with 543 additions and 59 deletions

View file

@ -54,12 +54,19 @@ export function LoginPageClient() {
return (
<div className="grid min-h-svh lg:grid-cols-2">
<div className="flex flex-col gap-6 p-6 md:p-10">
<div className="flex flex-col items-center gap-1.5 text-center">
<Link href="/" className="text-xl font-semibold text-neutral-900">
<div className="flex flex-col leading-none items-center">
<span>Sistema de chamados</span>
<span className="mt-0.5 text-xs text-muted-foreground">Por Rever Tecnologia</span>
<div className="flex flex-col items-center gap-2 text-center">
<Link href="/" className="group flex flex-col items-center gap-2">
<div className="flex items-center gap-2">
<span className="text-2xl font-bold tracking-tight text-neutral-900">
Raven
</span>
<span className="rounded-full bg-cyan-100 px-2.5 py-0.5 text-xs font-medium text-cyan-700 border border-cyan-200">
Helpdesk
</span>
</div>
<span className="text-sm text-neutral-500">
Por Rever Tecnologia
</span>
</Link>
</div>
<div className="flex flex-1 items-center justify-center">
@ -81,8 +88,16 @@ export function LoginPageClient() {
Desenvolvido por Esdras Renan
</footer>
</div>
<div className="relative hidden overflow-hidden lg:flex">
<ShaderBackground className="h-full w-full" />
<div className="relative hidden overflow-hidden bg-gradient-to-br from-neutral-800 via-neutral-700 to-neutral-600 lg:flex">
<ShaderBackground className="h-full w-full opacity-50" />
<div className="absolute inset-0 flex items-center justify-center">
<div className="text-center text-white">
<h2 className="text-3xl font-bold tracking-tight">Bem-vindo de volta</h2>
<p className="mt-2 text-neutral-300">
Gerencie seus chamados e tickets de forma simples
</p>
</div>
</div>
</div>
</div>
)