@tomei/sso 0.1.1 → 0.2.0

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 (67) hide show
  1. package/README.md +20 -3
  2. package/__tests__/unit/components/login-history/login-history.repository.spec.ts +95 -0
  3. package/__tests__/unit/components/login-user/login-user.spec.ts +223 -0
  4. package/__tests__/unit/components/login-user/user.repository.spec.ts +81 -0
  5. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +33 -0
  6. package/__tests__/unit/components/system/system.repository.spec.ts +88 -0
  7. package/__tests__/unit/components/system-access/system-access.repository.spec.ts +78 -0
  8. package/__tests__/unit/redis-client/redis.service.spec.ts +24 -0
  9. package/__tests__/unit/session/session.service.spec.ts +27 -0
  10. package/create-sso-user.sql +8 -3
  11. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +1 -0
  12. package/dist/__tests__/unit/components/login-user/login-user.spec.js +208 -0
  13. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -0
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/jest.config.js +15 -0
  16. package/package.json +21 -3
  17. package/prisma/migrations/0_init/migration.sql +512 -521
  18. package/prisma/migrations/20230528161352_create_user_user_group_and_add_new_column/migration.sql +35 -0
  19. package/prisma/migrations/20230606091407_create_login_histories_table/migration.sql +17 -0
  20. package/prisma/migrations/migration_lock.toml +2 -2
  21. package/prisma/schema.prisma +519 -436
  22. package/sampledotenv +8 -0
  23. package/src/components/index.ts +7 -0
  24. package/src/components/login-history/index.ts +1 -0
  25. package/src/components/login-history/login-history.repository.ts +33 -0
  26. package/src/components/login-user/index.ts +4 -0
  27. package/src/components/login-user/interfaces/index.ts +1 -0
  28. package/src/components/login-user/interfaces/user-info.interface.ts +9 -0
  29. package/src/components/login-user/login-user.ts +427 -0
  30. package/src/components/login-user/user.repository.ts +33 -0
  31. package/src/components/password-hash/index.ts +2 -0
  32. package/src/components/password-hash/interfaces/index.ts +1 -0
  33. package/src/components/password-hash/interfaces/password-hash-service.interface.ts +4 -0
  34. package/src/components/password-hash/password-hash.service.ts +14 -0
  35. package/src/components/system/index.ts +1 -0
  36. package/src/components/system/system.repository.ts +33 -0
  37. package/src/components/system-access/index.ts +1 -0
  38. package/src/components/system-access/system-access.repository.ts +33 -0
  39. package/src/components/user-group/index.ts +1 -0
  40. package/src/components/user-group/user-group.repository.ts +33 -0
  41. package/src/components/user-user-group/index.ts +1 -0
  42. package/src/components/user-user-group/user-user-group.repository.ts +33 -0
  43. package/src/index.ts +7 -0
  44. package/src/interfaces/index.ts +2 -0
  45. package/src/interfaces/system-login.interface.ts +6 -0
  46. package/src/interfaces/user-session.interface.ts +5 -0
  47. package/src/mail/index.ts +2 -0
  48. package/src/mail/interfaces/index.ts +2 -0
  49. package/src/mail/interfaces/send-mail.interface.ts +8 -0
  50. package/src/mail/interfaces/send-new-login-alert.interface.ts +6 -0
  51. package/src/mail/mail.service.ts +33 -0
  52. package/src/mail/mail.ts +40 -0
  53. package/src/prisma-client/__mocks__/prisma.ts +15 -0
  54. package/src/prisma-client/client.ts +3 -0
  55. package/src/prisma-client/index.ts +1 -0
  56. package/src/redis-client/__mocks__/jest-initial-setup.ts +2 -0
  57. package/src/redis-client/__mocks__/redis-mock.ts +28 -0
  58. package/src/redis-client/index.ts +1 -0
  59. package/src/redis-client/redis.service.ts +48 -0
  60. package/src/session/index.ts +2 -0
  61. package/src/session/interfaces/index.ts +1 -0
  62. package/src/session/interfaces/session-service.interface.ts +6 -0
  63. package/src/session/session.service.ts +45 -0
  64. package/tsconfig.json +7 -3
  65. package/dist/index.d.ts +0 -0
  66. package/dist/index.js +0 -1
  67. package/dist/index.js.map +0 -1
