رحلة المستثمر · Investor Journey (built)
من الكرة الأرضية حتى إنشاء فرصة في الـCRM — تجربة جوال أولاً، عربية RTL. From globe to a CRM Opportunity — mobile-first, Arabic-RTL.
📌
كل طلب = طلب اهتمام مبدئي غير ملزم، يُنشئ Opportunity تلقائياً ويُثبّت الوحدة 7–14 يوماً.
Every submission is a non-binding Expression of Interest that auto-creates a CRM Opportunity and holds the unit for 7–14 days.
المعمارية التقنية · System Architecture
واجهة Next.js عامة ↔ API عام ↔ Odoo (موديول معزول) ↔ CRM. Public Next.js front-end ↔ public REST API ↔ Odoo (isolated module) ↔ CRM.
🖥️ الواجهة الأمامية Front-end · Next.js 14 + R3F + Tailwind
مسارات: الكرة → سوريا → حلب → /explore → القسم → الطابق → الوحدات → /eoi → التأكيد. حالة عبر Zustand، ثنائي اللغة، أيقونات Lucide (لا إيموجي).
Next.js 14.2React Three FiberZustandnext-intl-liteC:\Cluade\SarayMall
▲
🔌 API عام · /saray/api/v1/* · auth=public
🔌 الواجهة البرمجية العامة Public REST API
قراءة: الأقسام/الطوابق/الوحدات/الأنشطة/الاقتراحات. كتابة: تقديم EOI + قائمة الانتظار. قائمة بيضاء صارمة — internal_note لا يتسرّب أبداً.
/sections/floors/<id>/units/activities/<c>/suggestions/eoi/submit
▲
ORM
🟣 Odoo 18 — موديول saray_eoi (isolated)
نماذج: section → floor → unit + category + activity. 4 حالات مخزّنة + جوار/دمج. يمتد crm.lead بحقول EOI. لا يلمس saray_space_rental (يُعاد بناؤه من عملية أخرى) — لذا العزل في موديول مستقل.
saray.section/floor/spacesaray.activitycrm.lead (EOI)staff /saray/map سليم
الاستضافة · Hosting
النطاق العام: saray.odooclick.com → 193.24.209.162
الـAPI: staging.core-click.com (Muller)
النطاق العام: saray.odooclick.com → 193.24.209.162
الـAPI: staging.core-click.com (Muller)
المتبقّي · Hardening
تقييد CORS origin بدل * + captcha (Turnstile) — المرحلة 5.
تقييد CORS origin بدل * + captcha (Turnstile) — المرحلة 5.
المراحل والتقدّم · Phases & Progress
خطة من 6 مراحل. المنجز حتى الآن: 0 · 1 · 1.5 · 2. 6-phase plan; done so far: 0, 1, 1.5, 2.