Commit 632a4891 authored by Mahmoud Aglan's avatar Mahmoud Aglan

docs: quote the server's new wording in the redeem, org and hosting contracts

Co-Authored-By: 's avatarClaude Opus 5.5 <noreply@anthropic.com>
parent 097add47
...@@ -341,7 +341,7 @@ Hard limits, enforced when a code is created: ...@@ -341,7 +341,7 @@ Hard limits, enforced when a code is created:
- Native app: the `el3ab://redeem/K7QM4WXP` scheme, and Android App Links for `/r/*`, which need a `/.well-known/assetlinks.json` file served by the player app. The Flutter shell isn't in either repo, so that part is an external dependency. `native-bridge.js` `handleDeepLink` gets a new `case 'redeem'`. - Native app: the `el3ab://redeem/K7QM4WXP` scheme, and Android App Links for `/r/*`, which need a `/.well-known/assetlinks.json` file served by the player app. The Flutter shell isn't in either repo, so that part is an external dependency. `native-bridge.js` `handleDeepLink` gets a new `case 'redeem'`.
**Server-rendered preview in `index.php`.** When `REQUEST_URI` matches `^/r/([^/?#]{4,40})$`, look the code up read-only with the service key and emit: **Server-rendered preview in `index.php`.** When `REQUEST_URI` matches `^/r/([^/?#]{4,40})$`, look the code up read-only with the service key and emit:
- `og:title`: "انضم إلى {org} على العب". - `og:title`: "انضم لـ {org} على العب".
- `og:description`: the welcome message, or the org description. - `og:description`: the welcome message, or the org description.
- `og:image`: the org's 1200x630 share card (feature C2), falling back to a themed default slot, `share_invite_card`. - `og:image`: the org's 1200x630 share card (feature C2), falling back to a themed default slot, `share_invite_card`.
- `twitter:card=summary_large_image`. - `twitter:card=summary_large_image`.
...@@ -412,22 +412,22 @@ The RPC runs these checks in order and returns the first failure. The Arabic cop ...@@ -412,22 +412,22 @@ The RPC runs these checks in order and returns the first failure. The Arabic cop
| Outcome | HTTP | Uses a seat? | What the player sees | | Outcome | HTTP | Uses a seat? | What the player sees |
|---|---|---|---| |---|---|---|---|
| `invalid_format` | 422 | no | "الكود ده شكله غلط. راجع الحروف والأرقام" | | `invalid_format` | 422 | no | "الكود شكله غلط، راجعه" |
| `rate_limited` | 429 + `Retry-After` | no | "استنى {n} دقيقة وجرب تاني", with a live countdown | | `rate_limited` | 429 + `Retry-After` | no | "استنى {n} دقيقة وجرب تاني", with a live countdown |
| `not_found` | 404 | no | "الكود ده مش موجود. راجع الحروف", and the ticket shakes | | `not_found` | 404 | no | "الكود ده مش موجود، راجعه", and the ticket shakes |
| `revoked` | 410 | no | "الكود ده اتلغى" | | `revoked` | 410 | no | "الكود ده اتلغى" |
| `not_started` | 409 | no | "الكود يشتغل يوم {date}" | | `not_started` | 409 | no | "الكود يشتغل يوم {date}" |
| `expired` | 410 | no | "ميعاد الكود ده خلص" | | `expired` | 410 | no | "صلاحية الكود خلصت" |
| `exhausted` | 410 | no | "الكود ده اتستخدم لآخره", with the punched `.spent` corner | | `exhausted` | 410 | no | "الكود ده اتستخدم لآخره", with the punched `.spent` corner |
| `account_required` | 401 | no | "اعمل حساب الأول عشان تدخل" and a register button; the code is kept | | `account_required` | 401 | no | "اعمل حساب الأول عشان تدخل" and a register button; the code is kept |
| `banned_from_org` | 403 | no | "الكود ده مش متاح لحسابك" | | `banned_from_org` | 403 | no | "الكود ده مش متاح لحسابك" |
| `not_eligible` | 403 | no | Names the rule: "الكود ده للحسابات الجديدة بس" or "لازم توصل لمستوى {n}" | | `not_eligible` | 403 | no | Names the rule: "الكود ده للحسابات الجديدة بس" or "لازم توصل ليفل {n}" |
| `already_redeemed` | 200 `{already:true}` | no | Opens the target; not treated as an error | | `already_redeemed` | 200 `{already:true}` | no | Opens the target; not treated as an error |
| `already_member` (same or higher role, no other grant) | 200 | no | Gold toast, "أنت عضو في {org} بالفعل", then opens the org | | `already_member` (same or higher role, no other grant) | 200 | no | Gold toast, "إنت أصلاً عضو في {org}", then opens the org |
| `org_limit` (player is already in the maximum number of orgs, default 5) | 409 | no | Lists the player's orgs with leave buttons | | `org_limit` (player is already in the maximum number of orgs, default 5) | 409 | no | Lists the player's orgs with leave buttons |
| `org_full` | 409 | no | "المنظمة كاملة" (a waitlist comes later) | | `org_full` | 409 | no | "المنظمة كملت" (a waitlist comes later) |
| `pending_approval` | 202 | held (`reserved + 1`, released on rejection) | "طلبك وصل للإدارة" | | `pending_approval` | 202 | held (`reserved + 1`, released on rejection) | "طلبك وصل للإدارة" |
| `applied` / `partial` | 200 | yes | The reveal. A grant that failed shows as a greyed chip with its reason, for example "البطولة كاملة" | | `applied` / `partial` | 200 | yes | The reveal. A grant that failed shows as a greyed chip with its reason, for example "البطولة كملت" |
Rules: Rules:
- **Membership.** - **Membership.**
...@@ -606,7 +606,7 @@ POST {action:'redemption-reverse', redemption_id, reason} ...@@ -606,7 +606,7 @@ POST {action:'redemption-reverse', redemption_id, reason}
- The call to action depends on state: - The call to action depends on state:
- signed in: "ادخل"; - signed in: "ادخل";
- guest or no account: "اعمل حسابك وادخل"; - guest or no account: "اعمل حسابك وادخل";
- already a member: "أنت عضو، افتح المنظمة". - already a member: "إنت عضو، افتح المنظمة".
**3. Register.** The collapsed code row and the invitation card described in 2.6 C. **3. Register.** The collapsed code row and the invitation card described in 2.6 C.
...@@ -616,7 +616,7 @@ POST {action:'redemption-reverse', redemption_id, reason} ...@@ -616,7 +616,7 @@ POST {action:'redemption-reverse', redemption_id, reason}
- "انضم" (open); - "انضم" (open);
- "قدّم طلب" (approval); - "قدّم طلب" (approval);
- "ادخل بالكود" (code only); - "ادخل بالكود" (code only);
- "طلبك قيد المراجعة" (pending, as a ghost button); - "طلبك بيتراجع" (pending, as a ghost button);
- a "عضو" ribbon for members, with leave in the menu. - a "عضو" ribbon for members, with leave in the menu.
- **Below:** announcements, upcoming org tournaments as tickets, top members, then all members as rows with real avatars and role chips. - **Below:** announcements, upcoming org tournaments as tickets, top members, then all members as rows with real avatars and role chips.
- Owners and admins get an "إدارة" icon button. - Owners and admins get an "إدارة" icon button.
......
This diff is collapsed.
...@@ -1041,9 +1041,9 @@ Use this Arabic text verbatim in `message`. P6 and P7 put the same text in their ...@@ -1041,9 +1041,9 @@ Use this Arabic text verbatim in `message`. P6 and P7 put the same text in their
| `registration_closed` | 409 | التسجيل اتقفل | | `registration_closed` | 409 | التسجيل اتقفل |
| `full` | 409 | البطولة كملت | | `full` | 409 | البطولة كملت |
| `waitlist_full` | 409 | قائمة الانتظار كملت | | `waitlist_full` | 409 | قائمة الانتظار كملت |
| `insufficient_coins` | 409 | رصيدك مش مكفي | | `insufficient_coins` | 409 | عملاتك مش كفاية |
| `not_allowed` | 403 | مينفعش تسجل في البطولة دي | | `not_allowed` | 403 | مينفعش تسجل في البطولة دي |
| `not_eligible` | 403 | مش مستوفي شروط البطولة | | `not_eligible` | 403 | شروط البطولة مش منطبقة عليك |
| `members_only` | 409 | البطولة دي لأعضاء النادي بس | | `members_only` | 409 | البطولة دي لأعضاء النادي بس |
| `org_not_allowed` | 409 | ناديك مش من الأندية المشاركة | | `org_not_allowed` | 409 | ناديك مش من الأندية المشاركة |
| `org_quota_full` | 409 | عدد لاعبي ناديك كمل | | `org_quota_full` | 409 | عدد لاعبي ناديك كمل |
...@@ -1054,25 +1054,25 @@ Use this Arabic text verbatim in `message`. P6 and P7 put the same text in their ...@@ -1054,25 +1054,25 @@ Use this Arabic text verbatim in `message`. P6 and P7 put the same text in their
| `invalid_file` | 422 | الملف ده مش مقبول | | `invalid_file` | 422 | الملف ده مش مقبول |
| `file_too_large` | 413 | الملف كبير، أقصى حجم {max_mb} ميجا | | `file_too_large` | 413 | الملف كبير، أقصى حجم {max_mb} ميجا |
| `upload_failed` | 502 | الرفع ماكملش، جرّب تاني | | `upload_failed` | 502 | الرفع ماكملش، جرّب تاني |
| `unavailable` | 502 | في مشكلة دلوقتي، جرّب تاني كمان شوية | | `unavailable` | 502 | فيه مشكلة، جرّب كمان شوية |
| `bad_request` | 422 | الطلب ناقص حاجة | | `bad_request` | 422 | الطلب ناقص حاجة |
| `not_registered` | 404 | انت مش مسجل في البطولة دي | | `not_registered` | 404 | إنت مش مسجّل في البطولة دي |
| `check_in_not_open` | 409 | تأكيد الحضور لسه مفتحش | | `check_in_not_open` | 409 | تأكيد الحضور لسه مفتحش |
| `check_in_closed` | 409 | تأكيد الحضور اتقفل | | `check_in_closed` | 409 | تأكيد الحضور اتقفل |
| `staff_only` | 403 | المنظمين هما اللي بيسجلوا حضورك | | `staff_only` | 403 | المنظمين هيأكدوا حضورك |
| `venue_code_required` | 422 | اكتب كود المكان | | `venue_code_required` | 422 | اكتب كود المكان |
| `venue_code_wrong` | 422 | الكود ده مش صح | | `venue_code_wrong` | 422 | الكود ده مش صح |
| `pending_approval` | 409 | طلبك مع المنظمين | | `pending_approval` | 409 | طلبك مع المنظمين |
| `form_incomplete` | 409 | كمّل بياناتك الأول | | `form_incomplete` | 409 | كمّل بياناتك الأول |
| `not_member` | 403 | انت مش عضو في النادي ده | | `not_member` | 403 | إنت مش عضو في النادي ده |
| `locked` | 409 | مينفعش تغير النادي دلوقتي | | `locked` | 409 | مينفعش تغير النادي دلوقتي |
| `byes_disabled` | 409 | الاستراحة مش متاحة في البطولة دي | | `byes_disabled` | 409 | مفيش راحة في البطولة دي |
| `too_many_byes` | 409 | خدت كل الاستراحات المسموحة | | `too_many_byes` | 409 | خلّصت كل مرات الراحة |
| `round_started` | 409 | الجولة دي اتوزّعت خلاص | | `round_started` | 409 | الجولة دي اتوزّعت خلاص |
| `finished` | 409 | البطولة خلصت | | `finished` | 409 | البطولة خلصت |
| `report_window_closed` | 409 | وقت البلاغ خلص | | `report_window_closed` | 409 | وقت البلاغ خلص |
| `not_your_game` | 403 | دي مش مباراتك | | `not_your_game` | 403 | ده مش ماتشك |
| `already_reported` | 409 | بلغت عن المباراة دي قبل كده | | `already_reported` | 409 | بلّغت عن الماتش ده قبل كده |
| `rate_limited` | 429 | استنى شوية وجرّب تاني | | `rate_limited` | 429 | استنى شوية وجرّب تاني |
Staff-facing keys (tournament-admin.php to the manager): Staff-facing keys (tournament-admin.php to the manager):
...@@ -1082,7 +1082,7 @@ Staff-facing keys (tournament-admin.php to the manager): ...@@ -1082,7 +1082,7 @@ Staff-facing keys (tournament-admin.php to the manager):
| `invalid_stage` | 422 | إعدادات المرحلة فيها غلط | | `invalid_stage` | 422 | إعدادات المرحلة فيها غلط |
| `stages_locked` | 409 | مينفعش تغير المراحل بعد البداية | | `stages_locked` | 409 | مينفعش تغير المراحل بعد البداية |
| `not_in_cut_review` | 409 | مفيش مراجعة تأهل دلوقتي | | `not_in_cut_review` | 409 | مفيش مراجعة تأهل دلوقتي |
| `next_started` | 409 | المباراة اللي بعدها بدأت | | `next_started` | 409 | الماتش اللي بعده بدأ |
| `player_in_other_team` | 409 | اللاعب ده في فريق تاني | | `player_in_other_team` | 409 | اللاعب ده في فريق تاني |
| `not_org_member` | 409 | اللاعب مش عضو في النادي | | `not_org_member` | 409 | اللاعب مش عضو في النادي |
| `lineup_locked` | 409 | التشكيلة اتقفلت للجولة دي | | `lineup_locked` | 409 | التشكيلة اتقفلت للجولة دي |
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment