feat(CC-087): add Document Inbox placeholder (Paperless-ngx setup steps + architecture)

This commit is contained in:
admin-valentin 2026-08-02 17:41:46 +00:00
parent 1e995ae12a
commit a773675f25

View file

@ -0,0 +1,75 @@
'use client';
import Link from 'next/link';
const SETUP_STEPS = [
{ n: 1, label: 'Paperless-ngx server activ', status: 'done', desc: 'Paperless-ngx rulează pe serverul Hetzner (port 8010).' },
{ n: 2, label: 'Webhook POST configurat', status: 'todo', desc: 'În Paperless-ngx → Settings → Workflows → adaugă webhook POST la ceo-api /v1/data-sources/paperless/webhook.' },
{ n: 3, label: 'Adapter ceo-api', status: 'todo', desc: 'Endpoint /v1/documents/inbox care consumă webhook-ul și creează documente în CEO OS.' },
{ n: 4, label: 'UI Document Inbox', status: 'planned', desc: 'Lista documentelor primite cu preview, tag automat, și flux de aprobare.' },
];
export default function DocumentInboxPage() {
return (
<div className="max-w-3xl space-y-6 p-6">
<div>
<nav className="text-xs text-ink-faint mb-1">
<Link href="/dashboard/documents" className="hover:underline">Documente</Link> / Inbox
</nav>
<h1 className="font-display text-2xl font-semibold text-ink">Document Inbox</h1>
<p className="text-sm text-ink-faint mt-1">Documente scanate și procesate automat din Paperless-ngx.</p>
</div>
<div className="card p-4 bg-warn/5 border-warn/30 space-y-1">
<p className="text-xs font-semibold text-warn">Paperless-ngx neconectat</p>
<p className="text-xs text-ink-faint">
Paperless-ngx rulează pe server (port 8010) dar nu este conectat la ceo-api.
Configurează webhook-ul pentru a activa inbox-ul automat.
</p>
</div>
{/* Setup steps */}
<div className="space-y-3">
<p className="text-xs font-semibold uppercase tracking-wider text-ink-faint">Pași de configurare</p>
{SETUP_STEPS.map((step) => (
<div key={step.n} className="card p-4 flex items-start gap-4">
<div className={`w-7 h-7 rounded-full flex items-center justify-center text-xs font-bold shrink-0 ${
step.status === 'done' ? 'bg-signal-ok/20 text-signal-ok' :
step.status === 'todo' ? 'bg-warn/20 text-warn' :
'bg-muted text-ink-faint'}`}>
{step.status === 'done' ? '✓' : step.n}
</div>
<div>
<p className="text-sm font-medium text-ink">{step.label}</p>
<p className="text-[10px] text-ink-faint mt-0.5">{step.desc}</p>
</div>
</div>
))}
</div>
{/* Architecture */}
<div className="card p-4 space-y-3">
<p className="text-xs font-semibold text-ink">Flux de date planificat</p>
<div className="space-y-1 text-[10px] text-ink-faint font-mono">
{[
'Scanner → Paperless-ngx (OCR + tagging)',
'Paperless-ngx → webhook POST → ceo-api /v1/documents/inbox',
'ceo-api → creare document în CEO OS (cu metadate Paperless)',
'CEO OS UI → Document Inbox (previzualizare, aprobare, taguri)',
].map((line, i) => (
<div key={i} className="flex items-center gap-2">
<span className="text-primary">{i < 3 ? '→' : '✓'}</span>
<span>{line}</span>
</div>
))}
</div>
</div>
<div className="flex gap-3 flex-wrap text-xs">
<Link href="/dashboard/documents" className="text-primary hover:underline"> Toate documentele</Link>
<Link href="/dashboard/integrations/documents" className="text-primary hover:underline">Integrare Paperless-ngx </Link>
<Link href="/dashboard/data/ingestion" className="text-primary hover:underline">Ingestie date </Link>
</div>
</div>
);
}