Initial import: Majd Trading website

Next.js 15 site for گروه بازرگانی بین المللی آریو مجد آسیا, rebuilt from
majdtrading.com. Persian, English and Arabic; RTL and LTR.

- Pages: home, about, contact, six product categories, blog index and detail
- i18n: prose in per-locale JSON, structure in TypeScript, drift checked by
  `npm run i18n:check`. Blog stays single-language by design
- Meshkee backend: blog content, tenant resolution, session via the customer
  portal, and /meshkee/sitemap-config.json
- Live market data from livedata.ir, cached server-side once a minute
- Self-hosted fonts: IRANYekan (fa), IBM Plex Sans Arabic (ar), Space Grotesk
  and BBH Bartle (Latin)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alireza Hassani
2026-08-29 19:16:32 +03:30
co-authored by Claude Opus 5
commit 02aaf61bb6
95 changed files with 7050 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
/**
* Catalogue of everything livedata.ir publishes, keyed by its stable upstream id.
*
* Ids are the anchor because the page is ad-heavy and its layout shifts, but an
* id has a fixed meaning. `fa` is the label as published upstream — used to
* identify the row when choosing, and as a fallback if no translation exists yet.
*
* Nothing here is displayed on its own. Pick what to show in `displayed.ts`.
*/
export const instruments = {
"200101": { fa: "دلار - صرافی" },
"200103": { fa: "دلار تتر" },
"200201": { fa: "یورو - صرافی" },
"2004": { fa: "درهم امارات" },
"300106": { fa: "انس طلا" },
"300206": { fa: "نقره" },
"300306": { fa: "پلاتین" },
"400106": { fa: "نفت برنت" },
"400206": { fa: "نفت سبک آمریکا" },
"6001": { fa: "بورس تهران" },
"600206": { fa: "داوجونز" },
"600306": { fa: "اس اند پی" },
"600406": { fa: "نزدک" },
"600506": { fa: "کک فرانسه" },
"600606": { fa: "فوتسی بریتانیا" },
"600706": { fa: "استاکس اروپا" },
"600806": { fa: "نیکی ژاپن" },
"600906": { fa: "استرالیا" },
"601006": { fa: "دکس آلمان" },
"601106": { fa: "شانگهای چین" },
"601206": { fa: "بمبئی هند" },
"601306": { fa: "بورس سوئیس" },
"601406": { fa: "تداول عربستان" },
"601506": { fa: "استانبول" },
"601606": { fa: "هنگ سنگ" },
"700007": { fa: "شاخص دلار" },
"700106": { fa: "یورودلار" },
"700206": { fa: "پوند به دلار" },
"700306": { fa: "دلار استرالیا به دلار آمریکا" },
"700406": { fa: "دلار آمریکا به کانادا" },
"700506": { fa: "دلار به ین" },
"700607": { fa: "دلار به روپیه" },
"700706": { fa: "یورو به پوند" },
"700806": { fa: "یورو به ین" },
"700906": { fa: "دلار به لیر" },
"701107": { fa: "دلار به یوان چین" },
"701207": { fa: "دلار به درهم" },
"701607": { fa: "دلار به روبل" },
"701707": { fa: "بیت کوین" },
} as const;
export type InstrumentId = keyof typeof instruments;
/* Also published but unlabelled upstream, so left out until identified:
300406, 300606, 300706, 300806, 300906, 301006, 301106, 400306, 400406, 400506, 500106, 500206, 500306, 500407, 500607, 500706, 500806, 500907
*/