جميع الأمثلة

طلب شامل لبناء تطبيق

إنشاء تطبيق لشهادة المنشأ.

مواصفات تنفيذ تشمل نموذج البيانات وسير العمل الدقيق والصلاحيات وقواعد العمل والشاشات واختبارات القبول.

انسخ هذه المواصفات الكاملة إلى وكيل البرمجة مع فتح المستودع. تحدد قواعدها التفصيلية تطبيقًا تدريبيًا مستقلًا؛ وهي ليست متطلبات رسمية لإصدار الشهادات. راجع الخطة قبل الإذن بالتنفيذ.

اطرح سؤالًا عن SMART
01

كيفية تنفيذ هذه المواصفات

اتبع المواصفات كلها كمهمة مترابطة وفق Grill → Plan → Goal → Review. اقرأ الموجّه كاملًا أولًا ولا تفحص إلا ما هو مأذون.

  • Grill: اطرح أسئلة مركزة فقط عن التعارضات المؤثرة أو المتطلبات الناقصة واحسمها قبل التخطيط.
  • Plan: قدم خطة مكتملة القرارات دون تعديل الملفات، ثم توقف حتى تحصل على موافقتي الصريحة.
  • Goal: بعد الموافقة فقط، نفّذ النطاق المتفق عليه على مراحل متحقق منها.
  • Review: راجع الناتج مقابل كل متطلب دون تعديل، وقدّم ملاحظات مرتبة بالأولوية ومدعومة بالأدلة. اطلب الإذن لمعالجة ما يتجاوز النطاق المعتمد. طلب تطبيق يعمل لا يلغي أبدًا شرط الموافقة على الخطة. تعليمات المراحل الأربع التفصيلية موجودة في نهاية هذا الموجّه نفسه.

هذه أساليب توجيه قابلة للاستخدام عبر الوكلاء، وليست أوضاعًا موحدة. لا يغيّر التوجيه وضع وكيلك الفعلي أو صلاحياته. اختر وضعًا أصليًا بشكل منفصل إذا كان وكيلك يوفره.

المخرجالنتيجة المطلوبة
التطبيقخدمة SOKit وواجهة SOKit UI وترحيلات وعقود مشتركة تعمل فعليًا
سير العملDRAFT → SUBMITTED → APPROVED → FINALIZED؛ SUBMITTED → RETURNED → SUBMITTED؛ SUBMITTED → REJECTED
حدود الثقةملكية المؤسسة ومراجع معيّن وإصدار منفصل وأدلة محمية
أدلة الإنجازبيانات تجريبية واختبارات آلية وتشغيل محلي وتقرير المتطلبات والاختبارات
02

أنشئ هذا التطبيق ضمن هذه الحدود

أنشئ تطبيق شهادة المنشأ (COO) المحدد أدناه، بما يشمل التخزين الفعلي وترحيلات قاعدة البيانات وإدارة البيانات المرجعية وعمليات المستند الآمنة وواجهة SOKit UI كاملة والمرفقات المحمية والإشعارات المترجمة وإخراج نموذج شهادة واختبارات قبول آلية. لا تكتفِ بتصميم تجريبي أو عمليات CRUD عامة أو هيكل أولي أو خطة. قدّم خطة التنفيذ أولًا، ثم نفّذها بعد موافقتي. تعامل مع المتطلبات أدناه بوصفها نطاق المثال المتفق عليه، لا أسئلة يخترع الذكاء الاصطناعي إجاباتها. اسأل فقط عن التعارضات الفعلية أو الاعتماديات غير المتاحة أو القرارات التي تمنع التنفيذ.

نمذج البنية التجارية باستخدام المصدّر والأطراف الأخرى، ومرجعين منفصلين للطلب والإصدار، وتفاصيل النقل والبضائع، وإسناد المراجعة، والمراسلات الظاهرة لمقدم الطلب، والملاحظات الداخلية المقيدة. الحدود والترقيم والصلاحيات ودورة الحياة المبسطة أدناه قواعد مقصودة لهذا التطبيق التدريبي، وليست متطلبات قانونية. استبعد المدفوعات والإلغاء وإعادة الإصدار والتوقيع الرسمي والأختام والتكامل مع جهات التصديق الخارجية. لا تعرض المخرجات أبدًا باعتبارها شهادة صالحة قانونًا.

افحص المستودع وملفات تعليماته أولًا. إذا كان فارغًا باستثناء بيانات المستودع أو الوثائق، فاكتشف قوالب التطبيقات المدعومة واقترح مستودعًا موحدًا يضم الواجهة والخدمات والعقود المشتركة والاختبارات وإعدادات النشر المطلوبة قبل إنشاء الملفات. إذا كان هناك تطبيق، فحافظ على بنيته وأعرافه، وحدد المكونات المسؤولة ووسّعها دون إنشاء تطبيق آخر أو استبدال إعدادات الجذر. إذا كان المشروع غير متوافق، فاشرح السبب واطلب قرارًا بشأن الترحيل قبل إعادة الهيكلة.

استخدم SMART لاكتشاف ملف توافق إطار العمل المناسب وتحميل الإرشادات ذات الصلة عند المراجعة التي يعيدها. اتبع عقود SOKit وSOKit UI المدعومة واتجاهات الاعتماديات الصريحة في المستودع الموحد وأعراف Quarkus الخاصة بالمشروع في الحقن والتحقق والتخزين والمعاملات والإعداد والاختبارات. أعد استخدام العقود المولدة وأدوات البناء المثبتة؛ لا تخترع واجهات برمجية أو تنسخ ملفات بناء قديمة أو تغيّر الإصدارات بصمت. صرّح بصدق بأي إرشادات أو صلاحيات أو اعتماديات غير متاحة. استخدم بيانات وهمية وأبقِ الأسرار خارج الأمثلة.

03

المستودع والمكونات والتسليمات

