@routebot/constants 0.3.12 → 0.3.14
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.
- package/constants/company.constants.js +56 -15
- package/constants/constants.js +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const { USAGE_TYPES } = require("./usage.constants");
|
|
2
|
+
const { PERMISSION_TYPES } = require("./permission.constants");
|
|
2
3
|
|
|
3
4
|
const COMPANY_DOMAINS = {
|
|
4
5
|
STUDENT: "STUDENT",
|
|
@@ -6,10 +7,13 @@ const COMPANY_DOMAINS = {
|
|
|
6
7
|
};
|
|
7
8
|
|
|
8
9
|
const COMPANY_FEATURES = {
|
|
9
|
-
SMS_COMMUNICATION: "smsCommunication",
|
|
10
|
-
PHONE_APP: "phoneApp",
|
|
11
10
|
ACCOUNTING: "accounting",
|
|
12
11
|
INVENTORY: "inventory",
|
|
12
|
+
PHONE_APP: "phoneApp",
|
|
13
|
+
SERVICE_REPORTS: "serviceReports",
|
|
14
|
+
SHIFT_MANAGEMENT: "shiftManagement",
|
|
15
|
+
SMS_COMMUNICATION: "smsCommunication",
|
|
16
|
+
TRANSFERS: "transfers",
|
|
13
17
|
WEBSITE_NOTIFICATIONS: "websiteNotifications",
|
|
14
18
|
};
|
|
15
19
|
|
|
@@ -56,46 +60,83 @@ const PLAN_QUOTAS = {
|
|
|
56
60
|
|
|
57
61
|
const PLAN_FEATURES = {
|
|
58
62
|
[PLANS.DEMO]: {
|
|
59
|
-
[COMPANY_FEATURES.SMS_COMMUNICATION]: false,
|
|
60
|
-
[COMPANY_FEATURES.PHONE_APP]: false,
|
|
61
63
|
[COMPANY_FEATURES.ACCOUNTING]: false,
|
|
62
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,
|
|
63
70
|
[COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
|
|
64
71
|
},
|
|
72
|
+
|
|
65
73
|
[PLANS.FREE]: {
|
|
66
|
-
[COMPANY_FEATURES.SMS_COMMUNICATION]: false,
|
|
67
|
-
[COMPANY_FEATURES.PHONE_APP]: false,
|
|
68
74
|
[COMPANY_FEATURES.ACCOUNTING]: false,
|
|
69
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,
|
|
70
81
|
[COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
|
|
71
82
|
},
|
|
72
83
|
[PLANS.PRO]: {
|
|
73
|
-
[COMPANY_FEATURES.SMS_COMMUNICATION]: false,
|
|
74
|
-
[COMPANY_FEATURES.PHONE_APP]: false,
|
|
75
84
|
[COMPANY_FEATURES.ACCOUNTING]: false,
|
|
76
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,
|
|
77
91
|
[COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
|
|
78
92
|
},
|
|
79
93
|
[PLANS.ENTERPRISE]: {
|
|
80
|
-
[COMPANY_FEATURES.SMS_COMMUNICATION]: false,
|
|
81
|
-
[COMPANY_FEATURES.PHONE_APP]: false,
|
|
82
94
|
[COMPANY_FEATURES.ACCOUNTING]: false,
|
|
83
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,
|
|
84
101
|
[COMPANY_FEATURES.WEBSITE_NOTIFICATIONS]: false,
|
|
85
102
|
},
|
|
86
103
|
[PLANS.UNLIMITED]: {
|
|
87
|
-
[COMPANY_FEATURES.
|
|
88
|
-
[COMPANY_FEATURES.
|
|
89
|
-
[COMPANY_FEATURES.
|
|
90
|
-
[COMPANY_FEATURES.
|
|
91
|
-
[COMPANY_FEATURES.
|
|
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,
|
|
92
112
|
},
|
|
93
113
|
};
|
|
94
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
|
+
|
|
95
134
|
module.exports = {
|
|
96
135
|
PLANS,
|
|
97
136
|
PLAN_QUOTAS,
|
|
98
137
|
COMPANY_FEATURES,
|
|
99
138
|
COMPANY_DOMAINS,
|
|
100
139
|
PLAN_FEATURES,
|
|
140
|
+
FEATURE_PERMISSION_DEPENDENCIES,
|
|
141
|
+
isPermissionAvailableForCompanyFeature,
|
|
101
142
|
};
|
package/constants/constants.js
CHANGED