Update: 2026-08-07 02:19:07
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
-- 2026_08_07_passenger_cancel_policy.sql
|
||||
--
|
||||
-- رسوم إلغاء الراكب بعد قبول السائق.
|
||||
--
|
||||
-- متماثلة مع تعويض عدم الحضور (ترحيل 2026_08_07_driver_cancel_compensation):
|
||||
-- نفس المبدأ — من تسبب بضياع وقت الآخر يعوّضه، والمال يذهب **للسائق** لا
|
||||
-- للشركة. الفرق أن الزمن المحتسب هنا يبدأ من لحظة القبول لا من لحظة الوصول،
|
||||
-- لأن السائق يكون في طريقه لا واقفاً ينتظر.
|
||||
--
|
||||
-- ثلاثة إعفاءات مبنية عمداً، لأن رسماً بلا إعفاء يعاقب الراكب على أخطاء
|
||||
-- ليست خطأه ويطرده من التطبيق:
|
||||
-- ١. لا سائق قُبِل بعد → مجاني دائماً
|
||||
-- ٢. خلال أول دقائق من القبول → مجاني (passengerCancelFreeMinutes)
|
||||
-- ٣. السائق تأخّر ولم يصل → مجاني (driverLateExemptMinutes)
|
||||
--
|
||||
-- ⚠️ يُنفَّذ على قاعدة primary (jorSiroDB) وحدها — kazan يُقرأ عبر $con.
|
||||
|
||||
ALTER TABLE `kazan`
|
||||
ADD COLUMN `passengerCancelCap` VARCHAR(10)
|
||||
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
|
||||
NOT NULL DEFAULT '0'
|
||||
COMMENT 'سقف رسم إلغاء الراكب بعملة الدولة. 0 = الرسم معطّل بالكامل'
|
||||
AFTER `cancelMinWaitMinutes`,
|
||||
ADD COLUMN `passengerCancelFreeMinutes` TINYINT UNSIGNED
|
||||
NOT NULL DEFAULT 2
|
||||
COMMENT 'دقائق الإلغاء المجاني بعد قبول السائق'
|
||||
AFTER `passengerCancelCap`,
|
||||
ADD COLUMN `driverLateExemptMinutes` TINYINT UNSIGNED
|
||||
NOT NULL DEFAULT 10
|
||||
COMMENT 'إن مرّت هذه الدقائق على القبول ولم يصل السائق، الإلغاء مجاني';
|
||||
|
||||
-- عدّاد عدم الحضور للراكب — سجل دائم للمراجعة الإدارية.
|
||||
-- (الفحص السريع يتم من Redis، وهذا العمود للتقارير وقرارات الحظر اليدوية.)
|
||||
ALTER TABLE `passengers`
|
||||
ADD COLUMN `noShowCount` SMALLINT UNSIGNED NOT NULL DEFAULT 0
|
||||
COMMENT 'مرات إلغاء الراكب بعد قبول السائق ودفعه رسماً';
|
||||
|
||||
-- للتراجع:
|
||||
-- ALTER TABLE `kazan` DROP COLUMN `passengerCancelCap`,
|
||||
-- DROP COLUMN `passengerCancelFreeMinutes`, DROP COLUMN `driverLateExemptMinutes`;
|
||||
-- ALTER TABLE `passengers` DROP COLUMN `noShowCount`;
|
||||
Reference in New Issue
Block a user