للمستودع الفارغ، استخدم القالب المدعوم لإنشاء مستودع موحد واحد. حدّد في الخطة المكونات المسؤولة بأسمائها عن واجهة الويب وخدمة مستند شهادة المنشأ وإدارة البيانات المرجعية والعقود المولدة المشتركة واختبارات التكامل والاختبارات الشاملة وإعدادات النشر المحلي. يمكن أن تتشارك القدرات خدمة موجودة عندما يدعم القالب المختار ذلك؛ لا تنشئ خدمة مصغرة لكل جدول. اجعل اعتماديات الواجهة على العقود العامة المولدة، واعتماديات الخدمات على مكونات النطاق والتخزين التابعة لها، وأبقِ المكتبات المشتركة خالية من اعتماديات عكسية خاصة بالتطبيق. تتولى أوامر الجذر تنسيق بناء المكونات وفحوصها.

للتطبيق الموجود، حدّد هذه المكونات المسؤولة ووسّعها في مواضعها، مع الحفاظ على مدير الحزم ونظام البناء والمسارات والمصادقة وحدود الوحدات. لا تنشئ تطبيقًا ثانيًا ولا تستبدل ملفات الجذر. للمشروع غير المتوافق، صِف عدم التوافق واحصل على قرار بشأن الترحيل قبل إعادة الهيكلة. سلّم خريطة معمارية ومخطط بيانات وترحيلات وDTOs وعقودًا مولدة مدعومة وشاشات وعمليات منفذة ورسائل مترجمة وبيانات اختبار واختبارات ومثالًا لمتغيرات البيئة بلا أسرار وتعليمات التشغيل المحلي وقائمة تربط المتطلبات بالاختبارات. اكتشف مراجعة SMART وملف التوافق المناسبين واستخدم عقوده الحالية لـ SOKit وSOKit UI وQuarkus؛ الأسماء المنطقية في هذه المواصفات ليست واجهات مخترعة لإطار العمل.

04

الهوية والأدوار ومصفوفة التفويض

اشترط المصادقة في كل موضع باستثناء مدخل تسجيل الدخول. استخدم الهوية الموثوقة وعضوية المؤسسات لتحديد مؤسسة مقدم الطلب والجهة المُصدِرة وأهلية الموظفين. لا تقبل معرّفات المالك أو الأدوار أو هوية المراجع أو الحالة أو المراجع التجارية أو منفذي إجراءات التدقيق من حقول يمكن لمقدم الطلب تعديلها. لا يجوز لحساب مقدم الطلب التصرف نيابة عن مصدّر إلا بتفويض يتحقق منه الخادم؛ في بيانات المثال الأولية تكون مؤسسة مقدم الطلب والمصدّر جهة واحدة.

نفّذ الصلاحيات المنطقية التالية من خلال نظام التفويض المدعوم في التطبيق: يجوز لمقدم الطلب إنشاء السجلات والبحث عنها وقراءتها وتعديلها وتقديمها عندما تملكها مؤسسة يتمتع فيها بعضوية نشطة لمقدمي الطلبات. يجوز للمراجع قراءة السجلات المسندة إليه والتابعة لجهته المُصدِرة وإعادة سجل SUBMITTED أو اعتماده أو رفضه. يجوز لمشرف المراجعة الاطلاع على قائمة مراجعة تلك الجهة وإسناد الطلبات وإعادة إسنادها إلى مراجعين مؤهلين، مع سبب إلزامي؛ لا يمنح دور المشرف وحده صلاحية اتخاذ القرار. يجوز لمسؤول الإصدار إصدار سجلات APPROVED التابعة لجهته المُصدِرة. يجوز لمسؤول البيانات المرجعية إدارة الكتالوجات، لكن هذا الدور وحده لا يمنحه صلاحية الوصول إلى المستندات. يجوز لموظفي الجهة المُصدِرة المصرح لهم قراءة الملاحظات الداخلية على السجلات الواقعة ضمن نطاقهم المسموح؛ ولا يجوز لمقدمي الطلبات قراءتها مطلقًا، حتى لو كان دور آخر سيكشفها لهم في طلباتهم الخاصة.

امنع المراجعة الذاتية والإصدار الذاتي: يجب ألا يكون منفذ القرار منشئ الطلب أو عضوًا بصفة مقدم طلب في المؤسسة المالكة. ويجب أن يختلف مسؤول الإصدار أيضًا عن منفذ الاعتماد. تحقق على الخادم من صلاحية العملية ونطاق السجل معًا عند البحث والقراءة واكتشاف الإجراءات والتعديل وقراءة السجل التاريخي والمراسلات وإخراج النموذج والتنزيل. لا يجوز لمراجع لم يُسنَد إليه السجل اكتشاف سجلات مراجع آخر. طبّق باستمرار أسلوب التطبيق الموجود في رفض الوصول دون كشف معلومات غير مسموحة. اختبر الوصول بالرابط المباشر والطلبات المزورة، لا إخفاء الأزرار فقط.

اربط مؤسسة كل مقدم طلب بجهة إصدارها عبر إعداد موثوق في الخادم، وارفض الإنشاء عند غياب مسار مخوّل. تشمل أهلية الموظف عضوية نشطة وصلاحية العملية وجميع قواعد فصل المهام في هذا الموجّه. طبّق هذه الشروط عند اختيار المراجع وموظف الإصدار الافتراضيين، وكذلك عند تنفيذ العملية.

05

نموذج البيانات: المستند والأطراف والشحنة

