Files
anwar-pi-website/GLOSSARY.md
AHMED 165efc3269 Docs: new README (Arabic flows, screenshots, architecture) + AGENT.md for AI agents
- README rewritten for the real Next.js + Payload + Postgres stack
  (old one described the dead static prototype)
- Logo + 4 live screenshots (home, articles, post, subscription)
- Arabic flow explanations with mermaid diagrams: visitor journey,
  content pipeline, request path
- Architecture table, quick start, API reference, security summary,
  deploy commands
- AGENT.md: orientation for future AI agents (data model, trust rules,
  rate limits, routes, env, deploy, house rules)
- GLOSSARY.md and docs/adr committed (linked from README)
2026-10-09 17:23:14 +03:00

2.2 KiB

GLOSSARY — أنور بي آي

Implementation-free vocabulary shared across code, QA, and product talk.

العضوية / Entitlement

A user's paid access level. Server-derived from users.role: vip or admin counts as entitled; free does not. Never cached client-side as a boolean.

مفتوح / Unlocked

Whether the current viewer may read a given post's full body: post.access === 'free' || entitled. Derived per request; never stored on the user.

تعليق / Comment

A moderated note by an authenticated member on a published post. Lifecycle pending → approved | rejected; only approved is publicly visible; only admins move status; authors cannot edit or delete their own comments (moderated model). Authors see their own pending comments on the post page tagged «قيد المراجعة».

اسم العرض / Display name

The public author label of a comment: a snapshot of users.fullName taken at submit time, or the fixed word «عضو» when absent. Never the email.

الهوية / Identity

  • Canonical domain: anwarpy.ai — the Cloudflare zone (anwarpi.ai references are legacy being replaced; see repo history).
  • Contact inbox: hello@anwarpy.ai — receives via Cloudflare Email Routing, forwards to ahmedalkhair.sa@gmail.com.
  • Sender: noreply@anwarpy.ai — sends via Cloudflare Email Sending (REST).

الاشتراك قريبًا / Coming soon

The public state of the subscribe flow until Stripe keys exist: POST /api/subscribe returns { comingSoon: true } and no url; the UI renders a disabled «قريباً» button. No VIP is granted without a Stripe-verified session — neither via the subscribe API nor via /payment-success (free users are redirected to /subscription).

كتابة موثوقة / Trusted write

An operation on a member record performed by server code (email verification, payment activation, billing webhook, seed), as opposed to a client request. Client requests can never set a member's privilege, verification, or billing fields.

موثّق / Verified

Whether the member confirmed their email address. Required to comment; admins are exempt; set only by server code, never by client requests.