feat: rebuild pricing on Siro's live kazan table + close two fare leaks
## الأرقام صارت من جدول `kazan` الحيّ لا من تقدير العمولة 11٪/12٪/14٪ مطابقة حرفياً. وثلاثة تصحيحات على الخام: - **محورا الأردن مقلوبان**: أعمدة الفئات تحمل سعر الدقيقة (0.043) وأعمدة النوافذ سعر الكيلومتر (0.184) — عكس مصر وسوريا. قراءتها كما هي تجعل رحلة 27 كم بأقلّ من دينارين. - **نِسَب الفئات في مصر وسوريا معطوبة**: الكهربائي 0.23 والفان 0.25–0.40 من الاقتصادي، أي فان أرخص من اقتصادي. نِسَب الأردن وحدها متماسكة فاعتُمدت. - سعر الكيلو في مصر 4 جنيهات لا 3.5 (قرار المالك). ## البنية صارت مطابقة لسيرو — وهي ما سيكتب فيه بوت استخبارات الأسعار سعر الكيلو يتغيّر بالفئة فقط (رقم يعرفه السوق)، وسعر الدقيقة بالنافذة فقط. **لا فتحة عدّاد** (`startPrice = 0` في كل صفوف سيرو): الحدّ الأدنى أرضية لا رسم يُضاف — «ما في رحلة أقل من 20 جنيهاً». `fuelPrice` محفوظ كمدخل للبوت. ## تسريبان أغلقهما الاختبار الحيّ (بموافقة المالك) 1. **فئة مجهولة = رحلة مجانية**: `service_class` يأتي من الطلب بلا تحقّق، والاستثناء كان يُبتلع فتُنشأ رحلة بـ`quoted_fare = null` ثم تُسوّى بصفر. صار الطلب يُرفض بـ400 — الفشل الصريح أأمن من الصامت. 2. **`fixed` لا تُزرع**: سعر ثابت بلا جدول خطوط يعني رقماً واحداً لكل الوجهات — أظهر الاختبار رحلة 55.8 كم بـ2.5 ديناراً مقابل 23.2 للاقتصادي. 300 اختبار خضر. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
f58f2e2e2c
commit
e9beeb90b4
@@ -3,7 +3,7 @@ import { join } from 'path';
|
||||
import {
|
||||
buildDefinition,
|
||||
COUNTRY_TARIFFS,
|
||||
SERVICE_CLASSES,
|
||||
SEEDED_CLASSES,
|
||||
} from '../../modules/tariff/default-tariffs';
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,7 @@ function generateSql(): string {
|
||||
for (const country of COUNTRY_TARIFFS) {
|
||||
sql += `-- ============ ${country.countryPack.toUpperCase()} (${country.currency}) ============\n`;
|
||||
|
||||
for (const serviceClass of Object.values(SERVICE_CLASSES)) {
|
||||
for (const serviceClass of SEEDED_CLASSES) {
|
||||
const definition = buildDefinition(country, serviceClass);
|
||||
const defJson = JSON.stringify(definition).replace(/'/g, "''");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user