استخدم هوية المستند الإلكتروني ذات الإصدارات وآلية expectedVersion المدعومتين. يتضمن الكيان التجميعي: documentId غير قابل للتغيير؛ version؛ state؛ الحقول الموثوقة ownerOrganizationId وcreatedBy وcreatedAt وupdatedAt؛ issuingOrganizationId؛ assignedReviewerId؛ submittedAt؛ resubmissionCount بقيمة أولية 0؛ approvedBy/approvedAt؛ requestReference/requestDate؛ issuanceReference/issuedAt؛ validFrom/validUntil. خزّن اللحظات الزمنية بالتوقيت UTC والتواريخ التجارية كقيم تاريخ بلا وقت. استخدم منطقة زمنية تجارية قابلة للإعداد للجهة المُصدِرة، وتكون UTC في المثال. نمذج الحقول التي يتحكم فيها الخادم ضمن DTOs مقيدة وخاصة بكل عملية، لا ضمن DTO يسمح بإسناد شامل للحقول.

ضمّن لقطتين لبيانات المصدّر والمرسل إليه: identifier بطول 1–64 محرفًا، وlegalName بطول 1–200، وaddress بطول 1–500، ومرجع الدولة، وcontactName اختياري حتى 200، وemail اختياري صالح حتى 254، وphone اختياري حتى 32. كلا الطرفين مطلوب عند التقديم. الأطراف الإضافية مجموعة فرعية مرتبة، لكل صف فيها معرّف ثابت ودور BROKER أو NOTIFY_PARTY والحقول نفسها. هي اختيارية وبحد أقصى 10، ولا يجوز تكرار زوج الدور/المعرّف. أبقِ هوية مقدم الطلب منفصلة عن لقطات الأطراف التجارية هذه. خذ لقطة لهوية الجهة المُصدِرة من الإعدادات الموثوقة.

حقول الشحنة المطلوبة عند التقديم وإعادة التقديم: originCountry وdestinationCountry وfinalDestinationCountry وtransportMode وexpectedExportDate وloadingLocation وunloadingLocation وfinalUnloadingLocation. يجب أن تنتمي المواقع الثلاثة، على الترتيب، إلى دول المنشأ والوجهة والوجهة النهائية. اسمح بتطابق دولة الوجهة والوجهة النهائية. يتطلب SEA حقل vesselName؛ وROAD حقل vehicleRegistration؛ وAIR حقل flightNumber؛ وRAIL حقل trainReference؛ بحد أقصى 100 محرف لكل منها. تظل حقول وسائل النقل الأخرى اختيارية وتُحذف من المخرجات إذا كانت فارغة. يجب ألا يسبق تاريخ التصدير المتوقع تاريخ العمل الخاص بعملية التقديم أو إعادة التقديم. لا تعِد تطبيق شرط التاريخ المستقبلي هذا في المراجعة أو الإصدار اللاحقين.

06

الجداول المرجعية والحفاظ على المعنى التاريخي

نفّذ تسعة كتالوجات: الدول؛ المواقع مع الدولة الأم؛ وسائل النقل؛ أنواع العبوات؛ الوحدات التكميلية؛ العملات مع دقة وحداتها النقدية الصغرى؛ التصنيفات السلعية؛ معايير المنشأ؛ أنواع المرفقات. لكل سجل رمز ثابت code بطول 1–32 وتسميات مترجمة إلى EN/FR/ES/AR بطول 1–200 وعلامة active وتاريخا validFrom/validTo اختياريان شاملان لطرفي الفترة وversion. الرموز فريدة داخل الكتالوج ولا تُعدّل بعد الإنشاء؛ ولا يجوز أن يسبق validTo تاريخ validFrom. لا يجوز حذف صفوف مستخدمة في مراجع حذفًا فعليًا؛ عطّلها. تتطلب الطلبات المقدمة حديثًا مراجع نشطة ونافذة في تاريخ التقديم.

وفّر بحثًا بالرمز والتسمية مع تقسيم النتائج إلى صفحات، ومرشحات للنشاط والنفاذ، وتسميات مترجمة مع توثيق اللغة البديلة عند غياب الترجمة، وشاشات إنشاء وتعديل وتعطيل مقصورة على مسؤولي البيانات المرجعية. يجوز للمستخدمين المصادق عليهم قراءة الكتالوجات المناسبة. رشّح منتقيات المواقع وفق الدولة المحددة لها. خزّن لقطات للرمز والتسمية المعروضة ضمن إصدارات المستند، حتى لا يعيد تغيير الأسماء أو التعطيل لاحقًا كتابة المعنى التاريخي. أعِد التحقق من الطلبات المعدلة أو المعاد تقديمها؛ ولا تُبطل شهادة صادرة بأثر رجعي.

أضف بيانات اختبار أولية واضحة الوهمية، تحمل بادئة DEMO للدول والمواقع والوحدات والعملات والتصنيفات، إلى جانب سلوك وسائل النقل SEA/ROAD/AIR/RAIL ونوعي المرفقات INVOICE وORIGIN_EVIDENCE ومعياري المنشأ التوضيحيين DEMO_WHOLLY_OBTAINED وDEMO_VALUE_CONTENT. يتطلب الأخير percentageExportPrice؛ ويمنعه الأول. لا تستورد قواعد تعرفة أو منشأ رسمية مختلقة. استيراد الكتالوجات الحقيقية خارج نطاق المثال إلى أن يتوافر مصدر معتمد وترخيص استخدام.

07

بنود البضائع والمبالغ وقواعد التقديم

خزّن من 1 إلى 100 بند بضائع مرتب. لكل بند معرّف ثابت يختلف عن sequenceNumber، ومرجع تصنيف، وcommercialDescription بطول 1–255، وmarksAndNumbers بطول 1–255؛ استخدم القيمة الصريحة NO MARKS عند عدم وجود علامات؛ وpackageType وpackageCount كعدد صحيح موجب، وsupplementaryQuantity ووحدتها، وgrossWeightKg وnetWeightKg وoriginCriterion، وpercentageExportPrice اختياري، وinvoiceReference بطول 1–64، وinvoiceDate وinvoiceCurrency وinvoiceValue. اشترط جميع الحقول باستثناء النسبة المشروطة عند التقديم وإعادة التقديم. أرقام تسلسل البنود فريدة ومتتابعة؛ ويجب أن تحافظ إعادة الترتيب على معرّفات البنود.

