mobioffice-cli 0.0.1

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.
Files changed (156) hide show
  1. package/.prettierrc +4 -0
  2. package/README.md +1 -0
  3. package/a.js +3 -0
  4. package/lib/index.js +87 -0
  5. package/package.json +50 -0
  6. package/scripts/1.ts +1300 -0
  7. package/scripts/GCloudPubSub/pub-sub-config.json +12 -0
  8. package/scripts/GCloudPubSub/visitorAutoRejection.ts +86 -0
  9. package/scripts/actions/assignUsersFromOneActionToOther.ts +64 -0
  10. package/scripts/actions/assignUsersListToAction.ts +81 -0
  11. package/scripts/actions/getActionsListOfUser.ts +42 -0
  12. package/scripts/actions/getCompanyUserDetails.ts +49 -0
  13. package/scripts/actions/giveActionToUser.ts +41 -0
  14. package/scripts/actions/giveUsersToActivitySelector.ts +56 -0
  15. package/scripts/actions/groupActionsInActivitySelector.ts +101 -0
  16. package/scripts/actions/modifySummaryReportDB.ts +42 -0
  17. package/scripts/actions/setUrlToActionStep.ts +18 -0
  18. package/scripts/actions/syncMySqlAttendanceDBWithFirebase.ts +93 -0
  19. package/scripts/actions/syncMySqlMeetingsDBWithFirebase.ts +103 -0
  20. package/scripts/actions/test.ts +29 -0
  21. package/scripts/actions/transferFeedsOldIdToNew.ts +40 -0
  22. package/scripts/actions/transformUserIntoManager.ts +89 -0
  23. package/scripts/argvConfig.js +9 -0
  24. package/scripts/backUpData/testCode.ts +131 -0
  25. package/scripts/benaraScripts/addWorkAreaMap.ts +46 -0
  26. package/scripts/benaraScripts/add_customers.ts +26 -0
  27. package/scripts/benaraScripts/add_customers_contact.ts +27 -0
  28. package/scripts/benaraScripts/add_empty_work_area.ts +17 -0
  29. package/scripts/benaraScripts/assignManagers.ts +35 -0
  30. package/scripts/benaraScripts/changeCheckInFlag.ts +45 -0
  31. package/scripts/benaraScripts/createCustomerContactsList.ts +170 -0
  32. package/scripts/benaraScripts/createUserByDeletingOldUser.ts +70 -0
  33. package/scripts/benaraScripts/createUsersAreaMapCollection.ts +23 -0
  34. package/scripts/benaraScripts/createWorkAreaMap.ts +24 -0
  35. package/scripts/benaraScripts/mapWorkAreasToUsers.ts +112 -0
  36. package/scripts/companies_data.json +2496 -0
  37. package/scripts/create_or_update_users.ts +31 -0
  38. package/scripts/csvToJson/csvToJson.ts +90 -0
  39. package/scripts/csvToJson/users.json +3896 -0
  40. package/scripts/db.js +27 -0
  41. package/scripts/db.json +13 -0
  42. package/scripts/dbMySql.ts +63 -0
  43. package/scripts/delete_action_steps.ts +11 -0
  44. package/scripts/delete_user.ts +71 -0
  45. package/scripts/dev_companies_data.json +613 -0
  46. package/scripts/enroll.xlsx +0 -0
  47. package/scripts/export_users.ts +72 -0
  48. package/scripts/files/visitorManagementFiles/displayScreen.json +70 -0
  49. package/scripts/files/visitorManagementFiles/init_report_visibility.ts +79 -0
  50. package/scripts/firebaseConfig.js +12 -0
  51. package/scripts/firebaseDocs/deleteIncommingCollection.ts +47 -0
  52. package/scripts/firebaseDocs/updateDoc.ts +43 -0
  53. package/scripts/getActionDataIntoJSON/getActionData.ts +68 -0
  54. package/scripts/get_attendance_by_any_date.ts +14 -0
  55. package/scripts/get_attendance_by_month.ts +12 -0
  56. package/scripts/get_attendance_monthly_by_team.ts +11 -0
  57. package/scripts/get_daily_report.ts +10 -0
  58. package/scripts/get_mangers.ts +13 -0
  59. package/scripts/grant_user_license.ts +18 -0
  60. package/scripts/init_CustomCollection.ts +16 -0
  61. package/scripts/init_action_steps.ts +28 -0
  62. package/scripts/init_actions.ts +31 -0
  63. package/scripts/init_company.ts +18 -0
  64. package/scripts/init_customer_mysql.ts +12 -0
  65. package/scripts/init_feed.ts +4 -0
  66. package/scripts/init_feed_details_screen.ts +14 -0
  67. package/scripts/init_geofence.ts +26 -0
  68. package/scripts/init_print_details_screen.ts +14 -0
  69. package/scripts/init_report_actions.ts +24 -0
  70. package/scripts/init_report_definition_detail.ts +26 -0
  71. package/scripts/init_report_definition_summary.ts +16 -0
  72. package/scripts/init_report_visibility.ts +46 -0
  73. package/scripts/init_user_customcollection.ts +16 -0
  74. package/scripts/json/action.json +21 -0
  75. package/scripts/json/company.json +24 -0
  76. package/scripts/json/report-action.json +13 -0
  77. package/scripts/json/report-def-deet.json +43 -0
  78. package/scripts/json/resp.json +784 -0
  79. package/scripts/json/steps.json +24 -0
  80. package/scripts/json/test.ts +49 -0
  81. package/scripts/mysqlConfig.ts +9 -0
  82. package/scripts/revoke_or_extend_license.ts +14 -0
  83. package/scripts/stream.js +4 -0
  84. package/scripts/testing1.ts +35 -0
  85. package/scripts/update/doc.json +20 -0
  86. package/scripts/update/getDocByPath.ts +34 -0
  87. package/scripts/update/updateDocByPath.ts +47 -0
  88. package/scripts/update/updateUsersOfCompanies.ts +58 -0
  89. package/scripts/update_actions.ts +19 -0
  90. package/scripts/update_actions_steps.ts +19 -0
  91. package/scripts/update_company.ts +19 -0
  92. package/scripts/update_geofence.ts +20 -0
  93. package/scripts/update_managers.ts +16 -0
  94. package/scripts/visitorMgmt/createArea.ts +68 -0
  95. package/scripts/visitorMgmt/createArea.txt +3 -0
  96. package/scripts/visitorMgmt/createVisitorPathInstructionDocs.ts +130 -0
  97. package/scripts/visitorMgmt/createVisitorPathInstructionDocs.txt +18 -0
  98. package/scripts/visitorMgmt/encryptDateString.ts +71 -0
  99. package/scripts/visitorMgmt/makeHostsManagersOfEachOther.ts +117 -0
  100. package/scripts/whatsapp_gupshup/sendMessage.ts +97 -0
  101. package/src/index.ts +87 -0
  102. package/src/models/Feed-Details-Screen.model.ts +29 -0
  103. package/src/models/action.model.ts +355 -0
  104. package/src/models/actions/doffing.ts +71 -0
  105. package/src/models/actions/folding.ts +39 -0
  106. package/src/models/attendance.model.ts +615 -0
  107. package/src/models/cicoPost.model.ts +20 -0
  108. package/src/models/company.model.ts +975 -0
  109. package/src/models/contact-us/resquest.model.ts +87 -0
  110. package/src/models/crud/crud.ts +30 -0
  111. package/src/models/customCollection.model.ts +47 -0
  112. package/src/models/customer/customer.model.ts +85 -0
  113. package/src/models/deviceChangeReq.ts +150 -0
  114. package/src/models/dispatch.model.ts +99 -0
  115. package/src/models/feed.models.ts +104 -0
  116. package/src/models/geofence.model.ts +61 -0
  117. package/src/models/leaveApplicationPost.model.ts +79 -0
  118. package/src/models/license.model.ts +215 -0
  119. package/src/models/log.model.ts +25 -0
  120. package/src/models/meeting.model.ts +80 -0
  121. package/src/models/meter.model.ts +62 -0
  122. package/src/models/missingPunchPost.model.ts +84 -0
  123. package/src/models/offline.model.ts +1133 -0
  124. package/src/models/post.model.ts +105 -0
  125. package/src/models/printDetailsScreen.model.ts +30 -0
  126. package/src/models/pushNotifications/pushNotification.model.ts +17 -0
  127. package/src/models/report-actions.model.ts +57 -0
  128. package/src/models/report-definition-details.model.ts +89 -0
  129. package/src/models/report-definition.model.ts +26 -0
  130. package/src/models/report-definitions-summary.model.ts +59 -0
  131. package/src/models/report-detail-data.model.ts +49 -0
  132. package/src/models/report-visibility.model.ts +44 -0
  133. package/src/models/report.model.ts +179 -0
  134. package/src/models/reportGenerator.model.ts +883 -0
  135. package/src/models/response.model.ts +31 -0
  136. package/src/models/steps.factory.model.ts +195 -0
  137. package/src/models/storeGupShupLog.model.ts +49 -0
  138. package/src/models/summary.model.ts +63 -0
  139. package/src/models/tasks/sub-task-group.model.ts +173 -0
  140. package/src/models/tasks/tags.model.ts +113 -0
  141. package/src/models/tasks/task-group.model.ts +172 -0
  142. package/src/models/tasks/task.model.ts +681 -0
  143. package/src/models/tempCollection.model.ts +398 -0
  144. package/src/models/user.model.ts +319 -0
  145. package/src/models/utility.model.ts +100 -0
  146. package/src/models/visitorManagement/acknowledgement.model.ts +71 -0
  147. package/src/models/visitorManagement/invite.model.ts +406 -0
  148. package/src/models/visitorManagement/newIn.model.ts +82 -0
  149. package/src/models/visitorManagement/selfServe.model.ts +58 -0
  150. package/src/models/worklogPost.model.ts +8 -0
  151. package/src/services/customer.ts +382 -0
  152. package/src/services/meeting.ts +123 -0
  153. package/test/1.ts +13 -0
  154. package/test/db.js +19 -0
  155. package/test/firebaseConfig.js +1 -0
  156. package/tsconfig.json +16 -0
