Bază de date
PoetryHub folosește PostgreSQL cu Prisma ORM. Schema este în prisma/schema.prisma.
Provider & conexiune
- Provider:
postgresql - URL:
DATABASE_URL(env) - Compatibil: Neon, Supabase, orice Postgres gestionat
- Binary targets Prisma:
native,rhel-openssl-3.0.x(Vercel/Lambda)
Modele principale
Conținut
- Author — autori (slug, bio, ani viață, naționalitate, portret)
- Poem — poezii (conținut text, excerpt, limbă, sursă, featured, setări carousel JSON)
- Tag + PoemTag — tag-uri pe categorii (mood, theme, era…)
Utilizatori
- User — cont public (email, Google ID, rol, preferințe cititor, profil poet)
- Favorite — poezii favorite (many-to-many user ↔ poem)
- UserPoemDraft — draft-uri din workspace Write
- UserInstaPost — postări carousel salvate (payload JSON)
- AdminUser — conturi panou admin separat
Configurare site
- SiteSettings — singleton (ex. afișare switch limbă)
- CarouselSiteDefaults — defaults generator Instagram
- ImportLog — jurnal importuri bulk
Lexicon Write
- WriteLexiconWord — cuvinte românești (silabe, rime, definiții, sinonime)
- WriteCachedLookup — cache definiții externe
Comenzi Prisma
npm run db:push # Sync schema (dev)
npm run db:migrate # Migrări dev
npm run db:seed # Seed date
npm run db:studio # UI explorare dateIndexare
Schema include indexuri compuse pentru pattern-uri frecvente: listări pe limbă + dată publicare, featured, slug-uri, căutări lexicon pe endingKey și syllableCount.