@routebot/constants 0.3.77 → 0.3.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,7 +30,13 @@ const CUSTOMER_PORTAL_INVITE_EXPIRATION_DAYS = 7;
30
30
 
31
31
  const CUSTOMER_PORTAL_STUDENT_SEARCH_MIN_LENGTH = 2;
32
32
 
33
+ // EXTRA_SERVICE is first: the school-contact form lists it above student registration
34
+ // and selects it by default. It is a one-off trip, not a VehicleRoute.
35
+ // Date is a calendar day. Place, time, and headcount are free text.
36
+ // Validation lives in backend/modules/customer-portal/extra-service.js so a portal
37
+ // can accept the type before this package version is published.
33
38
  const CUSTOMER_REQUEST_TYPES = {
39
+ EXTRA_SERVICE: "extra_service",
34
40
  STUDENT_ADD: "student_add",
35
41
  STUDENT_ADD_BULK: "student_add_bulk",
36
42
  STUDENT_REMOVE: "student_remove",
@@ -39,6 +45,13 @@ const CUSTOMER_REQUEST_TYPES = {
39
45
  OTHER: "other",
40
46
  };
41
47
 
48
+ const CUSTOMER_EXTRA_SERVICE_LIMITS = {
49
+ PLACE: 200,
50
+ TIME: 80,
51
+ HEADCOUNT: 200,
52
+ TITLE: 200,
53
+ };
54
+
42
55
  const CUSTOMER_REQUEST_CHANGE_KINDS = {
43
56
  ADDRESS: "address",
44
57
  SERVICE: "service",
@@ -150,6 +163,7 @@ module.exports = {
150
163
  CUSTOMER_PORTAL_INVITE_EXPIRATION_DAYS,
151
164
  CUSTOMER_PORTAL_STUDENT_SEARCH_MIN_LENGTH,
152
165
  CUSTOMER_REQUEST_TYPES,
166
+ CUSTOMER_EXTRA_SERVICE_LIMITS,
153
167
  CUSTOMER_REQUEST_CHANGE_KINDS,
154
168
  CUSTOMER_REQUEST_STATUSES,
155
169
  CUSTOMER_REQUEST_OPEN_STATUSES,
@@ -1,81 +1,81 @@
1
- // See: backend/docs/arvento-telemetry.md (source of truth)
2
- // Telemetry constants — shared between backend and frontend.
3
-
4
- const TELEMETRY_PROVIDERS = {
5
- ARVENTO: "ARVENTO",
6
- };
7
-
8
- const TELEMETRY_EVENT_TYPES = {
9
- SPEED_ALARM: "SPEED_ALARM",
10
- IDLING_ALARM: "IDLING_ALARM",
11
- PAUSE_ALARM: "PAUSE_ALARM",
12
- MOTION_ALARM: "MOTION_ALARM",
13
- CONTACT_ON: "CONTACT_ON",
14
- CONTACT_OFF: "CONTACT_OFF",
15
- DOOR_OPEN: "DOOR_OPEN",
16
- DOOR_CLOSE: "DOOR_CLOSE",
17
- EMERGENCY: "EMERGENCY",
18
- TEMPERATURE_ALARM: "TEMPERATURE_ALARM",
19
- REGION_ENTRY: "REGION_ENTRY",
20
- REGION_EXIT: "REGION_EXIT",
21
- SUDDEN_ACCELERATION: "SUDDEN_ACCELERATION",
22
- SUDDEN_DECELERATION: "SUDDEN_DECELERATION",
23
- POSSIBLE_ACCIDENT: "POSSIBLE_ACCIDENT",
24
- DEVICE_POWERED_UP: "DEVICE_POWERED_UP",
25
- // Araç, o günkü kayıtlı servis penceresi dışında kullanılıyor (kontak açık / hareket halinde).
26
- // See: backend/docs/arvento-telemetry.md §20.1
27
- SERVICELESS_USE: "SERVICELESS_USE",
28
- };
29
-
30
- // GetVehicleAlarmStatusV2 yanıtındaki "Alarm Türü" (Language=0 → Türkçe) kontak metinleri.
31
- // Anlık kontak durumu bu üç tipin EN YENİSİNDEN türetilir (See: arvento-telemetry.md §20.1).
32
- const ARVENTO_ALARM_TYPES = {
33
- IGNITION_ON: "Kontak Açıldı",
34
- IGNITION_OFF: "Kontak Kapandı",
35
- IGNITION_STATUS: "Kontak Durumu", // Değer: 1=açık, 0=kapalı
36
- };
37
-
38
- const TELEMETRY_VEHICLE_STATUS = {
39
- OFFLINE: "OFFLINE", // Son snapshot yok veya çok eski (cihaz veri göndermiyor — kontaktan bağımsız)
40
- IDLE: "IDLE", // (eski) hareketsiz — artık görüntüde IDLING/PARKED'e ayrıştırılır
41
- MOVING: "MOVING", // Hareket halinde
42
- ALARMED: "ALARMED", // Son snapshot'ta alarm var
43
- // Görüntü durumları (taze snapshot'ta kontaktan türetilir; kalıcı SAKLANMAZ):
44
- IDLING: "IDLING", // Kontak açık, hareketsiz (rölantide)
45
- PARKED: "PARKED", // Kontak kapalı, cihaz online
46
- };
47
-
48
- const TELEMETRY_THRESHOLDS = {
49
- IDLING_FUEL_LITERS_PER_HOUR: 1.8, // rölanti israfı hesabı (referans)
50
- DRIVER_FATIGUE_HOURS: 4,
51
- LIVE_POSITION_REFRESH_SECONDS: 15, // frontend refresh
52
- ARVENTO_POLL_PERIOD_SECONDS: 30, // backend cron - Arvento min period
53
- ARVENTO_DAILY_QUOTA: 100000, // request/day/user
54
- ARVENTO_PER_METHOD_COOLDOWN_SECONDS: 30,
55
- SNAPSHOT_FRESHNESS_SECONDS: 3600, // bu sürenin üstünde olan snapshot "stale" - 1 saat
56
-
57
- // --- Servissiz/izinsiz kullanım uyarısı (§20.1) ---
58
- // Servis başlangıç/bitiş penceresine eklenen tampon (dk). Şoför servise giderken/dönerken
59
- // aracı öncesinde çalıştırır → bu marjin içindeki hareket normal sayılır.
60
- // Gelecekte 1 saate çekmek istenirse yalnızca bu değer 60 yapılır.
61
- SERVICELESS_USE_MARGIN_MINUTES: 120,
62
- // Aynı araç için bu süre içindeki tekrar tespitler tek "episode" sayılır (spam engeli).
63
- SERVICELESS_EPISODE_GAP_MINUTES: 30,
64
- // Servis dışı "kullanımda" sayılması için minimum hız (km/h). Kontak açık + bu eşiğin üstü.
65
- SERVICELESS_USE_MIN_SPEED_KMH: 10,
66
- // Bu sürenin altındaki kapalı seanslar DB'den silinir (yanlış pozitif / gürültü).
67
- SERVICELESS_USE_MIN_DURATION_MINUTES: 5,
68
- // Servissiz kullanım uyarılarının geçmişte saklanma süresi (gün).
69
- SERVICELESS_ALERT_RETENTION_DAYS: 30,
70
-
71
- // --- Aşırı hız vurgusu (§20.3) — frontend-only ---
72
- OVERSPEED_THRESHOLD_KMH: 100,
73
- };
74
-
75
- module.exports = {
76
- TELEMETRY_PROVIDERS,
77
- TELEMETRY_EVENT_TYPES,
78
- TELEMETRY_VEHICLE_STATUS,
79
- TELEMETRY_THRESHOLDS,
80
- ARVENTO_ALARM_TYPES,
81
- };
1
+ // See: backend/docs/arvento-telemetry.md (source of truth)
2
+ // Telemetry constants — shared between backend and frontend.
3
+
4
+ const TELEMETRY_PROVIDERS = {
5
+ ARVENTO: "ARVENTO",
6
+ };
7
+
8
+ const TELEMETRY_EVENT_TYPES = {
9
+ SPEED_ALARM: "SPEED_ALARM",
10
+ IDLING_ALARM: "IDLING_ALARM",
11
+ PAUSE_ALARM: "PAUSE_ALARM",
12
+ MOTION_ALARM: "MOTION_ALARM",
13
+ CONTACT_ON: "CONTACT_ON",
14
+ CONTACT_OFF: "CONTACT_OFF",
15
+ DOOR_OPEN: "DOOR_OPEN",
16
+ DOOR_CLOSE: "DOOR_CLOSE",
17
+ EMERGENCY: "EMERGENCY",
18
+ TEMPERATURE_ALARM: "TEMPERATURE_ALARM",
19
+ REGION_ENTRY: "REGION_ENTRY",
20
+ REGION_EXIT: "REGION_EXIT",
21
+ SUDDEN_ACCELERATION: "SUDDEN_ACCELERATION",
22
+ SUDDEN_DECELERATION: "SUDDEN_DECELERATION",
23
+ POSSIBLE_ACCIDENT: "POSSIBLE_ACCIDENT",
24
+ DEVICE_POWERED_UP: "DEVICE_POWERED_UP",
25
+ // Araç, o günkü kayıtlı servis penceresi dışında kullanılıyor (kontak açık / hareket halinde).
26
+ // See: backend/docs/arvento-telemetry.md §20.1
27
+ SERVICELESS_USE: "SERVICELESS_USE",
28
+ };
29
+
30
+ // GetVehicleAlarmStatusV2 yanıtındaki "Alarm Türü" (Language=0 → Türkçe) kontak metinleri.
31
+ // Anlık kontak durumu bu üç tipin EN YENİSİNDEN türetilir (See: arvento-telemetry.md §20.1).
32
+ const ARVENTO_ALARM_TYPES = {
33
+ IGNITION_ON: "Kontak Açıldı",
34
+ IGNITION_OFF: "Kontak Kapandı",
35
+ IGNITION_STATUS: "Kontak Durumu", // Değer: 1=açık, 0=kapalı
36
+ };
37
+
38
+ const TELEMETRY_VEHICLE_STATUS = {
39
+ OFFLINE: "OFFLINE", // Son snapshot yok veya çok eski (cihaz veri göndermiyor — kontaktan bağımsız)
40
+ IDLE: "IDLE", // (eski) hareketsiz — artık görüntüde IDLING/PARKED'e ayrıştırılır
41
+ MOVING: "MOVING", // Hareket halinde
42
+ ALARMED: "ALARMED", // Son snapshot'ta alarm var
43
+ // Görüntü durumları (taze snapshot'ta kontaktan türetilir; kalıcı SAKLANMAZ):
44
+ IDLING: "IDLING", // Kontak açık, hareketsiz (rölantide)
45
+ PARKED: "PARKED", // Kontak kapalı, cihaz online
46
+ };
47
+
48
+ const TELEMETRY_THRESHOLDS = {
49
+ IDLING_FUEL_LITERS_PER_HOUR: 1.8, // rölanti israfı hesabı (referans)
50
+ DRIVER_FATIGUE_HOURS: 4,
51
+ LIVE_POSITION_REFRESH_SECONDS: 15, // frontend refresh
52
+ ARVENTO_POLL_PERIOD_SECONDS: 30, // backend cron - Arvento min period
53
+ ARVENTO_DAILY_QUOTA: 100000, // request/day/user
54
+ ARVENTO_PER_METHOD_COOLDOWN_SECONDS: 30,
55
+ SNAPSHOT_FRESHNESS_SECONDS: 3600, // bu sürenin üstünde olan snapshot "stale" - 1 saat
56
+
57
+ // --- Servissiz/izinsiz kullanım uyarısı (§20.1) ---
58
+ // Servis başlangıç/bitiş penceresine eklenen tampon (dk). Şoför servise giderken/dönerken
59
+ // aracı öncesinde çalıştırır → bu marjin içindeki hareket normal sayılır.
60
+ // Gelecekte 1 saate çekmek istenirse yalnızca bu değer 60 yapılır.
61
+ SERVICELESS_USE_MARGIN_MINUTES: 120,
62
+ // Aynı araç için bu süre içindeki tekrar tespitler tek "episode" sayılır (spam engeli).
63
+ SERVICELESS_EPISODE_GAP_MINUTES: 30,
64
+ // Servis dışı "kullanımda" sayılması için minimum hız (km/h). Kontak açık + bu eşiğin üstü.
65
+ SERVICELESS_USE_MIN_SPEED_KMH: 10,
66
+ // Bu sürenin altındaki kapalı seanslar DB'den silinir (yanlış pozitif / gürültü).
67
+ SERVICELESS_USE_MIN_DURATION_MINUTES: 5,
68
+ // Servissiz kullanım uyarılarının geçmişte saklanma süresi (gün).
69
+ SERVICELESS_ALERT_RETENTION_DAYS: 30,
70
+
71
+ // --- Aşırı hız vurgusu (§20.3) — frontend-only ---
72
+ OVERSPEED_THRESHOLD_KMH: 100,
73
+ };
74
+
75
+ module.exports = {
76
+ TELEMETRY_PROVIDERS,
77
+ TELEMETRY_EVENT_TYPES,
78
+ TELEMETRY_VEHICLE_STATUS,
79
+ TELEMETRY_THRESHOLDS,
80
+ ARVENTO_ALARM_TYPES,
81
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routebot/constants",
3
- "version": "0.3.77",
3
+ "version": "0.3.79",
4
4
  "description": "Shared constants for RouteBot FE/BE",
5
5
  "main": "index.js",
6
6
  "files": [