استخدم الحساب العشري، لا الفاصلة العائمة الثنائية. الكميات والأوزان موجبة ولا تتجاوز ثلاث منازل عشرية؛ ولا يجوز أن يزيد الوزن الصافي على الإجمالي. قيمة الفاتورة موجبة وبدقة عشرية كلية 18، ومقياس يطابق المنازل النقدية الصغرى للعملة المختارة من 0 إلى 3؛ ارفض الدقة الزائدة بدل تقريب مدخلات المستخدم بصمت. النسبة عدد عشري من 0 إلى 100 شاملًا، بحد أقصى منزلتين عشريتين، ومطلوبة فقط مع DEMO_VALUE_CONTENT ويجب ألا توجد مع DEMO_WHOLLY_OBTAINED. احتفظ بالنسبة الصفرية المسموحة بقيمة صفر. يجب ألا يأتي تاريخ الفاتورة بعد تاريخ العمل للتقديم أو إعادة التقديم أو بعد تاريخ التصدير المتوقع.

احسب إجماليات للقراءة فقط لكل عملة بجمع قيم البنود؛ تعني invoiceValue قيمة الفاتورة المخصصة لذلك البند، لا قيمة الفاتورة كاملة مكررة في كل بند. يجب أن تستخدم البنود التي تتشارك مرجع الفاتورة وتاريخها العملة نفسها. اعرض إجمالي العبوات والأوزان على حدة؛ ولا تجمع الكميات التكميلية ذات الوحدات المختلفة أو تحوّل العملات ضمنيًا. طبّق الحدود وأنواع الحقول والاتساق العددي حتى عند حفظ مسودة غير مكتملة، مع تأجيل فحوص الاكتمال وتاريخ التقديم إلى التقديم وإعادة التقديم. أعد أخطاء مترجمة ومحددة للبند والحقل، دون فقدان المدخلات الصحيحة.

08

دورة الحياة الدقيقة ومدخلات العمليات

استخدم حالات التخزين الأساسية التالية بالضبط: DRAFT وSUBMITTED وRETURNED وAPPROVED وREJECTED وFINALIZED التي تُعرض باسم «صادرة». المراجعة نشاط على SUBMITTED وليست حالة أخرى. ولّد الإجراءات من عقود المستند الإلكتروني المدعومة؛ ولا تكشف حقل حالة قابلًا للكتابة. يتطلب كل تعديل expectedVersion الحالي، وينفّذ التفويض والتحقق وتغيير الحالة والسجل التاريخي في معاملة واحدة. في CREATE_DRAFT استخدم عقد العملية الأولية المدعوم بدلًا من اشتراط نسخة سابقة للمستند.

CREATE_DRAFT

من عدم وجود سجل إلى DRAFT؛ ينفّذها مقدم الطلب؛ وتقبل بيانات الأطراف والشحنة والبضائع والمرفقات القابلة للتعديل، ولو كانت غير مكتملة.

SAVE_DRAFT

من DRAFT إلى DRAFT؛ ينفّذها مقدم الطلب المالك؛ وتقبل الحقول القابلة للتعديل نفسها.

SUBMIT

من DRAFT إلى SUBMITTED؛ ينفّذها مقدم الطلب المالك؛ مع تحقق كامل من الاكتمال والكتالوجات والأدلة؛ وتُسند مرجع الطلب وتاريخه وsubmittedAt عند التقديم الأول. حدّد المراجع الافتراضي المُعدّ للجهة المُصدِرة من الموظفين النشطين الموثوقين؛ وافشل برسالة واضحة دون تثبيت المعاملة إذا لم يوجد مراجع مؤهل. لا يجوز لمقدم الطلب اختيار ذلك المراجع أو تزوير هويته.

RETURN

من SUBMITTED إلى RETURNED؛ ينفّذها المراجع المسند إليه؛ وتقبل سببًا ظاهرًا لمقدم الطلب بطول 10–2000 محرف وملاحظة داخلية اختيارية حتى 4000، دون تعديل البضائع.

SAVE_CORRECTION

من RETURNED إلى RETURNED؛ ينفّذها مقدم الطلب المالك؛ وتقبل بيانات العمل القابلة للتعديل وفق قواعد المسودة المخففة نفسها.

RESUBMIT

من RETURNED إلى SUBMITTED؛ ينفّذها مقدم الطلب المالك؛ وتتطلب تحقق التقديم الكامل وملخص تصحيح ظاهرًا لمقدم الطلب بطول 10–2000؛ وتزيد resubmissionCount وتحافظ على مرجع الطلب وتاريخه وعلى المراجع المسند إليه إن بقي مؤهلًا، وإلا تحدد المراجع الافتراضي المؤهل المُعدّ في النظام.

APPROVE

من SUBMITTED إلى APPROVED؛ ينفّذها المراجع المسند إليه؛ وتقبل validFrom وvalidUntil وتعليقًا ظاهرًا لمقدم الطلب اختياريًا وملاحظة داخلية اختيارية؛ وتعيد التحقق من حقول العمل المطلوبة والأدلة، مع استثناء قواعد التاريخ المستقبلي الخاصة بالتقديم فقط؛ وتحفظ هوية منفذ الاعتماد ووقته.

REJECT

من SUBMITTED إلى REJECTED؛ ينفّذها المراجع المسند إليه؛ وتتطلب سببًا ظاهرًا لمقدم الطلب بطول 10–2000 وملاحظة داخلية اختيارية.

REASSIGN

من SUBMITTED إلى SUBMITTED؛ ينفّذها مشرف مراجعة الجهة المُصدِرة؛ وتتطلب معرّف مراجع مؤهل وسببًا داخليًا بطول 10–2000؛ وتسجل المراجع السابق والجديد والمنفذ في سجل تاريخي مقيد. لا تمنح صلاحية تعديل البيانات التجارية.

ISSUE

