@routebot/constants 0.3.14 → 0.3.22

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.
@@ -0,0 +1,26 @@
1
+ const { PERMISSION_TYPES } = require("./permission.constants");
2
+ const { COMPANY_FEATURES } = require("./company.constants");
3
+
4
+ const FEATURE_PERMISSION_DEPENDENCIES = {
5
+ [PERMISSION_TYPES.ACCESS_TO_ACCOUNTING]: [COMPANY_FEATURES.ACCOUNTING],
6
+ [PERMISSION_TYPES.ACCESS_TO_INVENTORY]: [COMPANY_FEATURES.INVENTORY],
7
+ [PERMISSION_TYPES.ACCESS_TO_WRITE_INVENTORY]: [COMPANY_FEATURES.INVENTORY],
8
+ [PERMISSION_TYPES.ACCESS_TO_SERVISTESIN]: [COMPANY_FEATURES.PHONE_APP],
9
+ [PERMISSION_TYPES.ACCESS_TO_LIVE]: [COMPANY_FEATURES.PHONE_APP],
10
+ [PERMISSION_TYPES.ACCESS_TO_SERVICE_REPORTS]: [COMPANY_FEATURES.SERVICE_REPORTS],
11
+ [PERMISSION_TYPES.ACCESS_TO_TRANSFERS]: [COMPANY_FEATURES.TRANSFERS],
12
+ [PERMISSION_TYPES.ACCESS_TO_SHIFTS]: [COMPANY_FEATURES.SHIFT_MANAGEMENT],
13
+ };
14
+
15
+ const isPermissionAvailableForCompanyFeature = (companyFeatures = {}, permissionType) => {
16
+ const featureKeys = FEATURE_PERMISSION_DEPENDENCIES[permissionType];
17
+
18
+ if (!featureKeys || featureKeys.length === 0) return true;
19
+
20
+ return featureKeys.some((featureKey) => !!companyFeatures[featureKey]);
21
+ };
22
+
23
+ module.exports = {
24
+ FEATURE_PERMISSION_DEPENDENCIES,
25
+ isPermissionAvailableForCompanyFeature,
26
+ };
@@ -17,126 +17,7 @@ const COMPANY_FEATURES = {
17
17
  WEBSITE_NOTIFICATIONS: "websiteNotifications",
18
18
  };
19
19
 