package/scripts/1.ts ADDED
@@ -0,0 +1,1300 @@
1
+ import admin from "./db.js";
2
+ import { License } from "../src/models/license.model";
3
+ import commandLineArgs from 'command-line-args'
4
+ import { Company } from "../src/models/company.model.js";
5
+ import { Attendance } from '../src/models/attendance.model'
6
+ import * as csvToJson from 'convert-csv-to-json'
7
+ import { options } from "./argvConfig.js";
8
+ import { Action } from "../src/models/action.model"
9
+ import { Offline } from '../src/models/offline.model'
10
+ import fs from 'fs/promises';
11
+ import path from 'path';
12
+ import XLSX from 'xlsx';
13
+ import axios from "axios";
14
+
15
+ // let argv = options.args[0].split(',')
16
+ // let nickName:string = argv[0]
17
+ // await Company.addUserInsidecompany(admin.firestore(),admin.firestore.FieldValue.arrayUnion,nickName)
18
+
19
+ // let csv_to_Json = csvToJson.fieldDelimiter(',').getJsonFromCsv(argv[1]);
20
+
21
+ // let status = await Offline.punchInErp(admin.firestore(),nickName)
22
+ // console.log(status)
23
+ //adding only userId in company docs
24
+ // for(let i=0;i<csv_to_Json.length;i++){
25
+ // let status = await Company.adduserIdCompanyArray(admin.firestore(),admin.auth(),admin.firestore.FieldValue.arrayUnion,nickName,csv_to_Json[i])
26
+ // console.log(status)
27
+ // }
28
+
29
+ // let status = await Action.getActionByName(admin.firestore(),"check_in_out","atishae")
30
+ // console.log(status)
31
+
32
+ // let status = await Company.getUserIds(admin.firestore(),admin.firestore.FieldValue.arrayUnion,args[0])
33
+ // console.log(status)
34
+
35
+ // let data = await Action.getActionId(admin.firestore(),args[0],args[1])
36
+ // console.log(data)
37
+ // let status = await Company.addUserIdinCompany(admin.firestore(),admin.firestore.FieldValue.arrayUnion,args[0],args[1])
38
+ // console.log(status)
39
+
40
+ // let status = await Action.getOrCreateAction(admin.firestore(),{name:"check_in_out",actionType:"type"},args[0])
41
+ // console.log(status)
42
+
43
+
44
+ // const optionDefinitions = [
45
+ // { name: 'verbose', alias: 'v', type: Boolean },
46
+ // { name: 'args', type: String, multiple: true, defaultOption: true },
47
+ // { name: 'timeout', alias: 't', type: Number }
48
+ // ]
49
+ // const options = commandLineArgs(optionDefinitions)
50
+ // console.log(options)
51
+
52
+ // let t = admin.firestore.Timestamp.now();
53
+ // let auth = admin.auth()
54
+ // let phoneNumber = '+919640446596'
55
+ // let userId = 'mhl5D0Y19QSs2eEIBmCJjDUsTZj2'
56
+
57
+ // let status = await Attendance.getAttendancebyUser(admin.firestore(),"terra",userId)
58
+ // console.log(status)
59
+
60
+ // let argv = options.args[0].split(',')
61
+ // let nickName = argv[0]
62
+ // let phone = argv[1]
63
+ // let status = await Company.getUserDetails(admin.firestore(),nickName,phone)
64
+ // console.log(status)
65
+
66
+ // let argv = options.args[0]
67
+ // console.log(argv)
68
+ // let nickName = 'atishae'
69
+ // let data_json = csvToJson.fieldDelimiter(',').getJsonFromCsv(argv);
70
+ // for(let i=0;i<data_json.length;i++){
71
+ // let phoneNumber = data_json[i]["phone"]
72
+ // let updateTo = "+"+data_json[i]["update"]
73
+ // let status = await Company.updatephone(admin.firestore(),nickName,phoneNumber,updateTo)
74
+ // console.log(status)
75
+ // }
76
+
77
+
78
+
79
+
80
+
81
+ // let status = await Company.createUserbyPhone(auth,phoneNumber)
82
+ // console.log(status)
83
+ // let status = await Company.getUsers(auth,phoneNumber)
84
+ // console.log(status)
85
+
86
+
87
+ // let company="atishae";
88
+ // let user="919925037646"
89
+ // let user_status = await License.validateUserLicense(admin.firestore(),t,company,user)
90
+ // console.log(user_status);
91
+
92
+ // let nickName = "benara"
93
+ // let newDetails = {to_date:new Date(),from_date:new Date(),user:"+919510590893",license_type:"basic"}
94
+ // let withCompany_obj= Object.assign(newDetails,{company:nickName})
95
+ // let user_status = await License.grantUserLicense(admin.firestore(),withCompany_obj)
96
+ // console.log(user_status)
97
+
98
+
99
+ // let time_Arr : Date[] = []
100
+ // let date: Date = new Date("2024-07-16");
101
+ // time_Arr.push(date)
102
+ // for(let i=0;i<4;i++){
103
+ // let date= new Date()
104
+ // time_Arr.push(date)
105
+ // }
106
+
107
+
108
+ // let time = [
109
+ // '2022-12-14T09:06:10.998Z',
110
+ // '2022-12-14T09:06:10.993Z',
111
+ // '2022-12-14T09:06:10.995Z',
112
+ // '2022-12-14T09:06:10.992Z'
113
+ // ]
114
+
115
+ // let temp = time_Arr.reduce(function (a, b) {
116
+ // return a > b ? a : b; })
117
+ // console.log(temp)
118
+ // console.log(time_Arr)
119
+ // console.log(Math.max.apply(time_Arr))
120
+
121
+
122
+
123
+ // async function main() {
124
+ // const firestore = admin.firestore();
125
+ // const companyId = 'NCRZgz9hqyG6QaCaDxh9';
126
+ // const usersCollection = firestore.collection('Companies').doc(companyId).collection('Users');
127
+
128
+ // usersCollection.get()
129
+ // .then(querySnapshot => {
130
+ // const documentCount = querySnapshot.size;
131
+ // console.log(`Number of documents in the collection: ${documentCount}`);
132
+ // })
133
+ // .catch(error => {
134
+ // console.error('Error getting documents: ', error);
135
+ // });
136
+ // }
137
+
138
+ // main();
139
+
140
+ // async function main() {
141
+ // const firestore = admin.firestore();
142
+ // const companyId = '';
143
+ // const collection = (await firestore.collection("Companies").doc('aF0GfTp8J7ucwFsffuKZ').collection('Actions').doc('nzacEKfvyy6D0VQ4HBXi').get()).data();
144
+ // await firestore.collection("Companies").doc('aF0GfTp8J7ucwFsffuKZ').collection('Actions').doc('gvC02qL28CPs8UfQ0oYi').update({
145
+ // users:collection.users
146
+ // })
147
+ // }
148
+
149
+ // async function main() {
150
+ // const firestore = admin.firestore();
151
+ // const companyId = '';
152
+ // const querySnapshot = await firestore.collection('Companies').doc('Di5gi8vhacFN4djCrlV8').collection('Users').get();
153
+ // querySnapshot.forEach(doc => {
154
+ // doc.ref.update({
155
+ // hasCheckedIn: false,
156
+ // checkInTime: null
157
+ // })
158
+ // .then(() => {
159
+ // console.log('Document updated successfully:', doc.id);
160
+ // })
161
+ // .catch((error) => {
162
+ // console.error('Error updating document:', error);
163
+ // });
164
+ // });
165
+ // }
166
+
167
+ // async function main(){
168
+ // const firestore = admin.firestore();
169
+ // const finalDataArr: any =[];
170
+ // const querySnapshot = await firestore.collection('Companies').doc('PVUhOWtzgw2V6omtD5Ra').collection('Conversation').get();
171
+ // querySnapshot.forEach(doc => {
172
+ // finalDataArr.push(doc.data())
173
+ // });
174
+ // await fs.writeFile(`${new Date().getTime()} backUpConversationData.json`, JSON.stringify(finalDataArr, null, 2));
175
+ // console.log(finalDataArr)
176
+ // }
177
+
178
+ // async function main() {
179
+ // const firestore = admin.firestore();
180
+ // const array = [
181
+ // 346,
182
+ // 347,
183
+ // 349,
184
+ // 350,
185
+ // 351,
186
+ // 352,
187
+ // 353,
188
+ // 354,
189
+ // 355,
190
+ // 356,
191
+ // 357,
192
+ // 358,
193
+ // 359,
194
+ // 360,
195
+ // 361,
196
+ // 362,
197
+ // 363,
198
+ // 364,
199
+ // 365,
200
+ // 366,
201
+ // 367,
202
+ // 368,
203
+ // 369,
204
+ // 370,
205
+ // 371,
206
+ // 372,
207
+ // 373,
208
+ // 374,
209
+ // 375,
210
+ // 376,
211
+ // 377,
212
+ // 378,
213
+ // 379,
214
+ // 380,
215
+ // 381,
216
+ // 382,
217
+ // 383,
218
+ // 384,
219
+ // 385,
220
+ // 386,
221
+ // 387,
222
+ // 388,
223
+ // 389,
224
+ // 390,
225
+ // 391,
226
+ // 392,
227
+ // 393,
228
+ // 396,
229
+ // 397,
230
+ // 398,
231
+ // 399,
232
+ // 400,
233
+ // 401,
234
+ // 402,
235
+ // 403,
236
+ // 404,
237
+ // 405,
238
+ // 406,
239
+ // 407,
240
+ // 408,
241
+ // 409,
242
+ // 410,
243
+ // 411,
244
+ // 412,
245
+ // 413,
246
+ // 414,
247
+ // 415,
248
+ // 416,
249
+ // 417,
250
+ // 418,
251
+ // 419,
252
+ // 420,
253
+ // 421,
254
+ // 422,
255
+ // 423,
256
+ // 424,
257
+ // 425,
258
+ // 426,
259
+ // 427,
260
+ // 428,
261
+ // 429,
262
+ // 430,
263
+ // 431
264
+ // ];
265
+
266
+ // const dataArray = []
267
+
268
+ // const collectionRef = firestore.collection('Companies').doc('PVUhOWtzgw2V6omtD5Ra').collection('Tasks');
269
+
270
+ // const querySnapshot = await collectionRef.get();
271
+
272
+ // const documentIds = querySnapshot.docs.map(doc => {
273
+ // const docData = doc.data();
274
+ // dataArray.push(docData)
275
+ // if (docData.parentTaskId !== 'pt' && docData.parentTaskId !== null) {
276
+ // return Number(docData.parentTaskId);
277
+ // } else {
278
+ // console.warn(`Document ${doc.id} has an invalid parentTaskId`);
279
+ // return -1;
280
+ // }
281
+ // });
282
+
283
+ // const finalArray = [...array, ...documentIds];
284
+
285
+ // const resultArray = new Set(finalArray);
286
+
287
+ // const tempArr = [...resultArray].filter(item => (item !== -1));
288
+
289
+ // console.log(array.length, tempArr.length, tempArr)
290
+
291
+
292
+ // querySnapshot.forEach(doc => {
293
+ // const docId = Number(doc.id);
294
+ // if (!tempArr.includes(docId)) {
295
+ // console.log(doc.id)
296
+ // // collectionRef.doc(doc.id).delete()
297
+ // }
298
+ // });
299
+
300
+ // console.log('Documents deleted successfully.');
301
+ // const filePath = path.join(process.cwd(), 'backUpData', new Date().getTime()+'dataArray.json');
302
+ // await fs.writeFile(filePath, JSON.stringify(dataArray, null, 2));
303
+ // }
304
+
305
+ // async function fetchDataAndCreateExcel() {
306
+ // try {
307
+ // const firestore = admin.firestore();
308
+ // const collectionRef = firestore.collection('Companies').doc('484w7zCZYijr9178xOjU').collection('Users');
309
+ // const snapshot = await collectionRef.get();
310
+
311
+
312
+ // const data = [];
313
+ // data.push(["ID","Mobile","Name","Remark"])
314
+ // snapshot.forEach((doc) => {
315
+ // const { id, phone, name } = doc.data();
316
+ // data.push([id, phone, name, ""]);
317
+ // });
318
+
319
+
320
+ // const wb = XLSX.utils.book_new();
321
+
322
+ // const ws = XLSX.utils.aoa_to_sheet(data);
323
+
324
+
325
+ // XLSX.utils.book_append_sheet(wb, ws, 'Sheet 1');
326
+
327
+
328
+ // XLSX.writeFile(wb, 'output.xlsx');
329
+
330
+ // console.log('Excel file created successfully: output.xlsx');
331
+
332
+
333
+ // } catch (error) {
334
+ // console.error('Error fetching data or creating Excel file:', error);
335
+ // }
336
+ // }
337
+
338
+ // // Run the function
339
+ // fetchDataAndCreateExcel();
340
+
341
+
342
+ // main();
343
+
344
+ // async function main() {
345
+ // const firestore = admin.firestore();
346
+
347
+ // try {
348
+ // const workbook = XLSX.readFile("output.xlsx");
349
+ // const sheetName = workbook.SheetNames[0];
350
+ // const worksheet = workbook.Sheets[sheetName];
351
+
352
+ // const dataArray = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
353
+
354
+ // // Create an array to store promises for batched deletion
355
+ // const deletionPromises = [];
356
+
357
+ // for (let i = 0; i < dataArray.length; i++) {
358
+ // if (dataArray[i].indexOf('Remove') > -1) {
359
+ // const userId = dataArray[i][0];
360
+ // const deletionPromise = firestore
361
+ // .collection('Companies')
362
+ // .doc('484w7zCZYijr9178xOjU')
363
+ // .collection('Users')
364
+ // .doc(userId)
365
+ // .delete();
366
+
367
+ // deletionPromises.push(deletionPromise);
368
+
369
+ // console.log(dataArray[i][2], "Marked for deletion");
370
+ // }
371
+ // }
372
+
373
+ // // Wait for all deletions to complete
374
+ // await Promise.all(deletionPromises);
375
+
376
+ // console.log("Deletions completed successfully");
377
+ // } catch (error) {
378
+ // console.error("Error:", error);
379
+ // }
380
+ // }
381
+
382
+ // async function main() {
383
+ // try {
384
+ // const firestore = admin.firestore();
385
+ // const companyIds = [
386
+ // '0tI2hzH8MaamkyE0fxPg', '3JNJVkdI7TxpvjJk9z5T',
387
+ // '7Oh4E1GfkZAtk3zcn55p', 'BzypDgiMnHr0RC6NqBFZ',
388
+ // 'GsEmZfg6TUO0KMKmnJxq', 'IBUVMtzhmYSCwWyG2pTi',
389
+ // 'L2UDCrnPsJuHGl95j58Z', 'LMoEfHCkx1SrIQOYXV6P',
390
+ // 'N2Ncfv0YRG23llvN6tT5', 'NCRZgz9hqyG6QaCaDxh9',
391
+ // 'Q8pCGhGc5Dl0V6SGPcRz', 'Rvk2WZhZaiB12ghZk8Kp',
392
+ // 'W1z1RiDwHbj8ZMKBHHDY', 'W4c13DhYBmiPoqwlVRo3',
393
+ // 'XmjEePx4LzeykNRfzFg1', 'Z8QTSfgitkyeQnAtAD9b',
394
+ // 'aJzcmyKI84PyYwiJ0awx', 'cyfZplbSqLhgu20jucqf',
395
+ // 'g7ou7rZ5Hd3hPNLNe46w', 'iKAMhh31Lyw53OyxSXWv',
396
+ // 'updTg97PgnuewVCqSupr', 'vsf4YUDfvfbeVPa6eJQa',
397
+ // 'wVglfgwnB7HXylTBLUCm'
398
+ // ];
399
+
400
+ // for (const companyId of companyIds) {
401
+ // const companyRef = firestore.collection('Companies').doc(companyId);
402
+ // const usersSnapshot = await companyRef.collection("Users").get();
403
+ // const userIds = usersSnapshot.docs.map(doc => doc.id);
404
+
405
+ // // Create the TaskActions document
406
+ // const actionRef = await companyRef.collection("TaskActions").doc();
407
+ // const actionId = actionRef.id;
408
+ // const actionObj = {
409
+ // require_selfie: false,
410
+ // startCollectionName: "status_change_steps",
411
+ // displayName: "Status",
412
+ // icon: "https://firebasestorage.googleapis.com/v0/b/mobioffice-flutter.appspot.com/o/icons%2Fnew-in.svg?alt=media&token=86a2d02a-f651-4105-b35b-1aee3da5f23d",
413
+ // idForReport: "",
414
+ // actionType: "worklog",
415
+ // start_label: "",
416
+ // companyId: companyId,
417
+ // name: "status change",
418
+ // id: actionId,
419
+ // end_label: "",
420
+ // order: 1,
421
+ // require_location: false,
422
+ // actionHandlerAPI: "https://dev-server.mobioffice.io/api/taskManagemant/changeStatus",
423
+ // users: userIds,
424
+ // actionCompleteText: "Status Changed Successfully"
425
+ // };
426
+ // await actionRef.set(actionObj);
427
+
428
+ // const stepRef = await actionRef.collection("status_change_steps").doc();
429
+ // const stepObj = {
430
+ // submitUrl: "",
431
+ // id: stepRef.id,
432
+ // label: "Status",
433
+ // nextRole: "",
434
+ // type: "summary",
435
+ // value: "",
436
+ // fieldType: "RadioList",
437
+ // nextCollection: "",
438
+ // buttonActionText: "Next",
439
+ // order: 0,
440
+ // field: {
441
+ // isRequired: true,
442
+ // isAPICalled: false,
443
+ // keyForAPI: "status",
444
+ // hint: "",
445
+ // icon: "",
446
+ // id: "i1",
447
+ // label: "Status",
448
+ // value: "",
449
+ // url: "",
450
+ // itemList: [
451
+ // { hint: "", icon: "", label: "Open", id: 1 },
452
+ // { hint: "", icon: "", label: "Assigned", id: 2 },
453
+ // { hint: "", icon: "", label: "Fixed", id: 3 },
454
+ // { hint: "", icon: "", label: "Verified", id: 4 },
455
+ // { hint: "", icon: "", label: "Intended Behavior", id: 5 },
456
+ // { hint: "", icon: "", label: "Not Reproducible", id: 6 },
457
+ // { hint: "", icon: "", label: "Duplicate", id: 7 },
458
+ // { hint: "", icon: "", label: "Closed", id: 8 }
459
+ // ]
460
+ // }
461
+ // };
462
+ // await stepRef.set(stepObj);
463
+
464
+ // await companyRef.update({ changeStatusActionId: actionId });
465
+ // }
466
+ // console.log('Update completed successfully.');
467
+ // } catch (error) {
468
+ // console.error('Error updating documents:', error);
469
+ // }
470
+ // }
471
+
472
+ // async function main() {
473
+ // try {
474
+ // const firestore = admin.firestore();
475
+
476
+ // const collectionRef = firestore.collection('Companies');
477
+
478
+ // const querySnapshot = await collectionRef.get();
479
+
480
+ // const companyDetails: any[] = [];
481
+
482
+ // await Promise.all(querySnapshot.docs.map(async (companyDoc) => {
483
+ // const companyData = companyDoc.data();
484
+ // const userDetails: any[] = [];
485
+
486
+ // const usersSnapshot = await collectionRef.doc(companyDoc.id).collection("Users").get();
487
+
488
+ // usersSnapshot.forEach(userDoc => {
489
+ // const userData = userDoc.data();
490
+ // userDetails.push({
491
+ // userName: userData.name,
492
+ // mobile: userData.phone
493
+ // });
494
+ // });
495
+
496
+ // const companyObj = {
497
+ // companyName: companyData.name,
498
+ // companyNickName: companyData.nickname,
499
+ // userDetails: userDetails
500
+ // };
501
+
502
+ // companyDetails.push(companyObj);
503
+ // }));
504
+
505
+ // // Write companyDetails to a JSON file
506
+ // await fs.writeFile('Production-companyDetails.json', JSON.stringify(companyDetails, null, 2));
507
+
508
+ // console.log('Company details written to companyDetails.json successfully');
509
+ // } catch (error) {
510
+ // console.error('Error retrieving company details:', error);
511
+ // }
512
+ // }
513
+
514
+ // async function main() {
515
+ // try {
516
+ // const firestore = admin.firestore();
517
+ // const companyIds =
518
+
519
+ // // [
520
+ // // '0lQJqQrrRBuiesPau7Cy',
521
+ // // '484w7zCZYijr9178xOjU',
522
+ // // '67In8FuDioaaoy8aeVyl',
523
+ // // '85vRmuwXwrDAv4TEP2dn',
524
+ // // 'Di5gi8vhacFN4djCrlV8',
525
+ // // 'GC5BOfo2Ibma9CJ4NRpM',
526
+ // // 'IEra0hal4aoIcLNi1jP7',
527
+ // // 'M3Xt6TTwJW5vGYMUou3t',
528
+ // // 'M6piMawKg9o3mR3dCJtw',
529
+ // // 'PVUhOWtzgw2V6omtD5Ra',
530
+ // // 'XlDzyqHeUeoCNGn6JSv6',
531
+ // // 'Yhcat7d3X62NJBIu1Tek',
532
+ // // 'aF0GfTp8J7ucwFsffuKZ',
533
+ // // 'dMVUQpZSRNr1Fj17PSX1',
534
+ // // 'fAeUepVDPH3oZUDWcxVW',
535
+ // // 'lduReslveGXPBy6lrHuk',
536
+ // // 'rsuQkjb0Fy17Pp6glPfY',
537
+ // // 'yzGdBFAZ3esH5ObgTm1l'
538
+ // // ]
539
+
540
+
541
+
542
+ // [
543
+ // '0tI2hzH8MaamkyE0fxPg', '3JNJVkdI7TxpvjJk9z5T',
544
+ // '7Oh4E1GfkZAtk3zcn55p', 'BzypDgiMnHr0RC6NqBFZ',
545
+ // 'GsEmZfg6TUO0KMKmnJxq', 'IBUVMtzhmYSCwWyG2pTi',
546
+ // 'L2UDCrnPsJuHGl95j58Z', 'LMoEfHCkx1SrIQOYXV6P',
547
+ // 'N2Ncfv0YRG23llvN6tT5', 'NCRZgz9hqyG6QaCaDxh9',
548
+ // 'Q8pCGhGc5Dl0V6SGPcRz', 'Rvk2WZhZaiB12ghZk8Kp',
549
+ // 'W1z1RiDwHbj8ZMKBHHDY', 'W4c13DhYBmiPoqwlVRo3',
550
+ // 'XmjEePx4LzeykNRfzFg1', 'Z8QTSfgitkyeQnAtAD9b',
551
+ // 'aJzcmyKI84PyYwiJ0awx', 'cyfZplbSqLhgu20jucqf',
552
+ // 'g7ou7rZ5Hd3hPNLNe46w', 'iKAMhh31Lyw53OyxSXWv',
553
+ // 'updTg97PgnuewVCqSupr', 'vsf4YUDfvfbeVPa6eJQa',
554
+ // 'wVglfgwnB7HXylTBLUCm'
555
+ // ];
556
+
557
+ // const statusArray = [
558
+ // {
559
+ // "IsActive": true,
560
+ // "iOrder": "7",
561
+ // "deletedBy": null,
562
+ // "Name": "Duplicate",
563
+ // "webUiId": 7
564
+ // },
565
+ // {
566
+ // "IsActive": true,
567
+ // "iOrder": "8",
568
+ // "deletedBy": null,
569
+ // "Name": "Closed",
570
+ // "webUiId": 8
571
+ // },
572
+ // {
573
+ // "IsActive": true,
574
+ // "iOrder": "4",
575
+ // "deletedBy": null,
576
+ // "Name": "Verified",
577
+ // "webUiId": 4
578
+ // },
579
+ // {
580
+ // "IsActive": true,
581
+ // "iOrder": "2",
582
+ // "deletedBy": null,
583
+ // "Name": "Assigned",
584
+ // "webUiId": 2
585
+ // },
586
+ // {
587
+ // "IsActive": true,
588
+ // "iOrder": "1",
589
+ // "deletedBy": null,
590
+ // "Name": "Open",
591
+ // "webUiId": 1
592
+ // },
593
+ // {
594
+ // "IsActive": true,
595
+ // "iOrder": "6",
596
+ // "deletedBy": null,
597
+ // "Name": "Not Reproducible",
598
+ // "webUiId": 6
599
+ // },
600
+ // {
601
+ // "IsActive": true,
602
+ // "iOrder": "5",
603
+ // "deletedBy": null,
604
+ // "Name": "Intended Behavior",
605
+ // "webUiId": 5
606
+ // },
607
+ // {
608
+ // "IsActive": true,
609
+ // "iOrder": "3",
610
+ // "deletedBy": null,
611
+ // "Name": "Fixed",
612
+ // "webUiId": 3
613
+ // }
614
+ // ];
615
+
616
+ // const priorityArray = [
617
+ // {
618
+ // "IsActive": true,
619
+ // "iOrder": "3",
620
+ // "deletedBy": null,
621
+ // "Name": "P3",
622
+ // "webUiId": 3
623
+ // },
624
+ // {
625
+ // "IsActive": true,
626
+ // "iOrder": "2",
627
+ // "deletedBy": null,
628
+ // "Name": "P2",
629
+ // "webUiId": 4
630
+ // },
631
+ // {
632
+ // "IsActive": true,
633
+ // "iOrder": "4",
634
+ // "deletedBy": null,
635
+ // "Name": "P4",
636
+ // "webUiId": 2
637
+ // },
638
+ // {
639
+ // "IsActive": true,
640
+ // "iOrder": "1",
641
+ // "deletedBy": null,
642
+ // "Name": "P1",
643
+ // "webUiId": 1
644
+ // }
645
+ // ];
646
+
647
+ // const tagArray = [
648
+ // {
649
+ // "data": {
650
+ // "updatedBy": null,
651
+ // "IsActive": true,
652
+ // "Color": "#d30303",
653
+ // "WorkspaceID": 10,
654
+ // "deletedBy": null,
655
+ // "Name": "Error",
656
+ // "createdAt": "2024-03-09T12:31:53.504Z",
657
+ // "createdBy": 1,
658
+ // "FbID": "",
659
+ // "DescriptionHtml": null,
660
+ // "ID": 36,
661
+ // "DescriptionText": null,
662
+ // "updatedAt": "2024-03-09T12:31:53.504Z"
663
+ // },
664
+ // "id": "36",
665
+ // "value": "Error"
666
+ // },
667
+ // {
668
+ // "data": {
669
+ // "updatedBy": null,
670
+ // "IsActive": true,
671
+ // "Color": "#b30000",
672
+ // "WorkspaceID": 10,
673
+ // "deletedBy": null,
674
+ // "Name": "Bug",
675
+ // "createdAt": "2024-03-09T12:32:22.941Z",
676
+ // "createdBy": 1,
677
+ // "FbID": "",
678
+ // "DescriptionHtml": null,
679
+ // "ID": 37,
680
+ // "DescriptionText": null,
681
+ // "updatedAt": "2024-03-09T12:32:22.941Z"
682
+ // },
683
+ // "id": "37",
684
+ // "value": "Bug"
685
+ // }
686
+ // ]
687
+
688
+ // for (const companyId of companyIds) {
689
+
690
+ // const companyDoc = await firestore.collection('Companies').doc(companyId).update({
691
+ // isTaskVisible: true,
692
+ // messageHandlerAPI: "https://dev-server.mobioffice.io/api/taskManagemant/insertMessage",
693
+ // multiSubTask: false,
694
+ // ptSubTaskShow: false,
695
+ // updateTask: false
696
+ // })
697
+
698
+ // const statusCollectionRef = firestore.collection('Companies').doc(companyId).collection("Task-Status");
699
+ // await Promise.all(statusArray.map(async (status) => {
700
+ // const statusDoc = statusCollectionRef.doc();
701
+ // status.id = statusDoc.id;
702
+ // await statusDoc.set(status);
703
+ // console.log(`Status document created for company ${companyId} with ID: ${status.id}`);
704
+ // }));
705
+
706
+ // const priorityCollectionRef = firestore.collection('Companies').doc(companyId).collection("Task-Priority");
707
+ // await Promise.all(priorityArray.map(async (priority) => {
708
+ // const priorityDoc = priorityCollectionRef.doc(); // Fix: Changed variable name to `priorityDoc`
709
+ // priority.id = priorityDoc.id;
710
+ // await priorityDoc.set(priority);
711
+ // console.log(`Priority document created for company ${companyId} with ID: ${priority.id}`);
712
+ // }));
713
+
714
+ // const tagCollectionRef = firestore.collection('Companies').doc(companyId).collection("Tags");
715
+ // await Promise.all(tagArray.map(async (tag) => {
716
+ // const tagDoc = tagCollectionRef.doc(tag.id); // Fix: Changed variable name to `priorityDoc`
717
+ // tag.companyId = companyId;
718
+ // await tagDoc.set(tag);
719
+ // console.log(`Tag document created for company ${companyId} with ID: ${tag.id}`);
720
+ // }));
721
+ // }
722
+
723
+ // console.log('Update completed successfully.');
724
+ // } catch (error) {
725
+ // console.error('Error updating documents:', error);
726
+ // }
727
+ // }
728
+
729
+
730
+ // main();
731
+
732
+ // async function main() {
733
+ // try {
734
+ // const firestore = admin.firestore();
735
+ // const companyIds =
736
+ // [
737
+ // '0lQJqQrrRBuiesPau7Cy', '484w7zCZYijr9178xOjU', 'dMVUQpZSRNr1Fj17PSX1'
738
+ // ]
739
+ // [
740
+ // '0lQJqQrrRBuiesPau7Cy', '1ci99vFWA8Cw3VTJNLKH',
741
+ // '484w7zCZYijr9178xOjU', '67In8FuDioaaoy8aeVyl',
742
+ // '85vRmuwXwrDAv4TEP2dn', 'Di5gi8vhacFN4djCrlV8',
743
+ // 'GC5BOfo2Ibma9CJ4NRpM', 'IEra0hal4aoIcLNi1jP7',
744
+ // 'M3Xt6TTwJW5vGYMUou3t', 'M6piMawKg9o3mR3dCJtw',
745
+ // 'XlDzyqHeUeoCNGn6JSv6', 'Yhcat7d3X62NJBIu1Tek',
746
+ // 'aF0GfTp8J7ucwFsffuKZ', 'dMVUQpZSRNr1Fj17PSX1',
747
+ // 'fAeUepVDPH3oZUDWcxVW', 'lduReslveGXPBy6lrHuk',
748
+ // 'rsuQkjb0Fy17Pp6glPfY', 'yzGdBFAZ3esH5ObgTm1l'
749
+ // ]
750
+
751
+ // const statusArray = [
752
+ // {
753
+ // "IsActive": true,
754
+ // "iOrder": "6",
755
+ // "deletedBy": null,
756
+ // "Name": "Not Reproducible",
757
+ // "webUiId": 6
758
+ // },
759
+ // {
760
+ // "IsActive": true,
761
+ // "iOrder": "4",
762
+ // "deletedBy": null,
763
+ // "Name": "Verified",
764
+ // "webUiId": 4
765
+ // },
766
+ // {
767
+ // "IsActive": true,
768
+ // "iOrder": "1",
769
+ // "deletedBy": null,
770
+ // "Name": "Open",
771
+ // "webUiId": 1
772
+ // },
773
+ // {
774
+ // "IsActive": true,
775
+ // "iOrder": "5",
776
+ // "deletedBy": null,
777
+ // "Name": "Intended Behavior",
778
+ // "webUiId": 5
779
+ // },
780
+ // {
781
+ // "IsActive": true,
782
+ // "iOrder": "8",
783
+ // "deletedBy": null,
784
+ // "Name": "Closed",
785
+ // "webUiId": 8
786
+ // },
787
+ // {
788
+ // "IsActive": true,
789
+ // "iOrder": "7",
790
+ // "deletedBy": null,
791
+ // "Name": "Duplicate",
792
+ // "webUiId": 7
793
+ // },
794
+ // {
795
+ // "IsActive": true,
796
+ // "iOrder": "3",
797
+ // "deletedBy": null,
798
+ // "Name": "Fixed",
799
+ // "webUiId": 3
800
+ // },
801
+ // {
802
+ // "IsActive": true,
803
+ // "iOrder": "2",
804
+ // "deletedBy": null,
805
+ // "Name": "Assigned",
806
+ // "webUiId": 2
807
+ // }
808
+ // ]
809
+
810
+ // const priorityArray = [
811
+ // {
812
+ // "IsActive": true,
813
+ // "iOrder": "1",
814
+ // "deletedBy": null,
815
+ // "Name": "P1",
816
+ // "webUiId": 1
817
+ // },
818
+ // {
819
+ // "IsActive": true,
820
+ // "iOrder": "2",
821
+ // "deletedBy": null,
822
+ // "Name": "P2",
823
+ // "webUiId": 4
824
+ // }, {
825
+ // "IsActive": true,
826
+ // "iOrder": "4",
827
+ // "deletedBy": null,
828
+ // "Name": "P4",
829
+ // "webUiId": 2
830
+ // },
831
+ // {
832
+ // "IsActive": true,
833
+ // "iOrder": "3",
834
+ // "deletedBy": null,
835
+ // "Name": "P3",
836
+ // "webUiId": 3
837
+ // }
838
+ // ]
839
+
840
+ // for (let i = 0; i < companyIds.length; i++) {
841
+ // const companyDocRef = firestore.collection('Companies').doc(companyIds[i]).collection('Task-Priority');
842
+ // for (let j = 0; j < priorityArray.length; j++) {
843
+ // const doc = companyDocRef.doc();
844
+ // const data = priorityArray[j];
845
+ // data.id = doc.id;
846
+ // doc.set(data);
847
+ // }
848
+ // }
849
+
850
+
851
+ // for (let i = 0; i < companyIds.length; i++) {
852
+ // const companyDocRef = firestore.collection('Companies').doc(companyIds[i]);
853
+ // const companyDoc = await companyDocRef.get();
854
+ // const oldData = companyDoc.data();
855
+ // const newData = {
856
+ // ...oldData,
857
+ // isTaskVisible: true,
858
+ // messageHandlerAPI: "https://dev-server.mobioffice.io/api/taskManagemant/insertMessage",
859
+ // multiSubTask: false,
860
+ // ptSubTaskShow: false,
861
+ // updateTask: false,
862
+ // addSubTask: false,
863
+ // addTask: false,
864
+ // }
865
+
866
+ // // Update the document with the new data
867
+ // await companyDocRef.update(newData);
868
+ // console.log(`Document ${companyIds[i]} updated successfully.`);
869
+ // }
870
+ // } catch (error) {
871
+ // console.error("Error occurred:", error);
872
+ // }
873
+ // }
874
+
875
+
876
+ // main()
877
+
878
+ // async function main() {
879
+ // const firestore = admin.firestore();
880
+
881
+ // try {
882
+ // // Fetch all documents from the "Users" collection
883
+ // const collectionRef = await firestore.collection("Companies").doc("484w7zCZYijr9178xOjU").collection("Users").get();;
884
+ // const data = collectionRef.docs.map((doc) => {
885
+ // const docData = doc.data();
886
+ // return {
887
+ // name: docData.name,
888
+ // phone: docData.phone
889
+ // }
890
+ // });
891
+ // console.log(data)
892
+ // // Convert the data to a worksheet
893
+ // const worksheet = XLSX.utils.json_to_sheet(data);
894
+ // const workbook = XLSX.utils.book_new();
895
+ // XLSX.utils.book_append_sheet(workbook, worksheet, "Users");
896
+
897
+ // // Write the Excel file in the current directory with filename "enroll.xlsx"
898
+ // const filePath = './enroll.xlsx';
899
+ // XLSX.writeFile(workbook, filePath);
900
+
901
+ // console.log("Data successfully written to enroll.xlsx in the current directory");
902
+ // } catch (err) {
903
+ // console.error('Error occurred:', err);
904
+ // }
905
+ // }
906
+
907
+ // async function main() {
908
+ // const firestore = admin.firestore();
909
+
910
+ // try {
911
+ // const collectionRef = await firestore.collection("Users").get();
912
+
913
+ // const data = collectionRef.docs.map((doc) => doc.data());
914
+
915
+ // await fs.writeFile("ApanaGameFirebase_backup/Users.json", JSON.stringify(data, null, 2));
916
+
917
+ // console.log("Data successfully written to Users.json");
918
+ // } catch (err) {
919
+ // console.error('Error occurred:', err);
920
+ // }
921
+ // }
922
+
923
+ // async function main() {
924
+ // try {
925
+ // const firestore = admin.firestore();
926
+ // const collectionRef = firestore.collection("Companies")
927
+ // .doc("aF0GfTp8J7ucwFsffuKZ")
928
+ // .collection("Enroll");
929
+
930
+ // const snapshot = await collectionRef.get();
931
+
932
+ // if (snapshot.empty) {
933
+ // console.log("No documents found.");
934
+ // return;
935
+ // }
936
+
937
+ // const batchSize = 500; // Firestore limits batches to 500 operations
938
+ // let totalDocsUpdated = 0;
939
+
940
+ // // Loop through the documents in chunks of batchSize (500)
941
+ // for (let i = 0; i < snapshot.docs.length; i += batchSize) {
942
+ // let batch = firestore.batch(); // Start a new batch
943
+ // const batchDocs = snapshot.docs.slice(i, i + batchSize); // Select a chunk of docs
944
+
945
+ // batchDocs.forEach((doc) => {
946
+ // const docRef = collectionRef.doc(doc.id);
947
+ // batch.update(docRef, { userId: doc.id }); // Update the document
948
+ // });
949
+
950
+ // // Commit the current batch
951
+ // await batch.commit();
952
+ // totalDocsUpdated += batchDocs.length;
953
+ // console.log(`Batch of ${batchDocs.length} committed. Total updated so far: ${totalDocsUpdated}`);
954
+ // }
955
+
956
+ // console.log(`All ${totalDocsUpdated} documents updated successfully.`);
957
+
958
+ // } catch (error) {
959
+ // console.error("Error updating user IDs:", error);
960
+ // }
961
+ // }
962
+
963
+
964
+ // main()
965
+
966
+ // async function main() {
967
+ // try {
968
+ // const firestore = admin.firestore();
969
+ // const companyId = "IBUVMtzhmYSCwWyG2pTi";
970
+
971
+ // // Fetch user IDs from the "Users" subcollection
972
+ // const usersSnapshot = await firestore
973
+ // .collection("Companies")
974
+ // .doc(companyId)
975
+ // .collection("Users")
976
+ // .get();
977
+
978
+ // const userIds = usersSnapshot.docs.map((doc) => doc.id);
979
+
980
+ // // Update the parent company document with the user IDs
981
+ // await firestore.collection("Companies").doc(companyId).update({
982
+ // childsafety_users: userIds,
983
+ // });
984
+
985
+ // console.log("Successfully updated childsafety_users.");
986
+ // } catch (error) {
987
+ // console.error("Error updating childsafety_users:", error);
988
+ // }
989
+ // }
990
+
991
+ // main()
992
+
993
+ // async function main() {
994
+ // try {
995
+ // const firestore = admin.firestore();
996
+ // const companyId = "wVglfgwnB7HXylTBLUCm";
997
+
998
+ // const usersSnapshot = await firestore
999
+ // .collection("Companies")
1000
+ // .doc(companyId)
1001
+ // .collection("Enroll")
1002
+ // .get();
1003
+
1004
+ // const userIds = usersSnapshot.docs.map((doc) => doc.id);
1005
+ // console.log(JSON.stringify(userIds))
1006
+ // // Update the parent company document with the user IDs
1007
+ // for (const user of userIds) {
1008
+ // await firestore.collection("Companies").doc(companyId).collection("Enroll").doc(user).update({
1009
+ // userId: user
1010
+ // });
1011
+ // }
1012
+
1013
+ // console.log("Successfully updated childsafety_users.");
1014
+ // } catch (error) {
1015
+ // console.error("Error updating childsafety_users:", error);
1016
+ // }
1017
+ // }
1018
+
1019
+ // main()
1020
+
1021
+ // async function main() {
1022
+ // try {
1023
+ // const firestore = admin.firestore();
1024
+ // const companiesSnapshot = await firestore.collection("Companies").get();
1025
+
1026
+ // const result = await Promise.all(
1027
+ // companiesSnapshot.docs.map(async (companyDoc) => {
1028
+ // const companyData = companyDoc.data();
1029
+ // const nickName = companyData.nickname || "Unknown";
1030
+
1031
+ // const usersSnapshot = await companyDoc.ref.collection("Users").get();
1032
+ // const users = usersSnapshot.docs.map((userDoc) => {
1033
+ // const userData = userDoc.data();
1034
+ // return {
1035
+ // name: userData.name || "Unknown User",
1036
+ // phone: userData.phone || "No Phone Provided",
1037
+ // };
1038
+ // });
1039
+
1040
+ // return {
1041
+ // nickName,
1042
+ // users,
1043
+ // };
1044
+ // })
1045
+ // );
1046
+
1047
+ // await fs.writeFile("dev_companies_data.json", JSON.stringify(result, null, 2), "utf-8");
1048
+ // console.log(`Data exported successfully to companies_data.json`);
1049
+ // } catch (error) {
1050
+ // console.error("Error fetching or exporting data:", error);
1051
+ // }
1052
+ // }
1053
+
1054
+
1055
+ createUser()
1056
+
1057
+ async function createUser() {
1058
+
1059
+ const users = [
1060
+ {
1061
+ "name": "Tester",
1062
+ "phone": "+911000000001"
1063
+ },
1064
+ {
1065
+ "name": "Vinay Gamit",
1066
+ "phone": "+919327767776"
1067
+ },
1068
+ {
1069
+ "name": "Nikita Khadawala",
1070
+ "phone": "+918886841414"
1071
+ },
1072
+ {
1073
+ "name": "Ojas Patel",
1074
+ "phone": "+919106445962"
1075
+ },
1076
+ {
1077
+ "name": "Krishna Damor ",
1078
+ "phone": "+919662526913"
1079
+ },
1080
+ {
1081
+ "name": "Vishal ",
1082
+ "phone": "+919510416538"
1083
+ },
1084
+ {
1085
+ "name": "Nikhil Diwakar",
1086
+ "phone": "+917984357591"
1087
+ },
1088
+ {
1089
+ "name": "Ritika Solanki ",
1090
+ "phone": "+919512946279"
1091
+ },
1092
+ {
1093
+ "name": "Dinky Contractor",
1094
+ "phone": "+917048558304"
1095
+ },
1096
+ {
1097
+ "name": "Ashish",
1098
+ "phone": "+918238717812"
1099
+ },
1100
+ {
1101
+ "name": "Meet Patel",
1102
+ "phone": "+918905967095"
1103
+ },
1104
+ {
1105
+ "name": "Karan Sharma",
1106
+ "phone": "+918849005069"
1107
+ },
1108
+ {
1109
+ "name": "Bala Swamy K",
1110
+ "phone": "+919640446596"
1111
+ },
1112
+ {
1113
+ "name": "Ritik Gamit",
1114
+ "phone": "+919586604967"
1115
+ },
1116
+ {
1117
+ "name": "Ankita Diwekar-Kabra",
1118
+ "phone": "+919925046461"
1119
+ },
1120
+ {
1121
+ "name": "Paresh Solanki",
1122
+ "phone": "+918141091014"
1123
+ },
1124
+ {
1125
+ "name": "Payal Ravindra Gaud",
1126
+ "phone": "+919924442628"
1127
+ },
1128
+ {
1129
+ "name": "Sanjay Parmar",
1130
+ "phone": "+918141726875"
1131
+ },
1132
+ {
1133
+ "name": "Suman Dhuriya",
1134
+ "phone": "+917435058122"
1135
+ },
1136
+ {
1137
+ "name": "Sagar Sharma",
1138
+ "phone": "+917359927752"
1139
+ },
1140
+ {
1141
+ "name": "Mittal Vasava",
1142
+ "phone": "+919316245689"
1143
+ },
1144
+ {
1145
+ "name": "Gargi Jain",
1146
+ "phone": "+919825137645"
1147
+ },
1148
+ {
1149
+ "name": "Mayank Jain",
1150
+ "phone": "+919925037646"
1151
+ },
1152
+ {
1153
+ "name": "Nidhi Patel",
1154
+ "phone": "+918160389583"
1155
+ },
1156
+ {
1157
+ "name": "Rutvik Nayaka",
1158
+ "phone": "+919998314621"
1159
+ },
1160
+ {
1161
+ "name": "Akshay Surange",
1162
+ "phone": "+917990257746"
1163
+ },
1164
+ {
1165
+ "name": "Nilesh",
1166
+ "phone": "+919898637875"
1167
+ },
1168
+ {
1169
+ "name": "Meet",
1170
+ "phone": "+919316199268"
1171
+ },
1172
+ {
1173
+ "name": "Swati",
1174
+ "phone": "+919377792344"
1175
+ },
1176
+ {
1177
+ "name": "Vardan Kabra",
1178
+ "phone": "+919904460088"
1179
+ },
1180
+ {
1181
+ "name": "Shraddha Chaudhari",
1182
+ "phone": "+917778900533"
1183
+ },
1184
+ {
1185
+ "name": "Dipen Sagar",
1186
+ "phone": "+919925030186"
1187
+ },
1188
+ {
1189
+ "name": "Karan",
1190
+ "phone": "+919601848702"
1191
+ },
1192
+ {
1193
+ "name": "Aayush patel",
1194
+ "phone": "+919662699291"
1195
+ },
1196
+ {
1197
+ "name": "Akshay Vaghmare",
1198
+ "phone": "+918153055228"
1199
+ },
1200
+ {
1201
+ "name": "Tester ",
1202
+ "phone": "+919925039603"
1203
+ }
1204
+ ]
1205
+
1206
+ for (const user of users) {
1207
+ const data = {
1208
+ "isSyncMobiOffice": false,
1209
+ "UID": 0,
1210
+ "CID": 17,
1211
+ "CTID": null,
1212
+ "Name": user.name,
1213
+ "Username": user.name,
1214
+ "EmailID": `${user.name}@gmail.com`,
1215
+ "Password": `${user.name}123`,
1216
+ "IsEmployee": true,
1217
+ "PhonePreFix": "91",
1218
+ "Phone": user.phone.replace("+", ""),
1219
+ "UserLogoName": "Doubletick.png",
1220
+ "UserLogoUrl": "https://r2.mobioffice.io/1733909793430-Doubletick.png",
1221
+ "UserLogoType": "IMAGE",
1222
+ "UserLogoSize": 59709,
1223
+ "UserApplication": [
1224
+ {
1225
+ "AID": 1,
1226
+ "UserApiKey": "",
1227
+ "createdBy": 1
1228
+ }
1229
+ ],
1230
+ "UserRoles": [
1231
+ {
1232
+ "RID": 2,
1233
+ "createdBy": 1
1234
+ }
1235
+ ],
1236
+ "createdBy": 1
1237
+ };
1238
+
1239
+ const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOjEsIkNJRCI6MTAwMCwiQUlEIjoxMDAwLCJDVElEIjowLCJhcHBOYW1lIjoidXNlcm1hbmFnZW1lbnQiLCJjb21wYW55TmFtZSI6Im1vYmlvZmZpY2UiLCJjb21wYW55Tmlja05hbWUiOiJtb2JpYWNjb3VudHMiLCJVc2VybmFtZVBob25lRW1haWwiOiJhZG1pbkBtb2Jpb2ZmaWNlLmNvbSIsIk1vYmlsZU51bWJlciI6IjkxOTkyNTAzNzY0NiIsImN1c3RvbWVyTmFtZSI6IiIsImlhdCI6MTczNDY4OTAzNCwiZXhwIjoxNzM1MjkzODM0fQ.bt-4xplIOmyKW3GgvchQhFfwFPiSu5WYMsvmoM-XAmo";
1240
+
1241
+ try {
1242
+ const response = await axios.post(
1243
+ "https://prod-api.user-management.mobioffice.io/api/account/InsertUser",
1244
+ data,
1245
+ {
1246
+ headers: {
1247
+ Authorization: `Bearer ${token}`,
1248
+ "Content-Type": "application/json",
1249
+ },
1250
+ }
1251
+ );
1252
+
1253
+ console.log(`User ${user.name} inserted successfully:`, response.data);
1254
+ } catch (error) {
1255
+ console.error(`Error inserting user ${user.name}:`, error.response?.data || error.message);
1256
+ }
1257
+ }
1258
+ }
1259
+
1260
+
1261
+ // main()
1262
+ // async function main() {
1263
+
1264
+ // const firestore = admin.firestore();
1265
+
1266
+ // try {
1267
+ // // Define the result type
1268
+ // const result: { companyNickname: string; actions: string[] }[] = [];
1269
+
1270
+ // // Fetch all companies
1271
+ // const companiesSnapshot = await firestore.collection("Companies").get();
1272
+ // if (companiesSnapshot.empty) {
1273
+ // console.log("No companies found.");
1274
+ // return;
1275
+ // }
1276
+
1277
+ // // Iterate through each company
1278
+ // for (const companyDoc of companiesSnapshot.docs) {
1279
+ // const companyData = companyDoc.data();
1280
+ // const companyNickname = companyData.nickname || "Unknown";
1281
+
1282
+ // // Fetch actions for the current company
1283
+ // const actionsSnapshot = await companyDoc.ref.collection("Actions").get();
1284
+
1285
+ // const actions = actionsSnapshot.docs.map((actionDoc) => {
1286
+ // const actionData = actionDoc.data();
1287
+ // return actionData.name || "Unnamed Action";
1288
+ // });
1289
+
1290
+ // result.push({
1291
+ // companyNickname,
1292
+ // actions,
1293
+ // });
1294
+ // }
1295
+
1296
+ // console.log("Result:", result);
1297
+ // } catch (error) {
1298
+ // console.error("Error fetching data:", error);
1299
+ // }
1300
+ // }