Update: 2026-08-08 12:58:16
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
-- ============================================================
|
||||
-- بوابة الائتمان: لا التزام إلا لمن تمرّ أرباحه بالمحفظة
|
||||
--
|
||||
-- المشكلة التي يعالجها هذا الملف (قرار المالك 2026-08-09):
|
||||
--
|
||||
-- سقف الخصم اليومي في محرك الالتزامات نسبة من أرباح اليوم، وأرباح اليوم
|
||||
-- تُقاس من الصفوف الموجبة في `driverWallet`. سائق الكاش الذي يحصّل نقداً
|
||||
-- ولا تمرّ أرباحه بالمحفظة يظهر بأرباح صفر كل يوم — فسقفه صفر، فلا
|
||||
-- يُحصَّل منه شيء أبداً.
|
||||
--
|
||||
-- هذا محتمَل في التأمين (قسط صغير متكرر، والخسارة محدودة ومرئية). وهو
|
||||
-- غير محتمَل إطلاقاً في الوقود والصيانة والتمويل: هناك تسلّم السائق
|
||||
-- قيمةً فعلية — وقوداً في خزّان سيارته أو إصلاحاً في ورشة — مقابل وعد
|
||||
-- بالسداد من قناة لا يمرّ بها ماله. هذا ليس ائتماناً بل هبة.
|
||||
--
|
||||
-- الحل: شرط أهلية إضافي مخزَّن مع المنتج لا في الكود، على غرار شروط
|
||||
-- الرحلات والتقييم القائمة. العتبة تختلف بطبيعة المنتج: قسط تأمين يومي
|
||||
-- صغير لا يحتاج ما يحتاجه قرض صيانة.
|
||||
-- ============================================================
|
||||
|
||||
ALTER TABLE `obligation_products`
|
||||
-- المفتاح العام. تركه قابلاً للإطفاء ليس تساهلاً: منتج مستقبلي قد
|
||||
-- يُدفع مقدَّماً أو يموّله طرف ثالث، فلا معنى لبوابة ائتمان عليه.
|
||||
ADD COLUMN `requires_wallet_income` TINYINT(1) NOT NULL DEFAULT 1
|
||||
COMMENT 'يشترط أن تمرّ أرباح السائق بالمحفظة' AFTER `min_account_days`,
|
||||
|
||||
-- عدد الأيام المتمايزة التي دخل فيها مالٌ محفظةَ السائق خلال آخر
|
||||
-- ثلاثين يوماً. المقياس أيام لا مبلغ لأن السؤال هنا ليس «كم يكسب؟»
|
||||
-- بل «هل قناة التحصيل تعمل؟» — سائق دخله مرة واحدة كبيرة قد يكون
|
||||
-- استرداداً أو حادثة، وسائق دخله اثنا عشر يوماً متفرّقاً قناته حيّة.
|
||||
ADD COLUMN `min_wallet_days_30d` SMALLINT NOT NULL DEFAULT 10
|
||||
COMMENT 'أيام دخل في المحفظة خلال آخر 30 يوماً' AFTER `requires_wallet_income`,
|
||||
|
||||
-- الحد الأدنى للدخل المار بالمحفظة في آخر ثلاثين يوماً. يُقاس بعملة
|
||||
-- المنتج. صفر يعني «لا شرط مبلغ» ويُكتفى بشرط الأيام.
|
||||
ADD COLUMN `min_wallet_income_30d` DECIMAL(12,3) NOT NULL DEFAULT 0
|
||||
COMMENT 'إجمالي الدخل المار بالمحفظة خلال آخر 30 يوماً' AFTER `min_wallet_days_30d`;
|
||||
|
||||
|
||||
-- ── عتبة التأمين ────────────────────────────────────────────
|
||||
-- منتجات التأمين المرحَّلة تخضع للبوابة أيضاً — القسط الذي تتحمّله
|
||||
-- الشركة ثم تسترده من الأرباح ائتمانٌ بالمعنى نفسه.
|
||||
--
|
||||
-- لكن العتبة متساهلة عمداً (ثمانية أيام، بلا شرط مبلغ): التأمين مكافأة
|
||||
-- استمرار مشروطة أصلاً بمئتي رحلة وتقييم جيد، وتشديد بوابة ثانية فوقها
|
||||
-- يفرغ المنتج من غرضه.
|
||||
--
|
||||
-- هذا يمسّ الاشتراكات **الجديدة** وحدها. الالتزامات القائمة لا تُفحص
|
||||
-- ثانيةً: سحب تغطية من سائق مؤمَّن اليوم بسبب شرط سُنّ اليوم عقوبة
|
||||
-- بأثر رجعي.
|
||||
UPDATE `obligation_products` op
|
||||
JOIN `insurance_plans` pl ON pl.`code` = op.`code`
|
||||
SET op.`requires_wallet_income` = 1,
|
||||
op.`min_wallet_days_30d` = 8,
|
||||
op.`min_wallet_income_30d` = 0;
|
||||
Reference in New Issue
Block a user