20
- const PLANS = {
21
- DEMO: "DEMO",
22
- FREE: "FREE",
23
- PRO: "PRO",
24
- ENTERPRISE: "ENTERPRISE",
25
- UNLIMITED: "UNLIMITED",
26
- };
27
-
28
- const PLAN_QUOTAS = {
29
- [PLANS.DEMO]: {
30
- [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 5,
31
- [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 5,
32
- [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 5,
33
- [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 5,
34
- },
35
- [PLANS.FREE]: {
36
- [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 50,
37
- [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 50,
38
- [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 50,
39
- [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 50,
40
- },
41
- [PLANS.PRO]: {
42
- [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 1000,
43
- [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 1000,
44
- [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 1000,
45
- [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 1000,
46
- },
47
- [PLANS.ENTERPRISE]: {
48
- [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 100000,
49
- [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 100000,
50
- [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 100000,
51
- [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 100000,
52
- },
53
- [PLANS.UNLIMITED]: {
54
- [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 1000000,
55
- [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 1000000,
56
- [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 1000000,
57
- [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 1000000,
58
- },
59
- };
60
-
61
- const PLAN_FEATURES = {
62
- [PLANS.DEMO]: {
63
- [COMPANY_FEATURES.ACCOUNTING]: false,
64
- [COMPANY_FEATURES.INVENTORY]: false,
65
- [COMPANY_FEATURES.PHONE_APP]: false,
66
- [COMPANY_FEATURES.SERVICE_REPORTS]: false,
67
- [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
68
- [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
69
- [COMPANY_FEATURES.TRANSFERS]: false,
70
- [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
71
- },
72
-
73
- [PLANS.FREE]: {
74
- [COMPANY_FEATURES.ACCOUNTING]: false,
75
- [COMPANY_FEATURES.INVENTORY]: false,
76
- [COMPANY_FEATURES.PHONE_APP]: false,
77
- [COMPANY_FEATURES.SERVICE_REPORTS]: false,
78
- [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
79
- [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
80
- [COMPANY_FEATURES.TRANSFERS]: false,
81
- [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
82
- },
83
- [PLANS.PRO]: {
84
- [COMPANY_FEATURES.ACCOUNTING]: false,
85
- [COMPANY_FEATURES.INVENTORY]: false,
86
- [COMPANY_FEATURES.PHONE_APP]: false,
87
- [COMPANY_FEATURES.SERVICE_REPORTS]: false,
88
- [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
89
- [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
90
- [COMPANY_FEATURES.TRANSFERS]: false,
91
- [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
92
- },
93
- [PLANS.ENTERPRISE]: {
94
- [COMPANY_FEATURES.ACCOUNTING]: false,
95
- [COMPANY_FEATURES.INVENTORY]: false,
96
- [COMPANY_FEATURES.PHONE_APP]: false,
97
- [COMPANY_FEATURES.SERVICE_REPORTS]: false,
98
- [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
99
- [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
100
- [COMPANY_FEATURES.TRANSFERS]: false,
101
- [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
102
- },
103
- [PLANS.UNLIMITED]: {
104
- [COMPANY_FEATURES.ACCOUNTING]: false,
105
- [COMPANY_FEATURES.INVENTORY]: false,
106
- [COMPANY_FEATURES.PHONE_APP]: false,
107
- [COMPANY_FEATURES.SERVICE_REPORTS]: false,
108
- [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
109
- [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
110
- [COMPANY_FEATURES.TRANSFERS]: false,
111
- [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
112
- },
113
- };
114
-
115
- const FEATURE_PERMISSION_DEPENDENCIES = {
116
- [PERMISSION_TYPES.ACCESS_TO_ACCOUNTING]: [COMPANY_FEATURES.ACCOUNTING],
117
- [PERMISSION_TYPES.ACCESS_TO_INVENTORY]: [COMPANY_FEATURES.INVENTORY],
118
- [PERMISSION_TYPES.ACCESS_TO_WRITE_INVENTORY]: [COMPANY_FEATURES.INVENTORY],
119
- [PERMISSION_TYPES.ACCESS_TO_SERVISTESIN]: [COMPANY_FEATURES.PHONE_APP],
120
- [PERMISSION_TYPES.ACCESS_TO_LIVE]: [COMPANY_FEATURES.PHONE_APP],
121
- [PERMISSION_TYPES.ACCESS_TO_SERVICE_REPORTS]: [COMPANY_FEATURES.SERVICE_REPORTS],
122
- [PERMISSION_TYPES.ACCESS_TO_TRANSFERS]: [COMPANY_FEATURES.TRANSFERS],
123
- [PERMISSION_TYPES.ACCESS_TO_SHIFTS]: [COMPANY_FEATURES.SHIFT_MANAGEMENT],
124
- };
125
-
126
- const isPermissionAvailableForCompanyFeature = (companyFeatures = {}, permissionType) => {
127
- const featureKeys = FEATURE_PERMISSION_DEPENDENCIES[permissionType];
128
-
129
- if (!featureKeys || featureKeys.length === 0) return true;
130
-
131
- return featureKeys.some((featureKey) => !!companyFeatures[featureKey]);
132
- };
133
-
134
20
  module.exports = {
135
- PLANS,
136
- PLAN_QUOTAS,
137
21
  COMPANY_FEATURES,
138
22
  COMPANY_DOMAINS,
139
- PLAN_FEATURES,
140
- FEATURE_PERMISSION_DEPENDENCIES,
141
- isPermissionAvailableForCompanyFeature,
142
23
  };
@@ -1,24 +1,24 @@
1
1
  const PERMISSION_TYPES = {
2
- ACCESS_TO_SCHOOLS: "accessToSchools", // Page level - always true for now
3
- ACCESS_TO_USERS: "accessToUsers", // Page level - always true for now
2
+ ACCESS_TO_ADMIN: "accessToAdmin", // manual integration - be careful with this one
3
+ ACCESS_TO_GIVE_PERMISSIONS: "accessToGivePermissions", // only first sign up is true - be careful with this one
4
4
  ACCESS_TO_PERSONELS: "accessToPersonels", // Initial selection is company domain based
5
5
  ACCESS_TO_STUDENTS: "accessToStudents", // Initial selection is company domain based
6
- ACCESS_TO_SHIFTS: "accessToShifts", //
7
- ACCESS_TO_STOPS: "accessToStops",
8
- ACCESS_TO_SERVICE_REPORTS: "accessToServiceReports",
9
- ACCESS_TO_ACCOUNTING: "accessToAccounting",
10
- ACCESS_TO_TRANSFERS: "accessToTransfers",
11
- ACCESS_TO_IKARUS: "accessToIkarus",
12
- ACCESS_TO_LIVE: "accessToLive",
13
- USE_DESCRIPTION: "useDescription",
14
- USE_CARD_ID: "useCardId",
15
- ACCESS_TO_ADMIN: "accessToAdmin",
16
- ACCESS_TO_INVENTORY: "accessToInventory",
17
- ACCESS_TO_WALKING_DISTANCE: "accessToWalkingDistance",
18
- ACCESS_TO_WRITE_INVENTORY: "accessToWriteInventory",
19
- ACCESS_TO_SERVISTESIN: "accessToServistesin",
20
- ACCESS_TO_TRACK_VEHICLE_ONLY: "accessToTrackVehicleOnly",
21
- ACCESS_TO_GIVE_PERMISSIONS: "accessToGivePermissions",
6
+ ACCESS_TO_SHIFTS: "accessToShifts", // feature based
7
+ ACCESS_TO_SERVICE_REPORTS: "accessToServiceReports", // feature based
8
+ ACCESS_TO_ACCOUNTING: "accessToAccounting", // feature based
9
+ ACCESS_TO_TRANSFERS: "accessToTransfers", // feature based
10
+ ACCESS_TO_LIVE: "accessToLive", // feature based
11
+ ACCESS_TO_INVENTORY: "accessToInventory", // feature based
12
+ ACCESS_TO_WRITE_INVENTORY: "accessToWriteInventory", // feature based
13
+ ACCESS_TO_SERVISTESIN: "accessToServistesin", // feature based
14
+ ACCESS_TO_TRACK_VEHICLE_ONLY: "accessToTrackVehicleOnly", // manual integration
15
+ ACCESS_TO_SCHOOLS: "accessToSchools", // Navigation level - always true for now
16
+ ACCESS_TO_USERS: "accessToUsers", // Navigation level - always true for now
17
+ ACCESS_TO_IKARUS: "accessToIkarus", // should be always false for now
18
+ ACCESS_TO_STOPS: "accessToStops", // should be always false for now
19
+ ACCESS_TO_WALKING_DISTANCE: "accessToWalkingDistance", // should be always false for now
20
+ USE_DESCRIPTION: "useDescription", // dont know yet
21
+ USE_CARD_ID: "useCardId", // dont know yet
22
22
  };
23
23
 
24
24
  module.exports = {
@@ -0,0 +1,222 @@
1
+ const { USAGE_TYPES } = require("./usage.constants");
2
+ const { COMPANY_FEATURES } = require("./company.constants");
3
+
4
+ const PLANS = {
5
+ DEMO: "DEMO",
6
+ FREE: "FREE",
7
+ STARTER: "STARTER",
8
+ PRO: "PRO",
9
+ BUSINESS: "BUSINESS",
10
+ ENTERPRISE: "ENTERPRISE",
11
+ UNLIMITED: "UNLIMITED",
12
+ };
13
+
14
+ const PLANS_META = {
15
+ [PLANS.DEMO]: {
16
+ key: PLANS.DEMO,
17
+ name: "Demo",
18
+ description: "plan.demo.description",
19
+ features: [
20
+ "features.students.unlimited",
21
+ "features.parents.unlimited",
22
+ "features.personels.unlimited",
23
+ "features.schools.unlimited",
24
+ "features.clients.unlimited",
25
+ "features.drivers.unlimited",
26
+ "features.vehicles.unlimited",
27
+ ],
28
+ priceMonthly: 0,
29
+ maxRoutes: 5,
30
+ dontShow: true,
31
+ },
32
+
33
+ [PLANS.FREE]: {
34
+ key: PLANS.FREE,
35
+ name: "Free",
36
+ description: "plan.free.description",
37
+ features: [
38
+ "features.routes.limited",
39
+ "features.students.unlimited",
40
+ "features.parents.unlimited",
41
+ "features.personels.unlimited",
42
+ "features.schools.unlimited",
43
+ "features.clients.unlimited",
44
+ "features.drivers.unlimited",
45
+ "features.vehicles.unlimited",
46
+ ],
47
+ priceMonthly: 0,
48
+ maxRoutes: 5,
49
+ },
50
+
51
+ [PLANS.STARTER]: {
52
+ key: PLANS.STARTER,
53
+ name: "Starter",
54
+ description: "plan.starter.description",
55
+ features: ["features.routes.limited"],
56
+ priceMonthly: 99,
57
+ maxRoutes: 25,
58
+ },
59
+
60
+ [PLANS.PRO]: {
61
+ key: PLANS.PRO,
62
+ name: "Pro",
63
+ description: "plan.pro.description",
64
+ features: ["features.routes.limited"],
65
+ priceMonthly: 199,
66
+ maxRoutes: 100,
67
+ recommended: true,
68
+ },
69
+
70
+ [PLANS.BUSINESS]: {
71
+ key: PLANS.BUSINESS,
72
+ name: "Business",
73
+ description: "plan.business.description",
74
+ features: ["features.routes.limited"],
75
+ priceMonthly: 499,
76
+ maxRoutes: 200,
77
+ },
78
+
79
+ [PLANS.ENTERPRISE]: {
80
+ key: PLANS.ENTERPRISE,
81
+ name: "Enterprise",
82
+ description: "plan.enterprise.description",
83
+ features: ["features.routes.limited"],
84
+ priceMonthly: 899,
85
+ maxRoutes: 200,
86
+ contactRequired: true,
87
+ dontShow: true,
88
+ },
89
+
90
+ [PLANS.UNLIMITED]: {
91
+ key: PLANS.UNLIMITED,
92
+ priceMonthly: 4000,
93
+ maxRoutes: Infinity,
94
+ dontShow: true, // özel anlaşma
95
+ },
96
+ };
97
+
98
+ const PLAN_QUOTAS = {
99
+ [PLANS.DEMO]: {
100
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 5,
101
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 5,
102
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 5,
103
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 5,
104
+ },
105
+ [PLANS.FREE]: {
106
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 50,
107
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 50,
108
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 50,
109
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 50,
110
+ },
111
+ [PLANS.STARTER]: {
112
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 250,
113
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 250,
114
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 250,
115
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 250,
116
+ },
117
+ [PLANS.PRO]: {
118
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 1000,
119
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 1000,
120
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 1000,
121
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 1000,
122
+ },
123
+ [PLANS.BUSINESS]: {
124
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 5000,
125
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 5000,
126
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 5000,
127
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 5000,
128
+ },
129
+ [PLANS.ENTERPRISE]: {
130
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 100000,
131
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 100000,
132
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 100000,
133
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 100000,
134
+ },
135
+ [PLANS.UNLIMITED]: {
136
+ [USAGE_TYPES.MAPS__ADDRESS_TO_NEAREST_ROAD_LOCATION]: 1000000,
137
+ [USAGE_TYPES.MAPS__LOCATION_TO_NEAREST_ROAD_ADDRESS]: 1000000,
138
+ [USAGE_TYPES.MAPS__DIRECTIONS_SINGLE]: 1000000,
139
+ [USAGE_TYPES.MAPS__DIRECTIONS_WITH_WAYPOINTS]: 1000000,
140
+ },
141
+ };
142
+
143
+ const PLAN_FEATURES = {
144
+ [PLANS.DEMO]: {
145
+ [COMPANY_FEATURES.ACCOUNTING]: false,
146
+ [COMPANY_FEATURES.INVENTORY]: false,
147
+ [COMPANY_FEATURES.PHONE_APP]: false,
148
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
149
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
150
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
151
+ [COMPANY_FEATURES.TRANSFERS]: false,
152
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
153
+ },
154
+
155
+ [PLANS.FREE]: {
156
+ [COMPANY_FEATURES.ACCOUNTING]: false,
157
+ [COMPANY_FEATURES.INVENTORY]: false,
158
+ [COMPANY_FEATURES.PHONE_APP]: false,
159
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
160
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
161
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
162
+ [COMPANY_FEATURES.TRANSFERS]: false,
163
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
164
+ },
165
+ [PLANS.STARTER]: {
166
+ [COMPANY_FEATURES.ACCOUNTING]: false,
167
+ [COMPANY_FEATURES.INVENTORY]: false,
168
+ [COMPANY_FEATURES.PHONE_APP]: false,
169
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
170
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
171
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
172
+ [COMPANY_FEATURES.TRANSFERS]: false,
173
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
174
+ },
175
+ [PLANS.PRO]: {
176
+ [COMPANY_FEATURES.ACCOUNTING]: false,
177
+ [COMPANY_FEATURES.INVENTORY]: false,
178
+ [COMPANY_FEATURES.PHONE_APP]: false,
179
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
180
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
181
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
182
+ [COMPANY_FEATURES.TRANSFERS]: false,
183
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
184
+ },
185
+ [PLANS.BUSINESS]: {
186
+ [COMPANY_FEATURES.ACCOUNTING]: false,
187
+ [COMPANY_FEATURES.INVENTORY]: false,
188
+ [COMPANY_FEATURES.PHONE_APP]: false,
189
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
190
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
191
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
192
+ [COMPANY_FEATURES.TRANSFERS]: false,
193
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
194
+ },
195
+ [PLANS.ENTERPRISE]: {
196
+ [COMPANY_FEATURES.ACCOUNTING]: false,
197
+ [COMPANY_FEATURES.INVENTORY]: false,
198
+ [COMPANY_FEATURES.PHONE_APP]: false,
199
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
200
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
201
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
202
+ [COMPANY_FEATURES.TRANSFERS]: false,
203
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
204
+ },
205
+ [PLANS.UNLIMITED]: {
206
+ [COMPANY_FEATURES.ACCOUNTING]: false,
207
+ [COMPANY_FEATURES.INVENTORY]: false,
208
+ [COMPANY_FEATURES.PHONE_APP]: false,
209
+ [COMPANY_FEATURES.SERVICE_REPORTS]: false,
210
+ [COMPANY_FEATURES.SHIFT_MANAGEMENT]: false,
211
+ [COMPANY_FEATURES.SMS_COMMUNICATION]: false,
212
+ [COMPANY_FEATURES.TRANSFERS]: false,
213
+ [COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
214
+ },
215
+ };
216
+
217
+ module.exports = {
218
+ PLANS,
219
+ PLANS_META,
220
+ PLAN_QUOTAS,
221
+ PLAN_FEATURES,
222
+ };
@@ -178,6 +178,12 @@ const NET_GSM_STATUS_ERROR_CODES = {
178
178
  119: SMS_STATUS_ERROR_CODES.SYSTEM_ERROR,
179
179
  };
180
180
 
181
+ const SMS_PACKS = {
182
+ SMALL: { smsCount: 1000, price: 20 },
183
+ MEDIUM: { smsCount: 5000, price: 80 },
184
+ LARGE: { smsCount: 20000, price: 250 },
185
+ };
186
+
181
187
  module.exports = {
182
188
  SMS_PROVIDERS,
183
189
  SMS_TYPES,
@@ -197,4 +203,6 @@ module.exports = {
197
203
 
198
204
  SMS_STATUS_ERROR_CODES, // During Report
199
205
  NET_GSM_STATUS_ERROR_CODES, // During Report
206
+
207
+ SMS_PACKS,
200
208
  };
@@ -5,6 +5,18 @@ const SUBSCRIPTION_STATUS = {
5
5
  CANCELED: "CANCELED",
6
6
  };
7
7
 
8
+ const BILLING_PROVIDERS = {
9
+ STRIPE: "STRIPE",
10
+ MANUAL: "MANUAL",
11
+ };
12
+
13
+ const STRIPE_PRICE_KEYS = {
14
+ BASIC: "STRIPE_PRICE_BASIC",
15
+ PRO: "STRIPE_PRICE_PRO",
16
+ };
17
+
8
18
  module.exports = {
9
19
  SUBSCRIPTION_STATUS,
20
+ BILLING_PROVIDERS,
21
+ STRIPE_PRICE_KEYS,
10
22
  };
package/index.js CHANGED
@@ -10,4 +10,6 @@ module.exports = {
10
10
  ...require("./constants/maps.constants.js"),
11
11
  ...require("./constants/usage.constants.js"),
12
12
  ...require("./constants/subscription.constants.js"),
13
+ ...require("./constants/access-control.constants.js"),
14
+ ...require("./constants/plan.constants.js"),
13
15
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@routebot/constants",
3
- "version": "0.3.14",
3
+ "version": "0.3.22",
4
4
  "description": "Shared constants for RouteBot FE/BE",
5
5
  "main": "index.js",
6
6
  "files": [