من APPROVED إلى FINALIZED؛ ينفّذها مسؤول إصدار يستوفي فصل المهام؛ ولا تقبل حقولًا تجارية قابلة للتعديل؛ وتتحقق من اللقطة المعتمدة والصلاحية، ثم تسند مرجع الإصدار ووقته وتثبّت اللقطة الصادرة بصورة ذرية. لا يُسمح بالإعادة أو التعديل أو الحذف أو الإلغاء أو إعادة الإصدار من APPROVED أو REJECTED أو FINALIZED ضمن النطاق الأساسي. احتفظ بجميع الإصدارات السابقة. يجب ألا تكرر العمليات المعادة أو المتزامنة الانتقالات أو الترقيم أو الإشعارات: ارفض التعديلات القديمة أو المعاد إرسالها بتعارض قابل للمعالجة ووفّر الحالة الحالية المسموح للمستخدم برؤيتها. لا يجوز أن تنجح إلا عملية إصدار متزامنة واحدة.

العمليةالانتقالالمنفّذ المخوّلالمدخل أو التحقق المطلوب
CREATE_DRAFT— → DRAFTمقدم الطلب المالكتُسمح بيانات غير مكتملة
SAVE_DRAFTDRAFT → DRAFTمقدم الطلب المالكتُسمح بيانات غير مكتملة
SUBMITDRAFT → SUBMITTEDمقدم الطلب المالكبيانات مكتملة ومراجع نشطة ومرفقات
RETURNSUBMITTED → RETURNEDالمراجع المعيّنسبب علني وملاحظة داخلية اختيارية
SAVE_CORRECTIONRETURNED → RETURNEDمقدم الطلب المالكتُسمح بيانات غير مكتملة
RESUBMITRETURNED → SUBMITTEDمقدم الطلب المالكملخص التصحيحات والتحقق الكامل
APPROVESUBMITTED → APPROVEDالمراجع المعيّنتواريخ الصلاحية والبيانات والأدلة المطلوبة
REJECTSUBMITTED → REJECTEDالمراجع المعيّنسبب علني وملاحظة داخلية اختيارية
REASSIGNSUBMITTED → SUBMITTEDمشرف جهة الإصدارمراجع مؤهل وسبب داخلي
ISSUEAPPROVED → FINALIZEDموظف الإصدارنسخة معتمدة وصلاحية وفصل المهام
09

الترقيم والصلاحية ونموذج الشهادة

خصّص على الخادم مراجع الطلبات بصيغة COO-REQ-{year}-{six-digit-sequence} عند أول تقديم ناجح، بحيث تكون فريدة لكل جهة مُصدِرة وسنة. خصّص COO-ISS-{year}-{six-digit-sequence} عند الإصدار الناجح فقط، بتسلسل منفصل ونطاق التفرد نفسه. استخدم تخصيصًا ذريًا مدعومًا بقاعدة البيانات وقيود تفرد؛ ولا تعتمد على عدّ الصفوف الموجودة أو تثق بأرقام العميل. الفجوات في التسلسل مقبولة. تعتمد تواريخ الخادم على المنطقة الزمنية التجارية للجهة المُصدِرة. المراجع التجارية ليست مفاتيح أساسية ولا بيانات اعتماد للوصول.

في هذا المثال، يتطلب الاعتماد validFrom يوافق تاريخ عمل الاعتماد أو يأتي بعده، وvalidUntil يساوي validFrom زائد 89 يومًا، بما يعطي 90 يومًا تقويميًا شاملًا طرفي المدة. اجعل القيمة الافتراضية لـ validFrom تاريخ عمل الاعتماد. يتطلب الإصدار وقوع تاريخ العمل الحالي ضمن تلك الفترة؛ لا يجوز إصدار اعتماد منتهي الصلاحية، وتصحيح الاعتماد المنتهي خارج نطاق المثال الأساسي. هذه قواعد تدريبية توضيحية، وليست سياسة قانونية لصلاحية الشهادات.

سلّم معاينة شهادة ميسّرة لذوي الإعاقة وملف PDF نموذجيًا للتنزيل المحمي من اللقطة الصادرة غير القابلة للتغيير. يجب أن يحمل كلاهما بوضوح عبارة «نموذج — ليس شهادة رسمية»، وأن يتضمنا مرجعي الطلب والإصدار وتواريخهما والصلاحية والجهة المُصدِرة والمصدّر والمرسل إليه والشحنة والبضائع والإجماليات بحسب العملة، مع استبعاد الملاحظات الداخلية وتفاصيل الاتصال الخاصة. قبل الإصدار، اعرض معاينة مسودة بتسمية مستقلة ودون رقم إصدار؛ لا يؤدي توليدها إلى تغيير الحالة. يجب أن يسمح فشل التوليد بعد الإصدار بإعادة المحاولة دون إصدار جديد أو تخصيص مرجع آخر. أعد استخدام تكامل التوليد المدعوم، وصرّح صراحة بالاعتمادية غير المتاحة، ولا تستبدلها بزر تنزيل وهمي.

10

المراسلات والملاحظات الداخلية والأدلة

خزّن المراسلات الظاهرة لمقدم الطلب والملاحظات الداخلية في نماذج فرعية وتمثيلات استجابة منفصلة. لكل مدخلة معرّف غير قابل للتغيير وارتباط بالمستند وإصداره ومؤلف ووقت موثوقان ونص عادي وسياق العملية. تظهر أسباب الإعادة والرفض وملخصات التصحيح في المراسلات التي يراها مقدم الطلب. لا يرى الملاحظات الداخلية إلا موظفو الجهة المُصدِرة المصرح لهم ضمن نطاق السجل؛ وتُستبعد من DTOs مقدم الطلب والسجل التاريخي العام ونتائج البحث والإشعارات وسجلات التشغيل ومخرجات النموذج. المدخلات قابلة للإضافة فقط؛ لا تعديل صامت ولا حذف. تضيف الواجهة الأساسية الرسائل عبر العمليات المحددة؛ لا تخترع مسار محادثة مستقلًا.

