Stack

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 date

Indexare

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.