chore: أرشفة باك إند NestJS إلى backend-archive
قرار المالك 2026-07-27: الباك إند المعتمد صار باك إند سيرو PHP، ويُنقل إلى هذا المستودع كنسخة جديدة باسم «انطلق» على api.intaleqapp.com. backend/ → backend-archive/ (305 ملفاً، إعادة تسمية بلا تعديل محتوى) + README-ARCHIVE.md يوضّح سبب الأرشفة وسبب عدم الحذف: scripts/e2e-test.mjs هو أدق توثيق سلوكي لدورة الرحلة كاملة، ويبقى مرجعاً عند بناء الوحدات الناقصة في باك إند PHP (المحفظتان · الاستحقاقات · محرّك التسعير · الوحدات). مسارات backend/ في docs/*.md لم تُعدَّل عمداً — سجلّ تاريخي. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
75b80bd299
commit
fff76c949f
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* مزوّد إرسال OTP واحد (docs/17 — D5؛ نمط سيرو auth/otp/providers.php).
|
||||
*
|
||||
* كل مزوّد يرسل رمزاً **نولّده نحن** (لا يولّده المزوّد) — فالرمز يبقى مصدره
|
||||
* السيرفر ومخزَّناً في Redis، والمزوّد قناة توصيل فقط. هذا يختلف عن مزوّد
|
||||
* Intaleq عند سيرو الذي يولّد الرمز بنفسه ويرجعه — استبعدناه عمداً حفاظاً على
|
||||
* مصدر واحد للرمز.
|
||||
*/
|
||||
export interface OtpSendContext {
|
||||
/** دولة المستأجر (jo | sy | eg) — تحدّد المزوّد. */
|
||||
countryPack: string;
|
||||
/** passenger | driver | admin | service — لتخصيص نصّ الرسالة. */
|
||||
userType?: string;
|
||||
}
|
||||
|
||||
export interface OtpProvider {
|
||||
/** اسم قصير للتشخيص واللوغ. */
|
||||
readonly name: string;
|
||||
|
||||
/** الدول التي يخدمها هذا المزوّد (رموز countryPack). */
|
||||
supports(countryPack: string): boolean;
|
||||
|
||||
/**
|
||||
* يرسل الرمز. يرجع `true` عند النجاح المؤكَّد فقط — أي فشل أو استجابة
|
||||
* غامضة = `false` كي يجرّب المُوزِّع المزوّد التالي في السلسلة.
|
||||
* **لا يرمي**: الرمي يقطع سلسلة الـfailover.
|
||||
*/
|
||||
send(phone: string, code: string, ctx: OtpSendContext): Promise<boolean>;
|
||||
}
|
||||
|
||||
export const OTP_PROVIDERS = Symbol('OTP_PROVIDERS');
|
||||
Reference in New Issue
Block a user