يتضمن كل صف مرفق معرّفه الثابت الخاص وهوية ملف bucket الأصلية ومرجع نوع المرفق واسم الملف ونوع MIME والحجم المتحقق منها وهوية الرافع ووقته وارتباط الإصدار. استخدم رفع bucket وربط المرفقات المدعومين؛ وميّز بين معرّف الواجهة المحلي ومعرّف الصف الدائم ومعرّف bucket. تحقق على الخادم من أصالة استجابات الرفع والملكية. اسمح بملفات PDF/JPEG/PNG بحجم أقصى 10 MiB للملف و10 مرفقات لكل طلب. ارفض الملفات الفارغة والمحتوى غير المطابق أو غير المدعوم باستخدام التحقق المدعوم على الخادم؛ لا يكفي نوع MIME المعلن من المتصفح. ادمج أي فاحص تفرضه سياسة التخزين المختارة، وامنع تقديم ملفات معلقة الفحص أو مرفوضة.

اشترط مرفق INVOICE واحدًا ومرفق ORIGIN_EVIDENCE واحدًا على الأقل عند التقديم وإعادة التقديم والاعتماد. لا يجوز إضافة المرفقات أو إزالتها إلا لمقدم الطلب المالك في DRAFT أو RETURNED. تتطلب التنزيلات فحص صلاحية الوصول إلى المستند الأب وإصداره، واسترجاعًا مصرحًا قصير الأجل؛ لا تستخدم روابط عامة للكائنات أبدًا. احتفظ بالملفات التي تشير إليها الإصدارات التاريخية. تنتهي صلاحية الملفات المؤقتة غير المرفقة بعد 24 ساعة عبر مهمة تنظيف تراعي المراجع؛ ولا تحذف ملفًا يشير إليه مستند حالي أو تاريخي. اعرض تقدم الرفع وإعادة المحاولة واحتفظ ببيانات النموذج إذا فشل الرفع أو الحفظ.

11

الإشعارات بعد تثبيت المعاملة والتدقيق

نفّذ قوالب مترجمة إلى EN/FR/ES/AR، بمستلمين يحددهم الخادم وروابط سجلات تتطلب المصادقة. عند التقديم أو إعادة التقديم، أخطر المراجع المسند إليه. عند الإعادة أو الرفض، أخطر حساب مقدم الطلب الذي قدّم الطلب. عند الاعتماد، أخطر مسؤول الإصدار المؤهل المُعدّ للجهة المُصدِرة وأبلغ مقدم الطلب «معتمد، بانتظار الإصدار». عند الإصدار، أخطر مقدم الطلب بأن نموذج الشهادة متاح. عند إعادة الإسناد، أخطر المراجع الجديد. ارفض نقص إعداد الموظف المطلوب قبل تثبيت العملية المعنية؛ ولا تقبل عناوين مستلمين عشوائية من مدخلات العملية.

احفظ مدخلة في صندوق صادر دائم للإشعارات ضمن معاملة قاعدة البيانات نفسها الخاصة بعملية المستند. يسلّم عامل الخلفية المدخلات المثبتة فقط إلى وجهة استقبال محلية أثناء التطوير. استخدم مفتاح حدث فريدًا يتكون من معرّف المستند والإصدار المثبت ونوع الحدث والمستلم؛ وأعد محاولة الإخفاقات المؤقتة بعد 1 و5 و30 دقيقة، ثم علّمها بالفشل للفحص التشغيلي وإعادة المحاولة الصريحة. التسليم مرة واحدة على الأقل، مع إزالة التكرار حيث يكون ذلك مدعومًا، وليس وعدًا بالتسليم مرة واحدة بالضبط. يجب ألا يعكس فشل الإشعار عملية المستند المثبتة بالفعل أو يصف نتيجتها خطأً. لا ينشئ التراجع عن المعاملة إشعارًا قابلًا للتسليم.

دقّق كل عملية ناجحة بتسجيل المستند وإصداره والحالة السابقة والجديدة والمنفذ المصادق عليه والوقت وبيانات القرار الوصفية الآمنة. افصل تفاصيل الإسناد والملاحظات الداخلية المقيدة عن الخط الزمني الظاهر لمقدم الطلب. سجّل الإجراءات المرفوضة وإخفاقات التسليم دون محتويات الملفات أو بيانات الاعتماد أو الملاحظات الخاصة. تحقق من التفويض لكل إصدار تاريخي ولكل استرجاع للمخرجات، لا للمستند الحالي فقط.

12

الواجهة: مساحات العمل والنموذج وقرارات المراجع

استخدم مكونات SOKit UI ولغة التصميم الخاصة بالتطبيق. أنشئ مساحة عمل لمقدم الطلب تضم إجراء «إنشاء طلب» وجدولًا مقسمًا إلى صفحات يعرض مرجع الطلب والمصدّر والوجهة والحالة وآخر تحديث ومرجع الإصدار. وفّر مرشحات للنص المرجعي والحالة والفترة الزمنية. اجعل الترتيب الافتراضي حسب الأحدث تحديثًا. ضمّن حالة فراغ مفيدة وحالة تحميل وخطأ قابلًا للمعالجة مع إعادة المحاولة. حوّل الصفوف على الهواتف إلى بطاقات مقروءة دون فقدان الإجراءات أو الحالة.

أنشئ مساحة عمل للجهة المُصدِرة تضم «طلباتي المسندة» وقائمة «غير المسندة/الإسناد» التي لا يراها إلا المشرفون، وقائمة «معتمدة بانتظار الإصدار» التي يراها مسؤولو الإصدار المؤهلون. تعرض الصفوف الطلب ومقدم الطلب/المصدّر وتاريخ التقديم والحالة والمراجع المسند إليه؛ وتشمل المرشحات الحالة والتاريخ والمراجع حيث تسمح الصلاحيات. تفتح الروابط المستند الفعلي المصرح به. لا تعرض مساحات عمل كل الأدوار لجميع المستخدمين مع الاكتفاء بتعطيل الأزرار.