@@ -1,521 +1,512 @@
1
- -- CreateTable
2
- CREATE TABLE `sso_authorization_codes` (
3
- `id` INTEGER NOT NULL AUTO_INCREMENT,
4
- `user_id` INTEGER NOT NULL,
5
- `system_id` INTEGER NOT NULL,
6
- `code` VARCHAR(255) NOT NULL,
7
- `expired_at` DATETIME(0) NOT NULL,
8
- `created_at` DATETIME(0) NOT NULL,
9
- `updated_at` DATETIME(0) NOT NULL,
10
- `status` VARCHAR(255) NULL DEFAULT 'unused',
11
-
12
- UNIQUE INDEX `code`(`code`),
13
- PRIMARY KEY (`id`)
14
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
15
-
16
- -- CreateTable
17
- CREATE TABLE `sso_bearer_tokens` (
18
- `id` INTEGER NOT NULL AUTO_INCREMENT,
19
- `user_id` INTEGER NOT NULL,
20
- `token` VARCHAR(255) NOT NULL,
21
- `expired_at` DATETIME(0) NOT NULL,
22
- `created_at` DATETIME(0) NOT NULL,
23
- `updated_at` DATETIME(0) NOT NULL,
24
-
25
- UNIQUE INDEX `token`(`token`),
26
- PRIMARY KEY (`id`)
27
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
28
-
29
- -- CreateTable
30
- CREATE TABLE `sso_building_types` (
31
- `id` INTEGER NOT NULL AUTO_INCREMENT,
32
- `name` VARCHAR(50) NOT NULL,
33
- `created_at` DATETIME(0) NOT NULL,
34
- `updated_at` DATETIME(0) NOT NULL,
35
-
36
- PRIMARY KEY (`id`)
37
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
38
-
39
- -- CreateTable
40
- CREATE TABLE `sso_buildings` (
41
- `id` INTEGER NOT NULL AUTO_INCREMENT,
42
- `name` VARCHAR(200) NULL,
43
- `code` VARCHAR(10) NOT NULL,
44
- `building_type_id` INTEGER NOT NULL,
45
- `status` VARCHAR(10) NOT NULL,
46
- `email` VARCHAR(200) NULL,
47
- `mobile` VARCHAR(20) NULL,
48
- `phone` VARCHAR(20) NOT NULL,
49
- `address` VARCHAR(1000) NOT NULL,
50
- `postcode` VARCHAR(10) NOT NULL,
51
- `longitude` DECIMAL(11, 8) NULL,
52
- `latitude` DECIMAL(10, 8) NULL,
53
- `country_id` INTEGER NOT NULL,
54
- `state` VARCHAR(50) NOT NULL,
55
- `city` VARCHAR(50) NOT NULL,
56
- `created_by_id` INTEGER NULL,
57
- `updated_by_id` INTEGER NULL,
58
- `created_at` DATETIME(0) NOT NULL,
59
- `updated_at` DATETIME(0) NOT NULL,
60
- `brand` VARCHAR(100) NULL,
61
- `area_staff_id` INTEGER NULL,
62
- `opening_date` DATETIME(0) NULL,
63
- `ceased_date` DATETIME(0) NULL,
64
- `opening_hours` VARCHAR(200) NULL,
65
- `image` VARCHAR(200) NULL,
66
-
67
- UNIQUE INDEX `code`(`code`),
68
- PRIMARY KEY (`id`)
69
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
70
-
71
- -- CreateTable
72
- CREATE TABLE `sso_cities` (
73
- `id` INTEGER NOT NULL AUTO_INCREMENT,
74
- `name` VARCHAR(255) NULL,
75
- `state_id` INTEGER NULL,
76
- `postcode` VARCHAR(255) NULL,
77
- `created_at` DATETIME(0) NOT NULL,
78
- `updated_at` DATETIME(0) NOT NULL,
79
-
80
- PRIMARY KEY (`id`)
81
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
82
-
83
- -- CreateTable
84
- CREATE TABLE `sso_companies` (
85
- `id` INTEGER NOT NULL AUTO_INCREMENT,
86
- `code` VARCHAR(10) NOT NULL,
87
- `name` VARCHAR(200) NOT NULL,
88
- `description` VARCHAR(3000) NULL,
89
- `logo` TEXT NULL,
90
- `status` VARCHAR(10) NOT NULL,
91
- `created_by_id` INTEGER NULL,
92
- `updated_by_id` INTEGER NULL,
93
- `created_at` DATETIME(0) NOT NULL,
94
- `updated_at` DATETIME(0) NOT NULL,
95
-
96
- UNIQUE INDEX `code`(`code`),
97
- PRIMARY KEY (`id`)
98
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
99
-
100
- -- CreateTable
101
- CREATE TABLE `sso_countries` (
102
- `id` INTEGER NOT NULL AUTO_INCREMENT,
103
- `code` VARCHAR(255) NOT NULL,
104
- `name` VARCHAR(100) NOT NULL,
105
- `phonecode` VARCHAR(255) NULL,
106
- `created_at` DATETIME(0) NOT NULL,
107
- `updated_at` DATETIME(0) NOT NULL,
108
-
109
- UNIQUE INDEX `code`(`code`),
110
- PRIMARY KEY (`id`)
111
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
112
-
113
- -- CreateTable
114
- CREATE TABLE `sso_departments` (
115
- `id` INTEGER NOT NULL AUTO_INCREMENT,
116
- `code` VARCHAR(10) NOT NULL,
117
- `building_id` INTEGER NULL,
118
- `status` VARCHAR(10) NOT NULL,
119
- `name` VARCHAR(100) NOT NULL,
120
- `created_by_id` INTEGER NULL,
121
- `updated_by_id` INTEGER NULL,
122
- `created_at` DATETIME(0) NOT NULL,
123
- `updated_at` DATETIME(0) NOT NULL,
124
-
125
- UNIQUE INDEX `code`(`code`),
126
- INDEX `fk_departments_building_id`(`building_id`),
127
- INDEX `fk_departments_created_by_id`(`created_by_id`),
128
- INDEX `fk_departments_updated_by_id`(`updated_by_id`),
129
- PRIMARY KEY (`id`)
130
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
131
-
132
- -- CreateTable
133
- CREATE TABLE `sso_grouproleprivilege` (
134
- `GroupCode` VARCHAR(10) NOT NULL,
135
- `RoleId` VARCHAR(30) NOT NULL,
136
- `PrivilegeId` VARCHAR(30) NOT NULL,
137
- `CreatedById` INTEGER NOT NULL,
138
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2023-01-03 17:13:45'),
139
- `SystemId` INTEGER NOT NULL DEFAULT 1,
140
-
141
- INDEX `PrivilegeId`(`PrivilegeId`),
142
- INDEX `RoleId`(`RoleId`),
143
- INDEX `sso_GroupRolePrivilege_SystemId_foreign_idx`(`SystemId`),
144
- PRIMARY KEY (`GroupCode`, `RoleId`, `PrivilegeId`, `SystemId`)
145
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
146
-
147
- -- CreateTable
148
- CREATE TABLE `sso_groupsystemaccess` (
149
- `SystemId` INTEGER NOT NULL,
150
- `GroupCode` VARCHAR(10) NOT NULL,
151
- `CreatedById` INTEGER NOT NULL,
152
- `createdAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:41'),
153
-
154
- INDEX `GroupCode`(`GroupCode`),
155
- PRIMARY KEY (`SystemId`, `GroupCode`)
156
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
157
-
158
- -- CreateTable
159
- CREATE TABLE `sso_groupsystemprivilege` (
160
- `GroupCode` VARCHAR(10) NOT NULL,
161
- `PrivilegeId` VARCHAR(30) NOT NULL,
162
- `CreatedById` VARCHAR(30) NOT NULL,
163
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:40'),
164
-
165
- INDEX `PrivilegeId`(`PrivilegeId`),
166
- PRIMARY KEY (`GroupCode`, `PrivilegeId`)
167
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
168
-
169
- -- CreateTable
170
- CREATE TABLE `sso_groupsystemrole` (
171
- `RoleId` VARCHAR(30) NOT NULL,
172
- `GroupCode` VARCHAR(10) NOT NULL,
173
- `CreatedById` VARCHAR(30) NOT NULL,
174
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:39'),
175
-
176
- INDEX `GroupCode`(`GroupCode`),
177
- PRIMARY KEY (`RoleId`, `GroupCode`)
178
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
179
-
180
- -- CreateTable
181
- CREATE TABLE `sso_oauth_tokens` (
182
- `id` INTEGER NOT NULL AUTO_INCREMENT,
183
- `user_id` INTEGER NOT NULL,
184
- `token` TEXT NOT NULL,
185
- `expired_at` DATETIME(0) NOT NULL,
186
- `created_at` DATETIME(0) NOT NULL,
187
- `updated_at` DATETIME(0) NOT NULL,
188
- `system_id` INTEGER NOT NULL DEFAULT 1,
189
-
190
- INDEX `sso_oauth_tokens_system_id_foreign_idx`(`system_id`),
191
- PRIMARY KEY (`id`)
192
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
193
-
194
- -- CreateTable
195
- CREATE TABLE `sso_roles` (
196
- `ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
197
- `name` VARCHAR(255) NOT NULL,
198
- `description` TEXT NULL,
199
- `default_to_on` BOOLEAN NOT NULL,
200
- `parent_id` INTEGER NULL,
201
- `created_at` DATETIME(0) NOT NULL,
202
- `updated_at` DATETIME(0) NOT NULL,
203
-
204
- PRIMARY KEY (`ID`)
205
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
206
-
207
- -- CreateTable
208
- CREATE TABLE `sso_sequelize_meta` (
209
- `name` VARCHAR(255) NOT NULL,
210
-
211
- UNIQUE INDEX `name`(`name`),
212
- PRIMARY KEY (`name`)
213
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
214
-
215
- -- CreateTable
216
- CREATE TABLE `sso_staff_types` (
217
- `id` INTEGER NOT NULL AUTO_INCREMENT,
218
- `name` VARCHAR(20) NOT NULL,
219
- `created_at` DATETIME(0) NOT NULL,
220
- `updated_at` DATETIME(0) NOT NULL,
221
-
222
- PRIMARY KEY (`id`)
223
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
224
-
225
- -- CreateTable
226
- CREATE TABLE `sso_staffs` (
227
- `id` INTEGER NOT NULL AUTO_INCREMENT,
228
- `staff_id` VARCHAR(10) NOT NULL,
229
- `full_name` VARCHAR(200) NOT NULL,
230
- `preferred_name` VARCHAR(200) NOT NULL,
231
- `email` VARCHAR(200) NOT NULL,
232
- `staff_type_id` INTEGER NOT NULL,
233
- `job_title` VARCHAR(100) NOT NULL,
234
- `car_plate` VARCHAR(20) NOT NULL DEFAULT '',
235
- `mobile` VARCHAR(20) NULL,
236
- `floor` VARCHAR(15) NULL,
237
- `extension` INTEGER NULL,
238
- `is_charge` BOOLEAN NOT NULL DEFAULT false,
239
- `status` VARCHAR(10) NOT NULL,
240
- `user_id` INTEGER NOT NULL,
241
- `building_id` INTEGER NOT NULL,
242
- `department_id` INTEGER NOT NULL,
243
- `company_id` INTEGER NULL,
244
- `created_by_id` INTEGER NULL,
245
- `updated_by_id` INTEGER NULL,
246
- `created_at` DATETIME(0) NOT NULL,
247
- `updated_at` DATETIME(0) NOT NULL,
248
- `image` VARCHAR(255) NULL,
249
- `IdNo` VARCHAR(20) NULL,
250
- `FullAddress` VARCHAR(1000) NULL,
251
-
252
- UNIQUE INDEX `staff_id`(`staff_id`),
253
- INDEX `fk_staffs_building_id`(`building_id`),
254
- INDEX `fk_staffs_company_id`(`company_id`),
255
- INDEX `fk_staffs_created_by_id`(`created_by_id`),
256
- INDEX `fk_staffs_department_id`(`department_id`),
257
- INDEX `fk_staffs_staff_type_id`(`staff_type_id`),
258
- INDEX `fk_staffs_updated_by_id`(`updated_by_id`),
259
- INDEX `fk_staffs_user_id`(`user_id`),
260
- PRIMARY KEY (`id`)
261
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
262
-
263
- -- CreateTable
264
- CREATE TABLE `sso_states` (
265
- `id` INTEGER NOT NULL AUTO_INCREMENT,
266
- `name` VARCHAR(50) NOT NULL,
267
- `country_id` INTEGER NULL,
268
- `created_at` DATETIME(0) NOT NULL,
269
- `updated_at` DATETIME(0) NOT NULL,
270
-
271
- PRIMARY KEY (`id`)
272
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
273
-
274
- -- CreateTable
275
- CREATE TABLE `sso_system_accesses` (
276
- `user_id` INTEGER NOT NULL,
277
- `system_id` INTEGER NOT NULL,
278
- `updated_at` DATETIME(0) NOT NULL,
279
-
280
- INDEX `fk_system_access_system`(`system_id`),
281
- PRIMARY KEY (`user_id`, `system_id`)
282
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
283
-
284
- -- CreateTable
285
- CREATE TABLE `sso_systemprivilege` (
286
- `PrivilegeId` VARCHAR(30) NOT NULL,
287
- `SystemId` INTEGER NOT NULL,
288
- `Code` VARCHAR(200) NOT NULL,
289
- `Description` VARCHAR(3000) NULL,
290
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:19'),
291
- `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:19'),
292
-
293
- INDEX `SystemId`(`SystemId`),
294
- PRIMARY KEY (`PrivilegeId`)
295
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
296
-
297
- -- CreateTable
298
- CREATE TABLE `sso_systemrole` (
299
- `RoleId` VARCHAR(30) NOT NULL,
300
- `SystemId` INTEGER NOT NULL,
301
- `Name` VARCHAR(100) NOT NULL,
302
- `Description` VARCHAR(3000) NULL,
303
- `CreatedById` INTEGER NOT NULL,
304
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
305
- `UpdatedById` INTEGER NOT NULL,
306
- `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
307
-
308
- INDEX `SystemId`(`SystemId`),
309
- PRIMARY KEY (`RoleId`)
310
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
311
-
312
- -- CreateTable
313
- CREATE TABLE `sso_systemroleprivilege` (
314
- `RoleId` VARCHAR(30) NOT NULL,
315
- `PrivilegeId` VARCHAR(30) NOT NULL,
316
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
317
- `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
318
-
319
- INDEX `PrivilegeId`(`PrivilegeId`),
320
- PRIMARY KEY (`RoleId`, `PrivilegeId`)
321
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
322
-
323
- -- CreateTable
324
- CREATE TABLE `sso_systems` (
325
- `id` INTEGER NOT NULL AUTO_INCREMENT,
326
- `code` VARCHAR(10) NOT NULL,
327
- `name` VARCHAR(200) NOT NULL,
328
- `description` VARCHAR(500) NOT NULL,
329
- `access_url` VARCHAR(2000) NULL,
330
- `google_play_url` VARCHAR(2000) NULL,
331
- `apple_store_url` VARCHAR(2000) NULL,
332
- `api_key` VARCHAR(255) NULL,
333
- `logo` VARCHAR(255) NULL,
334
- `status` VARCHAR(10) NOT NULL,
335
- `visible` BOOLEAN NOT NULL DEFAULT true,
336
- `created_at` DATETIME(0) NOT NULL,
337
- `updated_at` DATETIME(0) NOT NULL,
338
- `api_secret` VARCHAR(255) NULL,
339
- `updated_by_id` INTEGER NULL,
340
- `created_by_id` INTEGER NULL,
341
-
342
- UNIQUE INDEX `code`(`code`),
343
- PRIMARY KEY (`id`)
344
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
345
-
346
- -- CreateTable
347
- CREATE TABLE `sso_updated_history` (
348
- `HistoryId` BIGINT NOT NULL AUTO_INCREMENT,
349
- `BatchId` VARCHAR(30) NULL,
350
- `ObjectType` VARCHAR(50) NOT NULL,
351
- `ObjectValue` VARCHAR(50) NOT NULL,
352
- `ActionType` ENUM('Add', 'Update', 'Delete') NOT NULL,
353
- `UpdatedFieldName` VARCHAR(100) NOT NULL,
354
- `OldValue` VARCHAR(1000) NULL,
355
- `NewValue` VARCHAR(1000) NULL,
356
- `UpdatedById` INTEGER NOT NULL,
357
- `UpdatedAt` DATETIME(0) NOT NULL,
358
-
359
- PRIMARY KEY (`HistoryId`)
360
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
361
-
362
- -- CreateTable
363
- CREATE TABLE `sso_user_roles` (
364
- `user_id` INTEGER NOT NULL,
365
- `role_id` INTEGER NOT NULL,
366
- `updated_by_id` INTEGER NULL,
367
- `updated_at` DATETIME(0) NOT NULL,
368
-
369
- PRIMARY KEY (`user_id`, `role_id`)
370
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
371
-
372
- -- CreateTable
373
- CREATE TABLE `sso_usergroup` (
374
- `GroupCode` VARCHAR(10) NOT NULL,
375
- `GroupDescription` VARCHAR(100) NULL,
376
- `Status` ENUM('Active', 'Inactive') NULL,
377
- `CreatedById` VARCHAR(30) NULL,
378
- `CreatedAt` DATETIME(0) NULL DEFAULT ('2022-06-29 01:16:39'),
379
- `UpdatedById` VARCHAR(30) NULL,
380
- `UpdatedAt` DATETIME(0) NULL DEFAULT ('2022-06-29 01:16:39'),
381
- `DepartmentId` INTEGER NULL,
382
-
383
- INDEX `sso_UserGroup_DepartmentId_foreign_idx`(`DepartmentId`),
384
- PRIMARY KEY (`GroupCode`)
385
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
386
-
387
- -- CreateTable
388
- CREATE TABLE `sso_users` (
389
- `id` INTEGER NOT NULL AUTO_INCREMENT,
390
- `email` VARCHAR(255) NOT NULL,
391
- `password` VARCHAR(255) NOT NULL,
392
- `status` VARCHAR(255) NULL,
393
- `default_password_changed` BOOLEAN NULL DEFAULT false,
394
- `first_login_at` DATETIME(0) NULL,
395
- `created_at` DATETIME(0) NOT NULL,
396
- `updated_at` DATETIME(0) NOT NULL,
397
- `GroupCode` VARCHAR(10) NULL,
398
-
399
- UNIQUE INDEX `email`(`email`),
400
- INDEX `sso_users_GroupCode_foreign_idx`(`GroupCode`),
401
- PRIMARY KEY (`id`)
402
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
403
-
404
- -- CreateTable
405
- CREATE TABLE `sso_usersystemprivilege` (
406
- `UserId` INTEGER NOT NULL,
407
- `PrivilegeId` VARCHAR(30) NOT NULL,
408
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
409
- `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
410
-
411
- INDEX `PrivilegeId`(`PrivilegeId`),
412
- PRIMARY KEY (`UserId`, `PrivilegeId`)
413
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
414
-
415
- -- CreateTable
416
- CREATE TABLE `sso_usersystemrole` (
417
- `UserId` INTEGER NOT NULL,
418
- `RoleId` VARCHAR(30) NOT NULL,
419
- `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
420
- `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
421
-
422
- INDEX `RoleId`(`RoleId`),
423
- PRIMARY KEY (`UserId`, `RoleId`)
424
- ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
425
-
426
- -- AddForeignKey
427
- ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_building_id` FOREIGN KEY (`building_id`) REFERENCES `sso_buildings`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
428
-
429
- -- AddForeignKey
430
- ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_created_by_id` FOREIGN KEY (`created_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
431
-
432
- -- AddForeignKey
433
- ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_updated_by_id` FOREIGN KEY (`updated_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
434
-
435
- -- AddForeignKey
436
- ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_GroupRolePrivilege_SystemId_foreign_idx` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
437
-
438
- -- AddForeignKey
439
- ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
440
-
441
- -- AddForeignKey
442
- ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_2` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
443
-
444
- -- AddForeignKey
445
- ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_3` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
446
-
447
- -- AddForeignKey
448
- ALTER TABLE `sso_groupsystemaccess` ADD CONSTRAINT `sso_groupsystemaccess_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
449
-
450
- -- AddForeignKey
451
- ALTER TABLE `sso_groupsystemprivilege` ADD CONSTRAINT `sso_groupsystemprivilege_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
452
-
453
- -- AddForeignKey
454
- ALTER TABLE `sso_groupsystemprivilege` ADD CONSTRAINT `sso_groupsystemprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
455
-
456
- -- AddForeignKey
457
- ALTER TABLE `sso_groupsystemrole` ADD CONSTRAINT `sso_groupsystemrole_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE RESTRICT ON UPDATE RESTRICT;
458
-
459
- -- AddForeignKey
460
- ALTER TABLE `sso_groupsystemrole` ADD CONSTRAINT `sso_groupsystemrole_ibfk_2` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE RESTRICT ON UPDATE RESTRICT;
461
-
462
- -- AddForeignKey
463
- ALTER TABLE `sso_oauth_tokens` ADD CONSTRAINT `sso_oauth_tokens_system_id_foreign_idx` FOREIGN KEY (`system_id`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
464
-
465
- -- AddForeignKey
466
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_building_id` FOREIGN KEY (`building_id`) REFERENCES `sso_buildings`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
467
-
468
- -- AddForeignKey
469
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_company_id` FOREIGN KEY (`company_id`) REFERENCES `sso_companies`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
470
-
471
- -- AddForeignKey
472
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_created_by_id` FOREIGN KEY (`created_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
473
-
474
- -- AddForeignKey
475
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_department_id` FOREIGN KEY (`department_id`) REFERENCES `sso_departments`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
476
-
477
- -- AddForeignKey
478
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_staff_type_id` FOREIGN KEY (`staff_type_id`) REFERENCES `sso_staff_types`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
479
-
480
- -- AddForeignKey
481
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_updated_by_id` FOREIGN KEY (`updated_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
482
-
483
- -- AddForeignKey
484
- ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_user_id` FOREIGN KEY (`user_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
485
-
486
- -- AddForeignKey
487
- ALTER TABLE `sso_system_accesses` ADD CONSTRAINT `fk_system_access_system` FOREIGN KEY (`system_id`) REFERENCES `sso_systems`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
488
-
489
- -- AddForeignKey
490
- ALTER TABLE `sso_system_accesses` ADD CONSTRAINT `fk_system_access_user` FOREIGN KEY (`user_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
491
-
492
- -- AddForeignKey
493
- ALTER TABLE `sso_systemprivilege` ADD CONSTRAINT `sso_systemprivilege_ibfk_1` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
494
-
495
- -- AddForeignKey
496
- ALTER TABLE `sso_systemrole` ADD CONSTRAINT `sso_systemrole_ibfk_1` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
497
-
498
- -- AddForeignKey
499
- ALTER TABLE `sso_systemroleprivilege` ADD CONSTRAINT `sso_systemroleprivilege_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
500
-
501
- -- AddForeignKey
502
- ALTER TABLE `sso_systemroleprivilege` ADD CONSTRAINT `sso_systemroleprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
503
-
504
- -- AddForeignKey
505
- ALTER TABLE `sso_usergroup` ADD CONSTRAINT `sso_UserGroup_DepartmentId_foreign_idx` FOREIGN KEY (`DepartmentId`) REFERENCES `sso_departments`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
506
-
507
- -- AddForeignKey
508
- ALTER TABLE `sso_users` ADD CONSTRAINT `sso_users_GroupCode_foreign_idx` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE RESTRICT ON UPDATE RESTRICT;
509
-
510
- -- AddForeignKey
511
- ALTER TABLE `sso_usersystemprivilege` ADD CONSTRAINT `sso_usersystemprivilege_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
512
-
513
- -- AddForeignKey
514
- ALTER TABLE `sso_usersystemprivilege` ADD CONSTRAINT `sso_usersystemprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
515
-
516
- -- AddForeignKey
517
- ALTER TABLE `sso_usersystemrole` ADD CONSTRAINT `sso_usersystemrole_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
518
-
519
- -- AddForeignKey
520
- ALTER TABLE `sso_usersystemrole` ADD CONSTRAINT `sso_usersystemrole_ibfk_2` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
521
-
1
+ -- CreateTable
2
+ CREATE TABLE `sso_authorization_codes` (
3
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
4
+ `user_id` INTEGER NOT NULL,
5
+ `system_id` INTEGER NOT NULL,
6
+ `code` VARCHAR(255) NOT NULL,
7
+ `expired_at` DATETIME(0) NOT NULL,
8
+ `created_at` DATETIME(0) NOT NULL,
9
+ `updated_at` DATETIME(0) NOT NULL,
10
+ `status` VARCHAR(255) NULL DEFAULT 'unused',
11
+
12
+ UNIQUE INDEX `code`(`code`),
13
+ PRIMARY KEY (`id`)
14
+ ) DEFAULT CHARACTER SET latin1;
15
+
16
+ -- CreateTable
17
+ CREATE TABLE `sso_bearer_tokens` (
18
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
19
+ `user_id` INTEGER NOT NULL,
20
+ `token` VARCHAR(255) NOT NULL,
21
+ `expired_at` DATETIME(0) NOT NULL,
22
+ `created_at` DATETIME(0) NOT NULL,
23
+ `updated_at` DATETIME(0) NOT NULL,
24
+
25
+ UNIQUE INDEX `token`(`token`),
26
+ PRIMARY KEY (`id`)
27
+ ) DEFAULT CHARACTER SET latin1;
28
+
29
+ -- CreateTable
30
+ CREATE TABLE `sso_building_types` (
31
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
32
+ `name` VARCHAR(50) NOT NULL,
33
+ `created_at` DATETIME(0) NOT NULL,
34
+ `updated_at` DATETIME(0) NOT NULL,
35
+
36
+ PRIMARY KEY (`id`)
37
+ ) DEFAULT CHARACTER SET latin1;
38
+
39
+ -- CreateTable
40
+ CREATE TABLE `sso_buildings` (
41
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
42
+ `name` VARCHAR(200) NULL,
43
+ `code` VARCHAR(10) NOT NULL,
44
+ `building_type_id` INTEGER NOT NULL,
45
+ `status` VARCHAR(10) NOT NULL,
46
+ `email` VARCHAR(200) NULL,
47
+ `mobile` VARCHAR(20) NULL,
48
+ `phone` VARCHAR(20) NOT NULL,
49
+ `address` VARCHAR(1000) NOT NULL,
50
+ `postcode` VARCHAR(10) NOT NULL,
51
+ `longitude` DECIMAL(11, 8) NULL,
52
+ `latitude` DECIMAL(10, 8) NULL,
53
+ `country_id` INTEGER NOT NULL,
54
+ `state` VARCHAR(50) NOT NULL,
55
+ `city` VARCHAR(50) NOT NULL,
56
+ `created_by_id` INTEGER NULL,
57
+ `updated_by_id` INTEGER NULL,
58
+ `created_at` DATETIME(0) NOT NULL,
59
+ `updated_at` DATETIME(0) NOT NULL,
60
+ `brand` VARCHAR(100) NULL,
61
+ `area_staff_id` INTEGER NULL,
62
+ `opening_date` DATETIME(0) NULL,
63
+ `ceased_date` DATETIME(0) NULL,
64
+ `opening_hours` VARCHAR(200) NULL,
65
+ `image` VARCHAR(200) NULL,
66
+
67
+ UNIQUE INDEX `code`(`code`),
68
+ PRIMARY KEY (`id`)
69
+ ) DEFAULT CHARACTER SET latin1;
70
+
71
+ -- CreateTable
72
+ CREATE TABLE `sso_cities` (
73
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
74
+ `name` VARCHAR(255) NULL,
75
+ `state_id` INTEGER NULL,
76
+ `postcode` VARCHAR(255) NULL,
77
+ `created_at` DATETIME(0) NOT NULL,
78
+ `updated_at` DATETIME(0) NOT NULL,
79
+
80
+ PRIMARY KEY (`id`)
81
+ ) DEFAULT CHARACTER SET latin1;
82
+
83
+ -- CreateTable
84
+ CREATE TABLE `sso_companies` (
85
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
86
+ `code` VARCHAR(10) NOT NULL,
87
+ `name` VARCHAR(200) NOT NULL,
88
+ `description` VARCHAR(3000) NULL,
89
+ `logo` TEXT NULL,
90
+ `status` VARCHAR(10) NOT NULL,
91
+ `created_by_id` INTEGER NULL,
92
+ `updated_by_id` INTEGER NULL,
93
+ `created_at` DATETIME(0) NOT NULL,
94
+ `updated_at` DATETIME(0) NOT NULL,
95
+
96
+ UNIQUE INDEX `code`(`code`),
97
+ PRIMARY KEY (`id`)
98
+ ) DEFAULT CHARACTER SET latin1;
99
+
100
+ -- CreateTable
101
+ CREATE TABLE `sso_countries` (
102
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
103
+ `code` VARCHAR(255) NOT NULL,
104
+ `name` VARCHAR(100) NOT NULL,
105
+ `phonecode` VARCHAR(255) NULL,
106
+ `created_at` DATETIME(0) NOT NULL,
107
+ `updated_at` DATETIME(0) NOT NULL,
108
+
109
+ UNIQUE INDEX `code`(`code`),
110
+ PRIMARY KEY (`id`)
111
+ ) DEFAULT CHARACTER SET latin1;
112
+
113
+ -- CreateTable
114
+ CREATE TABLE `sso_departments` (
115
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
116
+ `code` VARCHAR(10) NOT NULL,
117
+ `building_id` INTEGER NULL,
118
+ `status` VARCHAR(10) NOT NULL,
119
+ `name` VARCHAR(100) NOT NULL,
120
+ `created_by_id` INTEGER NULL,
121
+ `updated_by_id` INTEGER NULL,
122
+ `created_at` DATETIME(0) NOT NULL,
123
+ `updated_at` DATETIME(0) NOT NULL,
124
+
125
+ UNIQUE INDEX `code`(`code`),
126
+ INDEX `fk_departments_building_id`(`building_id`),
127
+ INDEX `fk_departments_created_by_id`(`created_by_id`),
128
+ INDEX `fk_departments_updated_by_id`(`updated_by_id`),
129
+ PRIMARY KEY (`id`)
130
+ ) DEFAULT CHARACTER SET latin1;
131
+
132
+ -- CreateTable
133
+ CREATE TABLE `sso_grouproleprivilege` (
134
+ `GroupCode` VARCHAR(10) NOT NULL,
135
+ `RoleId` VARCHAR(30) NOT NULL,
136
+ `PrivilegeId` VARCHAR(30) NOT NULL,
137
+ `CreatedById` INTEGER NOT NULL,
138
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2023-01-03 17:13:45'),
139
+ `SystemId` INTEGER NOT NULL DEFAULT 1,
140
+
141
+ INDEX `privilegeId`(`PrivilegeId`),
142
+ INDEX `roleId`(`RoleId`),
143
+ INDEX `sso_GroupRolePrivilege_SystemId_foreign_idx`(`SystemId`),
144
+ PRIMARY KEY (`GroupCode`, `RoleId`, `PrivilegeId`, `SystemId`)
145
+ ) DEFAULT CHARACTER SET latin1;
146
+
147
+ -- CreateTable
148
+ CREATE TABLE `sso_groupsystemaccess` (
149
+ `SystemId` INTEGER NOT NULL,
150
+ `GroupCode` VARCHAR(10) NOT NULL,
151
+ `CreatedById` INTEGER NOT NULL,
152
+ `createdAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:41'),
153
+
154
+ INDEX `groupCode`(`GroupCode`),
155
+ PRIMARY KEY (`SystemId`, `GroupCode`)
156
+ ) DEFAULT CHARACTER SET latin1;
157
+
158
+ -- CreateTable
159
+ CREATE TABLE `sso_groupsystemprivilege` (
160
+ `GroupCode` VARCHAR(10) NOT NULL,
161
+ `PrivilegeId` VARCHAR(30) NOT NULL,
162
+ `CreatedById` VARCHAR(30) NOT NULL,
163
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:40'),
164
+
165
+ INDEX `privilegeId`(`PrivilegeId`),
166
+ PRIMARY KEY (`GroupCode`, `PrivilegeId`)
167
+ ) DEFAULT CHARACTER SET latin1;
168
+
169
+ -- CreateTable
170
+ CREATE TABLE `sso_groupsystemrole` (
171
+ `RoleId` VARCHAR(30) NOT NULL,
172
+ `GroupCode` VARCHAR(10) NOT NULL,
173
+ `CreatedById` VARCHAR(30) NOT NULL,
174
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2022-06-29 01:16:39'),
175
+
176
+ INDEX `groupCode`(`GroupCode`),
177
+ PRIMARY KEY (`RoleId`, `GroupCode`)
178
+ ) DEFAULT CHARACTER SET latin1;
179
+
180
+ -- CreateTable
181
+ CREATE TABLE `sso_oauth_tokens` (
182
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
183
+ `user_id` INTEGER NOT NULL,
184
+ `token` TEXT NOT NULL,
185
+ `expired_at` DATETIME(0) NOT NULL,
186
+ `created_at` DATETIME(0) NOT NULL,
187
+ `updated_at` DATETIME(0) NOT NULL,
188
+ `system_id` INTEGER NOT NULL DEFAULT 1,
189
+
190
+ INDEX `sso_oauth_tokens_system_id_foreign_idx`(`system_id`),
191
+ PRIMARY KEY (`id`)
192
+ ) DEFAULT CHARACTER SET latin1;
193
+
194
+ -- CreateTable
195
+ CREATE TABLE `sso_roles` (
196
+ `ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
197
+ `name` VARCHAR(255) NOT NULL,
198
+ `description` TEXT NULL,
199
+ `default_to_on` BOOLEAN NOT NULL,
200
+ `parent_id` INTEGER NULL,
201
+ `created_at` DATETIME(0) NOT NULL,
202
+ `updated_at` DATETIME(0) NOT NULL,
203
+
204
+ PRIMARY KEY (`ID`)
205
+ ) DEFAULT CHARACTER SET latin1;
206
+
207
+ -- CreateTable
208
+ CREATE TABLE `sso_staff_types` (
209
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
210
+ `name` VARCHAR(20) NOT NULL,
211
+ `created_at` DATETIME(0) NOT NULL,
212
+ `updated_at` DATETIME(0) NOT NULL,
213
+
214
+ PRIMARY KEY (`id`)
215
+ ) DEFAULT CHARACTER SET latin1;
216
+
217
+ -- CreateTable
218
+ CREATE TABLE `sso_staffs` (
219
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
220
+ `staff_id` VARCHAR(10) NOT NULL,
221
+ `full_name` VARCHAR(200) NOT NULL,
222
+ `preferred_name` VARCHAR(200) NOT NULL,
223
+ `email` VARCHAR(200) NOT NULL,
224
+ `staff_type_id` INTEGER NOT NULL,
225
+ `job_title` VARCHAR(100) NOT NULL,
226
+ `car_plate` VARCHAR(20) NOT NULL DEFAULT '',
227
+ `mobile` VARCHAR(20) NULL,
228
+ `floor` VARCHAR(15) NULL,
229
+ `extension` INTEGER NULL,
230
+ `is_charge` BOOLEAN NOT NULL DEFAULT false,
231
+ `status` VARCHAR(10) NOT NULL,
232
+ `user_id` INTEGER NOT NULL,
233
+ `building_id` INTEGER NOT NULL,
234
+ `department_id` INTEGER NOT NULL,
235
+ `company_id` INTEGER NULL,
236
+ `created_by_id` INTEGER NULL,
237
+ `updated_by_id` INTEGER NULL,
238
+ `created_at` DATETIME(0) NOT NULL,
239
+ `updated_at` DATETIME(0) NOT NULL,
240
+ `image` VARCHAR(255) NULL,
241
+ `IdNo` VARCHAR(20) NULL,
242
+ `FullAddress` VARCHAR(1000) NULL,
243
+
244
+ UNIQUE INDEX `staff_id`(`staff_id`),
245
+ INDEX `fk_staffs_building_id`(`building_id`),
246
+ INDEX `fk_staffs_company_id`(`company_id`),
247
+ INDEX `fk_staffs_created_by_id`(`created_by_id`),
248
+ INDEX `fk_staffs_department_id`(`department_id`),
249
+ INDEX `fk_staffs_staff_type_id`(`staff_type_id`),
250
+ INDEX `fk_staffs_updated_by_id`(`updated_by_id`),
251
+ INDEX `fk_staffs_user_id`(`user_id`),
252
+ PRIMARY KEY (`id`)
253
+ ) DEFAULT CHARACTER SET latin1;
254
+
255
+ -- CreateTable
256
+ CREATE TABLE `sso_states` (
257
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
258
+ `name` VARCHAR(50) NOT NULL,
259
+ `country_id` INTEGER NULL,
260
+ `created_at` DATETIME(0) NOT NULL,
261
+ `updated_at` DATETIME(0) NOT NULL,
262
+
263
+ PRIMARY KEY (`id`)
264
+ ) DEFAULT CHARACTER SET latin1;
265
+
266
+ -- CreateTable
267
+ CREATE TABLE `sso_system_accesses` (
268
+ `user_id` INTEGER NOT NULL,
269
+ `system_id` INTEGER NOT NULL,
270
+ `updated_at` DATETIME(0) NOT NULL,
271
+
272
+ INDEX `fk_system_access_system`(`system_id`),
273
+ PRIMARY KEY (`user_id`, `system_id`)
274
+ ) DEFAULT CHARACTER SET latin1;
275
+
276
+ -- CreateTable
277
+ CREATE TABLE `sso_systemprivilege` (
278
+ `PrivilegeId` VARCHAR(30) NOT NULL,
279
+ `SystemId` INTEGER NOT NULL,
280
+ `Code` VARCHAR(200) NOT NULL,
281
+ `Description` VARCHAR(3000) NULL,
282
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:19'),
283
+ `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:19'),
284
+
285
+ INDEX `systemId`(`SystemId`),
286
+ PRIMARY KEY (`PrivilegeId`)
287
+ ) DEFAULT CHARACTER SET latin1;
288
+
289
+ -- CreateTable
290
+ CREATE TABLE `sso_systemrole` (
291
+ `RoleId` VARCHAR(30) NOT NULL,
292
+ `SystemId` INTEGER NOT NULL,
293
+ `Name` VARCHAR(100) NOT NULL,
294
+ `Description` VARCHAR(3000) NULL,
295
+ `CreatedById` INTEGER NOT NULL,
296
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
297
+ `UpdatedById` INTEGER NOT NULL,
298
+ `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
299
+
300
+ INDEX `systemId`(`SystemId`),
301
+ PRIMARY KEY (`RoleId`)
302
+ ) DEFAULT CHARACTER SET latin1;
303
+
304
+ -- CreateTable
305
+ CREATE TABLE `sso_systemroleprivilege` (
306
+ `RoleId` VARCHAR(30) NOT NULL,
307
+ `PrivilegeId` VARCHAR(30) NOT NULL,
308
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
309
+ `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
310
+
311
+ INDEX `privilegeId`(`PrivilegeId`),
312
+ PRIMARY KEY (`RoleId`, `PrivilegeId`)
313
+ ) DEFAULT CHARACTER SET latin1;
314
+
315
+ -- CreateTable
316
+ CREATE TABLE `sso_systems` (
317
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
318
+ `code` VARCHAR(10) NOT NULL,
319
+ `name` VARCHAR(200) NOT NULL,
320
+ `description` VARCHAR(500) NOT NULL,
321
+ `access_url` VARCHAR(2000) NULL,
322
+ `google_play_url` VARCHAR(2000) NULL,
323
+ `apple_store_url` VARCHAR(2000) NULL,
324
+ `api_key` VARCHAR(255) NULL,
325
+ `logo` VARCHAR(255) NULL,
326
+ `status` VARCHAR(10) NOT NULL,
327
+ `visible` BOOLEAN NOT NULL DEFAULT true,
328
+ `created_at` DATETIME(0) NOT NULL,
329
+ `updated_at` DATETIME(0) NOT NULL,
330
+ `api_secret` VARCHAR(255) NULL,
331
+ `updated_by_id` INTEGER NULL,
332
+ `created_by_id` INTEGER NULL,
333
+
334
+ UNIQUE INDEX `code`(`code`),
335
+ PRIMARY KEY (`id`)
336
+ ) DEFAULT CHARACTER SET latin1;
337
+
338
+ -- CreateTable
339
+ CREATE TABLE `sso_updated_history` (
340
+ `HistoryId` BIGINT NOT NULL AUTO_INCREMENT,
341
+ `BatchId` VARCHAR(30) NULL,
342
+ `ObjectType` VARCHAR(50) NOT NULL,
343
+ `ObjectValue` VARCHAR(50) NOT NULL,
344
+ `ActionType` ENUM('Add', 'Update', 'Delete') NOT NULL,
345
+ `UpdatedFieldName` VARCHAR(100) NOT NULL,
346
+ `OldValue` VARCHAR(1000) NULL,
347
+ `NewValue` VARCHAR(1000) NULL,
348
+ `updatedById` INTEGER NOT NULL,
349
+ `updatedAt` DATETIME(0) NOT NULL,
350
+
351
+ PRIMARY KEY (`HistoryId`)
352
+ ) DEFAULT CHARACTER SET latin1;
353
+
354
+ -- CreateTable
355
+ CREATE TABLE `sso_user_roles` (
356
+ `user_id` INTEGER NOT NULL,
357
+ `role_id` INTEGER NOT NULL,
358
+ `updated_by_id` INTEGER NULL,
359
+ `updated_at` DATETIME(0) NOT NULL,
360
+
361
+ PRIMARY KEY (`user_id`, `role_id`)
362
+ ) DEFAULT CHARACTER SET latin1;
363
+
364
+ -- CreateTable
365
+ CREATE TABLE `sso_usergroup` (
366
+ `GroupCode` VARCHAR(10) NOT NULL,
367
+ `GroupDescription` VARCHAR(100) NULL,
368
+ `Status` ENUM('Active', 'Inactive') NULL,
369
+ `CreatedById` VARCHAR(30) NULL,
370
+ `CreatedAt` DATETIME(0) NULL DEFAULT ('2022-06-29 01:16:39'),
371
+ `UpdatedById` VARCHAR(30) NULL,
372
+ `UpdatedAt` DATETIME(0) NULL DEFAULT ('2022-06-29 01:16:39'),
373
+ `DepartmentId` INTEGER NULL,
374
+
375
+ INDEX `sso_UserGroup_DepartmentId_foreign_idx`(`DepartmentId`),
376
+ PRIMARY KEY (`GroupCode`)
377
+ ) DEFAULT CHARACTER SET latin1;
378
+
379
+ -- CreateTable
380
+ CREATE TABLE `sso_users` (
381
+ `id` INTEGER NOT NULL AUTO_INCREMENT,
382
+ `email` VARCHAR(255) NOT NULL,
383
+ `password` VARCHAR(255) NOT NULL,
384
+ `status` VARCHAR(255) NULL,
385
+ `default_password_changed` BOOLEAN NULL DEFAULT false,
386
+ `first_login_at` DATETIME(0) NULL,
387
+ `created_at` DATETIME(0) NOT NULL,
388
+ `updated_at` DATETIME(0) NOT NULL,
389
+ `GroupCode` VARCHAR(10) NULL,
390
+
391
+ UNIQUE INDEX `email`(`email`),
392
+ INDEX `sso_users_GroupCode_foreign_idx`(`GroupCode`),
393
+ PRIMARY KEY (`id`)
394
+ ) DEFAULT CHARACTER SET latin1;
395
+
396
+ -- CreateTable
397
+ CREATE TABLE `sso_usersystemprivilege` (
398
+ `UserId` INTEGER NOT NULL,
399
+ `PrivilegeId` VARCHAR(30) NOT NULL,
400
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
401
+ `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
402
+
403
+ INDEX `privilegeId`(`PrivilegeId`),
404
+ PRIMARY KEY (`UserId`, `PrivilegeId`)
405
+ ) DEFAULT CHARACTER SET latin1;
406
+
407
+ -- CreateTable
408
+ CREATE TABLE `sso_usersystemrole` (
409
+ `UserId` INTEGER NOT NULL,
410
+ `RoleId` VARCHAR(30) NOT NULL,
411
+ `CreatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
412
+ `UpdatedAt` DATETIME(0) NOT NULL DEFAULT ('2021-10-25 02:50:20'),
413
+
414
+ INDEX `roleId`(`RoleId`),
415
+ PRIMARY KEY (`UserId`, `RoleId`)
416
+ ) DEFAULT CHARACTER SET latin1;
417
+
418
+ -- AddForeignKey
419
+ ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_building_id` FOREIGN KEY (`building_id`) REFERENCES `sso_buildings`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
420
+
421
+ -- AddForeignKey
422
+ ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_created_by_id` FOREIGN KEY (`created_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
423
+
424
+ -- AddForeignKey
425
+ ALTER TABLE `sso_departments` ADD CONSTRAINT `fk_departments_updated_by_id` FOREIGN KEY (`updated_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
426
+
427
+ -- AddForeignKey
428
+ ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_GroupRolePrivilege_SystemId_foreign_idx` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
429
+
430
+ -- AddForeignKey
431
+ ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
432
+
433
+ -- AddForeignKey
434
+ ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_2` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
435
+
436
+ -- AddForeignKey
437
+ ALTER TABLE `sso_grouproleprivilege` ADD CONSTRAINT `sso_grouproleprivilege_ibfk_3` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
438
+
439
+ -- AddForeignKey
440
+ ALTER TABLE `sso_groupsystemaccess` ADD CONSTRAINT `sso_groupsystemaccess_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
441
+
442
+ -- AddForeignKey
443
+ ALTER TABLE `sso_groupsystemprivilege` ADD CONSTRAINT `sso_groupsystemprivilege_ibfk_1` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE CASCADE ON UPDATE CASCADE;
444
+
445
+ -- AddForeignKey
446
+ ALTER TABLE `sso_groupsystemprivilege` ADD CONSTRAINT `sso_groupsystemprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
447
+
448
+ -- AddForeignKey
449
+ ALTER TABLE `sso_groupsystemrole` ADD CONSTRAINT `sso_groupsystemrole_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE RESTRICT ON UPDATE RESTRICT;
450
+
451
+ -- AddForeignKey
452
+ ALTER TABLE `sso_groupsystemrole` ADD CONSTRAINT `sso_groupsystemrole_ibfk_2` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE RESTRICT ON UPDATE RESTRICT;
453
+
454
+ -- AddForeignKey
455
+ ALTER TABLE `sso_oauth_tokens` ADD CONSTRAINT `sso_oauth_tokens_system_id_foreign_idx` FOREIGN KEY (`system_id`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
456
+
457
+ -- AddForeignKey
458
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_building_id` FOREIGN KEY (`building_id`) REFERENCES `sso_buildings`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
459
+
460
+ -- AddForeignKey
461
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_company_id` FOREIGN KEY (`company_id`) REFERENCES `sso_companies`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
462
+
463
+ -- AddForeignKey
464
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_created_by_id` FOREIGN KEY (`created_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
465
+
466
+ -- AddForeignKey
467
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_department_id` FOREIGN KEY (`department_id`) REFERENCES `sso_departments`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
468
+
469
+ -- AddForeignKey
470
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_staff_type_id` FOREIGN KEY (`staff_type_id`) REFERENCES `sso_staff_types`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
471
+
472
+ -- AddForeignKey
473
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_updated_by_id` FOREIGN KEY (`updated_by_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
474
+
475
+ -- AddForeignKey
476
+ ALTER TABLE `sso_staffs` ADD CONSTRAINT `fk_staffs_user_id` FOREIGN KEY (`user_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
477
+
478
+ -- AddForeignKey
479
+ ALTER TABLE `sso_system_accesses` ADD CONSTRAINT `fk_system_access_system` FOREIGN KEY (`system_id`) REFERENCES `sso_systems`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
480
+
481
+ -- AddForeignKey
482
+ ALTER TABLE `sso_system_accesses` ADD CONSTRAINT `fk_system_access_user` FOREIGN KEY (`user_id`) REFERENCES `sso_users`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
483
+
484
+ -- AddForeignKey
485
+ ALTER TABLE `sso_systemprivilege` ADD CONSTRAINT `sso_systemprivilege_ibfk_1` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
486
+
487
+ -- AddForeignKey
488
+ ALTER TABLE `sso_systemrole` ADD CONSTRAINT `sso_systemrole_ibfk_1` FOREIGN KEY (`SystemId`) REFERENCES `sso_systems`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
489
+
490
+ -- AddForeignKey
491
+ ALTER TABLE `sso_systemroleprivilege` ADD CONSTRAINT `sso_systemroleprivilege_ibfk_1` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;
492
+
493
+ -- AddForeignKey
494
+ ALTER TABLE `sso_systemroleprivilege` ADD CONSTRAINT `sso_systemroleprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
495
+
496
+ -- AddForeignKey
497
+ ALTER TABLE `sso_usergroup` ADD CONSTRAINT `sso_UserGroup_DepartmentId_foreign_idx` FOREIGN KEY (`DepartmentId`) REFERENCES `sso_departments`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
498
+
499
+ -- AddForeignKey
500
+ ALTER TABLE `sso_users` ADD CONSTRAINT `sso_users_GroupCode_foreign_idx` FOREIGN KEY (`GroupCode`) REFERENCES `sso_usergroup`(`GroupCode`) ON DELETE RESTRICT ON UPDATE RESTRICT;
501
+
502
+ -- AddForeignKey
503
+ ALTER TABLE `sso_usersystemprivilege` ADD CONSTRAINT `sso_usersystemprivilege_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
504
+
505
+ -- AddForeignKey
506
+ ALTER TABLE `sso_usersystemprivilege` ADD CONSTRAINT `sso_usersystemprivilege_ibfk_2` FOREIGN KEY (`PrivilegeId`) REFERENCES `sso_systemprivilege`(`PrivilegeId`) ON DELETE CASCADE ON UPDATE CASCADE;
507
+
508
+ -- AddForeignKey
509
+ ALTER TABLE `sso_usersystemrole` ADD CONSTRAINT `sso_usersystemrole_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `sso_users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
510
+
511
+ -- AddForeignKey
512
+ ALTER TABLE `sso_usersystemrole` ADD CONSTRAINT `sso_usersystemrole_ibfk_2` FOREIGN KEY (`RoleId`) REFERENCES `sso_systemrole`(`RoleId`) ON DELETE CASCADE ON UPDATE CASCADE;