يعرض رأس المستند الحالة ومرجع الطلب ومرجع الإصدار إن صدر والإصدار وآخر تحديث والإجراءات التي يصرح بها الخادم فقط. استخدم قائمة أقسام جانبية على سطح المكتب ومنتقي أقسام على الهاتف للأطراف والشحنة والبضائع والأدلة والمراسلات والسجل التاريخي؛ وأظهر الملاحظات الداخلية للموظفين المصرح لهم فقط. أبقِ الإجماليات السياقية وملخص التحقق متاحين. للأطراف مجموعتان واضحتان ومنفصلتان للمصدّر والمرسل إليه، ومجموعة صفوف اختيارية للأطراف الإضافية. تستخدم الشحنة منتقيات مرجعية مترابطة للدول والمواقع وحقولًا خاصة بوسيلة النقل. تستخدم البضائع جدولًا ملخصًا ومحرر بند ميسّرًا للإضافة والتعديل والإزالة وإعادة الترتيب، مع مدخلات عشرية وإجماليات لكل عملة. تعرض الأدلة نوع الملف وحجمه وتقدم الرفع وإجراءات التنزيل والإزالة المصرح بها.

«حفظ مسودة» و«تقديم» إجراءان منفصلان؛ وتعرض حالة «معاد للتصحيح» سبب المراجع وتصحيحات قابلة للتعديل وملخصًا مطلوبًا قبل إعادة التقديم. تتطلب حوارات الإعادة والرفض سببًا ظاهرًا لمقدم الطلب، مع حقل منفصل بوضوح للملاحظة الداخلية الاختيارية. يعرض الاعتماد ملخصًا تجاريًا للقراءة فقط وتواريخ الصلاحية وتأكيدًا صريحًا. يعرض الإصدار البيانات المعتمدة والصلاحية مع تأكيد صريح؛ امنع النقرات المتكررة أثناء الانتظار، لكن اعتمد على حماية التزامن في الخادم. شاشتا «صادرة» و«مرفوضة» للقراءة فقط. حذّر قبل مغادرة تغييرات غير محفوظة. عند تعارض الإصدار القديم، احتفظ بالمدخلات التي حاول المستخدم إرسالها واشرح التعارض وقدّم إعادة التحميل أو التوفيق بين التغييرات دون استبدال تلقائي.

13

إمكانية الوصول والتوطين وجودة التنفيذ

وفّر تسميات ورسائل تحقق وأسماء حالات وواجهة مراسلات وقوالب إشعارات كاملة بلغات EN/FR/ES/AR. أبقِ المحتوى التجاري الذي يدخله المستخدم دون تغيير. استخدم لغة المستلم المفضلة للإشعارات ولغة الواجهة المختارة لتنسيق التواريخ والأرقام. العربية من اليمين إلى اليسار، مع عزل المعرّفات ذات الاتجاه من اليسار إلى اليمين وترتيب الإجراءات بشكل صحيح. تستخدم مخرجات النموذج اللغة المختارة مع الحفاظ على الرموز والقيم التجارية المخزنة.

تحقق من التخطيطات بعروض 360 و768 و1440 بكسل. تستخدم النماذج عمودًا واحدًا على الهواتف وأعمدة مجمعة بصورة مناسبة على سطح المكتب؛ لا تتجاوز عناصر التحكم العرض، ولا تغطي العناصر اللاصقة المدخلات أو الإجراءات. وفّر استخدام لوحة المفاتيح وتركيزًا مرئيًا وتسميات وصفية وإعلانات تحقق لقارئ الشاشة ونقل التركيز إلى ملخص الأخطاء وإعادته بعد إغلاق الحوار. لا تعبّر عن الحالة باللون وحده. ميّز إخفاقات الصلاحيات والشبكة والرفع والتحقق دون فقدان المدخلات.

استخدم إرشادات SMART الحالية لعمليات SOKit ومجموعات التحقق والعقود المولدة وأمن السجلات والمراجع وربط bucket والإشعارات. اتبع ملف توافق Quarkus المختار في CDI والتخزين وملكية المعاملات والإعداد والتحقق من DTOs والاختبارات؛ دون انحراف عن إصدارات المنصة أو اعتماديات غير مُدارة أو كشف الكيانات كمدخلات عامة أو أسماء واجهات مختلقة. استخدم ترحيلات تتضمن القيود والفهارس واستعلامات محدودة ومقسمة إلى صفحات وخطط جلب مقصودة؛ وتجنب استعلامات N+1. أبقِ الأسرار خارج التحكم بالإصدارات، ولا تسجّل بيانات شخصية، واستخدم آليات المصادقة والحماية من CSRF والتحقق من المصدر المدعومة والملائمة للتطبيق الموجود.

14

بيانات الاختبار وسيناريوهات القبول وتعريف الاكتمال

أنشئ جهة إصدار وهمية باسم Demo Chamber، ومقدم طلب/مصدّر باسم Demo Export Ltd، ومرسلًا إليه باسم Demo Import Ltd، ومؤسسة ثانية غير مرتبطة لمقدم طلب آخر. أضف هويات منفصلة لمقدم الطلب والمراجع المسند إليه ومراجع آخر والمشرف ومسؤول الإصدار ومسؤول البيانات المرجعية عبر آلية بيانات المصادقة المحلية المدعومة؛ دون بيانات اعتماد إنتاجية. وفّر شحنة صالحة ذات بندين والكتالوجات المرجعية التسعة وملفات اختبار آمنة للفاتورة وإثبات المنشأ. استخدم ساعة اختبار مضبوطة لتظل قواعد التاريخ قابلة لإعادة الاختبار.

أتمت هذا المسار الكامل: إنشاء مسودة غير مكتملة ← حفظ ← إكمال الأطراف والشحنة وبندَي البضائع والأدلة ← تقديم والحصول على مرجع طلب واحد ← إعادة المراجع المسند إليه الطلب بسبب ظاهر لمقدم الطلب وملاحظة داخلية خاصة ← يرى مقدم الطلب السبب فقط ← تصحيح وحفظ وإعادة تقديم بمرجع الطلب نفسه وقيمة resubmissionCount تساوي 1 ← اعتماد بصلاحية 90 يومًا ← مسؤول إصدار مختلف يصدر مرة واحدة ← استرجاع ملف PDF نموذجي ذي علامة مائية من اللقطة المثبتة. تحقق من الحالة والإصدار والمنفذ والسجل التاريخي والإجراءات المسموحة ومدخلات صندوق الصادر عند كل انتقال. غطِّ كذلك المسار النهائي للرفض.

يجب أن تغطي الاختبارات السلبية كل توليفة دور/حالة في المصفوفة، وتزوير حقول المالك والمراجع، وقراءة مؤسسات أخرى والبحث فيها وسجلاتها وملفاتها، والمراجعة دون إسناد والمراجعة الذاتية، والاعتماد والإصدار من الشخص نفسه، وتسريب الملاحظات الداخلية، والمراجع غير النشطة، والمواقع التابعة لدولة خاطئة، وحقول وسيلة النقل أو الأدلة الناقصة، والتواريخ والدقة والأوزان غير الصالحة، والإجماليات متعددة العملات، ومعرّفات البنود المعدلة أو المعاد ترتيبها، والملفات الزائدة الحجم أو المزورة، وفشل الرفع والحفظ وتنظيف الملفات المؤقتة. اختبر عمليتي تقديم أو إصدار متزامنتين والتعديلات ذات الإصدارات القديمة والصلاحية المنتهية وتفرد الترقيم وثبات المخرجات الصادرة والتراجع دون إشعار وإعادة محاولة التسليم وإزالة التكرار وإعادة محاولة توليد النموذج دون إعادة الإصدار والوصول المباشر غير المصرح به إلى نقاط النهاية.

شغّل عمليات بناء المكونات المناسبة وفحوص الأنواع والتدقيق واختبارات الخادم والتكامل والواجهة الشاملة، بما يشمل اللغات الأربع والأحجام المتجاوبة. سلّم مصفوفة تربط المتطلبات بالاختبارات ونتائجها الفعلية وقائمة المكونات والملفات المعدلة وأوامر التشغيل المحلي وتعليمات الترحيل وبيانات الاختبار والإعداد التشغيلي. اذكر بدقة الفحوص التي تعذر تشغيلها وسبب ذلك. لا تكتمل مرحلة إلا عندما يعمل سلوكها القابل للملاحظة؛ ولا تدّعِ اكتمال تطبيق كامل إذا لم يوجد إلا قوالب أولية أو محاكاة أو خطة.

15

Grill · استجواب الفكرة

اختبر مواصفاتي بالأسئلة قبل التنفيذ. حدد المتطلبات الناقصة والتناقضات والافتراضات الخطرة. اسأل سؤالًا محددًا في كل مرة واشرح أهميته وقدم بدائل ذات معنى مع توصية. غطِّ الأطراف والملكية والحقول ومصادر المراجع والانتقالات والتحقق والتعافي والإشعارات والواجهة ومعايير القبول. افصل القرارات المؤكدة عن الافتراضات. لا تكتب كودًا ولا تقرر سياسة العمل بصمت. اختم بسجل موجز للقرارات والعوائق المتبقية.

16

Plan · التخطيط

افحص المستودع وأنتج خطة مكتملة القرارات للنطاق المتفق عليه دون تعديل ملفات. ارسم النموذج والمراجع والمكونات المسؤولة والواجهات ومصفوفة الحالات والعمليات والصلاحيات والتحقق حسب العملية والترحيلات والملفات المحمية والآثار بعد تثبيت المعاملة. أدرج مسارات الواجهة والإتاحة واللغات الأربع وحالات الفشل واختبارات القبول. قسّم العمل إلى مراحل قابلة للمراجعة وحدد أوامر البناء والفحص الفعلية. احسم الغموض المؤثر معي قبل إنهاء الخطة؛ لا تبدأ التنفيذ.

17

Goal · تحقيق الهدف

نفّذ فقط الهدف والمراحل المتفق عليها معي. إذا لم يوجد نطاق أو خطة معتمدة، فاطلبهما أولًا. اعمل بخطوات قابلة للمراجعة: الأساس والمراجع ثم دورة المستند والوصول ثم الواجهة ثم المرفقات والإشعارات ثم التحقق الشامل. شغّل الفحوص المناسبة بعد كل تغيير مؤثر وحقق في الفشل وقدّم الأدلة. حافظ على الأعمال غير المرتبطة. لا توسع العمل إلى نشر أو ترحيل هدّام أو رسائل خارجية أو ميزات أخرى دون تفويض. توقف واشرح العوائق التي تحتاج قرارًا أو صلاحية؛ لا تدّعِ نجاح فحص لم يُشغّل. اختم بالملفات والنتائج الفعلية والعمل المتبقي.

18

Review · المراجعة

راجع التنفيذ مقابل المواصفات والخطة وإرشادات SMART الحالية. لا تعدّل الملفات. أعطِ الأولوية للصحة والصلاحيات في السجلات والبحث والتاريخ والملفات والانتقالات والتحقق والمعاملات وفشل الإشعارات والاعتماديات والإعداد والاختبارات والإتاحة واللغات الأربع. اسند كل ملاحظة إلى ملف وموضع وحالة تشغيل ملموسة وأثر وإصلاح مقترح. ميّز العيوب عن التحسينات الاختيارية والأدلة الناقصة. إذا لم تجد ملاحظات عملية فقل ذلك ووضح حدود التحقق؛ لا تختلق مشكلات.