@tomei/rental 0.17.1 → 0.17.3-dev.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 (140) hide show
  1. package/.husky/commit-msg +0 -6
  2. package/dist/src/components/agreement-signature/hirer-signature.d.ts +27 -0
  3. package/dist/src/components/agreement-signature/hirer-signature.js +112 -0
  4. package/dist/src/components/agreement-signature/hirer-signature.js.map +1 -0
  5. package/dist/src/components/agreement-signature/hirer-signature.repository.d.ts +8 -0
  6. package/dist/src/components/agreement-signature/hirer-signature.repository.js +67 -0
  7. package/dist/src/components/agreement-signature/hirer-signature.repository.js.map +1 -0
  8. package/dist/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.d.ts +32 -0
  9. package/dist/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.js +121 -0
  10. package/dist/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.js.map +1 -0
  11. package/dist/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.d.ts +9 -0
  12. package/dist/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.js +79 -0
  13. package/dist/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.js.map +1 -0
  14. package/dist/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.d.ts +22 -0
  15. package/dist/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.js +104 -0
  16. package/dist/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.js.map +1 -0
  17. package/dist/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.d.ts +9 -0
  18. package/dist/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.js +80 -0
  19. package/dist/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.js.map +1 -0
  20. package/dist/src/components/hirer-change-request-signature/hirer-change-request-signature.d.ts +30 -0
  21. package/dist/src/components/hirer-change-request-signature/hirer-change-request-signature.js +224 -0
  22. package/dist/src/components/hirer-change-request-signature/hirer-change-request-signature.js.map +1 -0
  23. package/dist/src/components/hirer-change-request-signature/hirer-change-request-signature.repository.d.ts +9 -0
  24. package/dist/src/components/hirer-change-request-signature/hirer-change-request-signature.repository.js +80 -0
  25. package/dist/src/components/hirer-change-request-signature/hirer-change-request-signature.repository.js.map +1 -0
  26. package/dist/src/components/hirer-signature/hirer-signature.d.ts +27 -0
  27. package/dist/src/components/hirer-signature/hirer-signature.js +112 -0
  28. package/dist/src/components/hirer-signature/hirer-signature.js.map +1 -0
  29. package/dist/src/components/hirer-signature/hirer-signature.repository.d.ts +8 -0
  30. package/dist/src/components/hirer-signature/hirer-signature.repository.js +67 -0
  31. package/dist/src/components/hirer-signature/hirer-signature.repository.js.map +1 -0
  32. package/dist/src/components/joint-hirer/joint-hirer.d.ts +3 -0
  33. package/dist/src/components/joint-hirer/joint-hirer.js +46 -0
  34. package/dist/src/components/joint-hirer/joint-hirer.js.map +1 -1
  35. package/dist/src/components/rental/rental.d.ts +1 -0
  36. package/dist/src/components/rental/rental.js +28 -0
  37. package/dist/src/components/rental/rental.js.map +1 -1
  38. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.d.ts +70 -0
  39. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.js +570 -0
  40. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.js.map +1 -0
  41. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.repository.d.ts +9 -0
  42. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.repository.js +79 -0
  43. package/dist/src/components/rental-hirer-change-request/rental-hirer-change-request.repository.js.map +1 -0
  44. package/dist/src/database.js +8 -0
  45. package/dist/src/database.js.map +1 -1
  46. package/dist/src/enum/hirer-signature-status.enum.d.ts +4 -0
  47. package/dist/src/enum/hirer-signature-status.enum.js +9 -0
  48. package/dist/src/enum/hirer-signature-status.enum.js.map +1 -0
  49. package/dist/src/enum/index.d.ts +4 -1
  50. package/dist/src/enum/index.js +7 -1
  51. package/dist/src/enum/index.js.map +1 -1
  52. package/dist/src/enum/rental-hirer-change-request-hirer-role.d.ts +4 -0
  53. package/dist/src/enum/rental-hirer-change-request-hirer-role.js +9 -0
  54. package/dist/src/enum/rental-hirer-change-request-hirer-role.js.map +1 -0
  55. package/dist/src/enum/rental-hirer-change-request-status.d.ts +7 -0
  56. package/dist/src/enum/rental-hirer-change-request-status.js +12 -0
  57. package/dist/src/enum/rental-hirer-change-request-status.js.map +1 -0
  58. package/dist/src/enum/rental-hirer-change-request-type.d.ts +4 -0
  59. package/dist/src/enum/rental-hirer-change-request-type.js +9 -0
  60. package/dist/src/enum/rental-hirer-change-request-type.js.map +1 -0
  61. package/dist/src/index.d.ts +9 -1
  62. package/dist/src/index.js +17 -1
  63. package/dist/src/index.js.map +1 -1
  64. package/dist/src/interfaces/hirer-change-request-new-hirer-attr.interface.d.ts +15 -0
  65. package/dist/src/interfaces/hirer-change-request-new-hirer-attr.interface.js +3 -0
  66. package/dist/src/interfaces/hirer-change-request-new-hirer-attr.interface.js.map +1 -0
  67. package/dist/src/interfaces/hirer-change-request-remove-hirer-attr.interface.d.ts +5 -0
  68. package/dist/src/interfaces/hirer-change-request-remove-hirer-attr.interface.js +3 -0
  69. package/dist/src/interfaces/hirer-change-request-remove-hirer-attr.interface.js.map +1 -0
  70. package/dist/src/interfaces/hirer-change-request-signature-attr.interface.d.ts +14 -0
  71. package/dist/src/interfaces/hirer-change-request-signature-attr.interface.js +3 -0
  72. package/dist/src/interfaces/hirer-change-request-signature-attr.interface.js.map +1 -0
  73. package/dist/src/interfaces/hirer-signature-attr.interface.d.ts +14 -0
  74. package/dist/src/interfaces/hirer-signature-attr.interface.js +3 -0
  75. package/dist/src/interfaces/hirer-signature-attr.interface.js.map +1 -0
  76. package/dist/src/interfaces/index.d.ts +6 -1
  77. package/dist/src/interfaces/joint-hirer-attr.interface.d.ts +1 -0
  78. package/dist/src/interfaces/rental-hirer-change-request.attr.interface.d.ts +16 -0
  79. package/dist/src/interfaces/rental-hirer-change-request.attr.interface.js +3 -0
  80. package/dist/src/interfaces/rental-hirer-change-request.attr.interface.js.map +1 -0
  81. package/dist/src/interfaces/rental-hirer-change-request.update.interface.d.ts +4 -0
  82. package/dist/src/interfaces/rental-hirer-change-request.update.interface.js +3 -0
  83. package/dist/src/interfaces/rental-hirer-change-request.update.interface.js.map +1 -0
  84. package/dist/src/models/hirer-change-request-new-hirer.entity.d.ts +19 -0
  85. package/dist/src/models/hirer-change-request-new-hirer.entity.js +121 -0
  86. package/dist/src/models/hirer-change-request-new-hirer.entity.js.map +1 -0
  87. package/dist/src/models/hirer-change-request-remove-hirer.entity.d.ts +11 -0
  88. package/dist/src/models/hirer-change-request-remove-hirer.entity.js +57 -0
  89. package/dist/src/models/hirer-change-request-remove-hirer.entity.js.map +1 -0
  90. package/dist/src/models/hirer-change-request-signature.entity.d.ts +18 -0
  91. package/dist/src/models/hirer-change-request-signature.entity.js +101 -0
  92. package/dist/src/models/hirer-change-request-signature.entity.js.map +1 -0
  93. package/dist/src/models/hirer-signature.entity.d.ts +16 -0
  94. package/dist/src/models/hirer-signature.entity.js +100 -0
  95. package/dist/src/models/hirer-signature.entity.js.map +1 -0
  96. package/dist/src/models/index.d.ts +5 -1
  97. package/dist/src/models/index.js +9 -1
  98. package/dist/src/models/index.js.map +1 -1
  99. package/dist/src/models/joint-hirer.entity.d.ts +1 -0
  100. package/dist/src/models/joint-hirer.entity.js +12 -0
  101. package/dist/src/models/joint-hirer.entity.js.map +1 -1
  102. package/dist/src/models/rental-hirer-change-request.entity.d.ts +22 -0
  103. package/dist/src/models/rental-hirer-change-request.entity.js +108 -0
  104. package/dist/src/models/rental-hirer-change-request.entity.js.map +1 -0
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/migrations/20250529092130-add-status-to-joint-hirer.js +19 -0
  107. package/migrations/hirer-change-request-new-hirer-migration.js +72 -0
  108. package/migrations/hirer-change-request-remove-hirer-migration.js +39 -0
  109. package/migrations/hirer-change-request-signature-migration.js +65 -0
  110. package/migrations/rental-hirer-change-request-migrations.js +64 -0
  111. package/package.json +3 -3
  112. package/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.repository.ts +64 -0
  113. package/src/components/hirer-change-request-new-hirer/hirer-change-request-new-hirer.ts +153 -0
  114. package/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.repository.ts +65 -0
  115. package/src/components/hirer-change-request-remove-hirer/hirer-change-request-remove-hirer.ts +134 -0
  116. package/src/components/hirer-change-request-signature/hirer-change-request-signature.repository.ts +65 -0
  117. package/src/components/hirer-change-request-signature/hirer-change-request-signature.ts +271 -0
  118. package/src/components/joint-hirer/joint-hirer.ts +52 -0
  119. package/src/components/rental/rental.ts +32 -0
  120. package/src/components/rental-hirer-change-request/rental-hirer-change-request.repository.ts +64 -0
  121. package/src/components/rental-hirer-change-request/rental-hirer-change-request.ts +919 -0
  122. package/src/database.ts +8 -0
  123. package/src/enum/index.ts +6 -0
  124. package/src/enum/rental-hirer-change-request-hirer-role.ts +4 -0
  125. package/src/enum/rental-hirer-change-request-status.ts +7 -0
  126. package/src/enum/rental-hirer-change-request-type.ts +4 -0
  127. package/src/index.ts +16 -0
  128. package/src/interfaces/hirer-change-request-new-hirer-attr.interface.ts +15 -0
  129. package/src/interfaces/hirer-change-request-remove-hirer-attr.interface.ts +5 -0
  130. package/src/interfaces/hirer-change-request-signature-attr.interface.ts +15 -0
  131. package/src/interfaces/index.ts +10 -0
  132. package/src/interfaces/joint-hirer-attr.interface.ts +1 -0
  133. package/src/interfaces/rental-hirer-change-request.attr.interface.ts +17 -0
  134. package/src/interfaces/rental-hirer-change-request.update.interface.ts +4 -0
  135. package/src/models/hirer-change-request-new-hirer.entity.ts +102 -0
  136. package/src/models/hirer-change-request-remove-hirer.entity.ts +47 -0
  137. package/src/models/hirer-change-request-signature.entity.ts +86 -0
  138. package/src/models/index.ts +8 -0
  139. package/src/models/joint-hirer.entity.ts +7 -0
  140. package/src/models/rental-hirer-change-request.entity.ts +93 -0
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ /** @type {import('sequelize-cli').Migration} */
4
+ 'use strict';
5
+
6
+ module.exports = {
7
+ up: async (queryInterface, Sequelize) => {
8
+ await queryInterface.addColumn('rental_JointHirer', 'Status', {
9
+ type: Sequelize.STRING(20),
10
+ allowNull: false,
11
+ defaultValue: 'Active',
12
+ });
13
+ },
14
+
15
+ down: async (queryInterface, _) => {
16
+ await queryInterface.removeColumn('rental_JointHirer', 'Status');
17
+ }
18
+ };
19
+
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ /** @type {import('sequelize-cli').Migration} */
4
+ module.exports = {
5
+ up: async (queryInterface, Sequelize) => {
6
+ await queryInterface.createTable('hirerChangeRequest_NewHirer', {
7
+ NewHirerId: {
8
+ type: Sequelize.STRING(30),
9
+ primaryKey: true,
10
+ allowNull: false,
11
+ },
12
+ RequestId: {
13
+ type: Sequelize.STRING(30),
14
+ allowNull: false,
15
+ references: {
16
+ model: 'rental_HirerChangeRequest',
17
+ key: 'RequestId',
18
+ },
19
+ onUpdate: 'CASCADE',
20
+ onDelete: 'CASCADE',
21
+ },
22
+ FullName: {
23
+ type: Sequelize.STRING(200),
24
+ allowNull: false,
25
+ },
26
+ Email: {
27
+ type: Sequelize.STRING(100),
28
+ allowNull: true,
29
+ },
30
+ IdType: {
31
+ type: Sequelize.STRING(20),
32
+ allowNull: false,
33
+ },
34
+ IdNo: {
35
+ type: Sequelize.STRING(50),
36
+ allowNull: false,
37
+ },
38
+ ContactNo: {
39
+ type: Sequelize.STRING(20),
40
+ allowNull: false,
41
+ },
42
+ Relationship: {
43
+ type: Sequelize.STRING(20),
44
+ allowNull: false,
45
+ },
46
+ Address: {
47
+ type: Sequelize.STRING(1000),
48
+ allowNull: false,
49
+ },
50
+ City: {
51
+ type: Sequelize.STRING(100),
52
+ allowNull: false,
53
+ },
54
+ State: {
55
+ type: Sequelize.STRING(100),
56
+ allowNull: false,
57
+ },
58
+ Postcode: {
59
+ type: Sequelize.STRING(20),
60
+ allowNull: false,
61
+ },
62
+ Country: {
63
+ type: Sequelize.STRING(100),
64
+ allowNull: false,
65
+ },
66
+ });
67
+ },
68
+
69
+ down: async (queryInterface, Sequelize) => {
70
+ await queryInterface.dropTable('hirerChangeRequest_NewHirer');
71
+ },
72
+ };
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ /** @type {import('sequelize-cli').Migration} */
4
+ module.exports = {
5
+ up: async (queryInterface, Sequelize) => {
6
+ await queryInterface.createTable('hirerChangeRequest_RemoveHirer', {
7
+ RemoveHirerId: {
8
+ type: Sequelize.STRING(30),
9
+ primaryKey: true,
10
+ allowNull: false,
11
+ },
12
+ RequestId: {
13
+ type: Sequelize.STRING(30),
14
+ allowNull: false,
15
+ references: {
16
+ model: 'rental_HirerChangeRequest',
17
+ key: 'RequestId',
18
+ },
19
+ onUpdate: 'CASCADE',
20
+ onDelete: 'CASCADE',
21
+ },
22
+ TargetHirerId: {
23
+ type: Sequelize.STRING(30),
24
+ allowNull: false,
25
+ references: {
26
+ model: 'rental_JointHirer',
27
+ key: 'HirerId',
28
+ },
29
+ onUpdate: 'CASCADE',
30
+ onDelete: 'CASCADE',
31
+ },
32
+ });
33
+ },
34
+
35
+ down: async (queryInterface, Sequelize) => {
36
+ await queryInterface.dropTable('hirerChangeRequest_RemoveHirer');
37
+ // ENUM cleanup not needed in MariaDB
38
+ },
39
+ };
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ /** @type {import('sequelize-cli').Migration} */
4
+ module.exports = {
5
+ up: async (queryInterface, Sequelize) => {
6
+ await queryInterface.createTable('hirerChangeRequest_Signature', {
7
+ SignatureId: {
8
+ type: Sequelize.STRING(30),
9
+ primaryKey: true,
10
+ allowNull: false,
11
+ },
12
+ RequestId: {
13
+ type: Sequelize.STRING(30),
14
+ allowNull: false,
15
+ references: {
16
+ model: 'rental_HirerChangeRequest',
17
+ key: 'RequestId',
18
+ },
19
+ onUpdate: 'CASCADE',
20
+ onDelete: 'CASCADE',
21
+ },
22
+ CustomerId: {
23
+ type: Sequelize.STRING(30),
24
+ allowNull: true,
25
+ },
26
+ JointHirerId: {
27
+ type: Sequelize.STRING(30),
28
+ allowNull: true,
29
+ },
30
+ HirerType: {
31
+ type: Sequelize.STRING(10),
32
+ allowNull: false,
33
+ },
34
+ SignedAt: {
35
+ type: Sequelize.DATE,
36
+ allowNull: true,
37
+ },
38
+ Method: {
39
+ type: Sequelize.STRING(20),
40
+ allowNull: false,
41
+ },
42
+ Remarks: {
43
+ type: Sequelize.STRING(300),
44
+ allowNull: true,
45
+ },
46
+ CreatedAt: {
47
+ type: Sequelize.DATE,
48
+ allowNull: false,
49
+ },
50
+ UpdatedAt: {
51
+ type: Sequelize.DATE,
52
+ allowNull: false,
53
+ },
54
+ UpdatedById: {
55
+ type: Sequelize.STRING(30),
56
+ allowNull: false,
57
+ },
58
+ });
59
+ },
60
+
61
+ down: async (queryInterface, Sequelize) => {
62
+ await queryInterface.dropTable('hirerChangeRequest_Signature');
63
+ // ENUM cleanup not needed in MariaDB
64
+ },
65
+ };
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ /** @type {import('sequelize-cli').Migration} */
4
+ module.exports = {
5
+ up: async (queryInterface, Sequelize) => {
6
+ await queryInterface.createTable('rental_HirerChangeRequest', {
7
+ RequestId: {
8
+ type: Sequelize.STRING(30),
9
+ primaryKey: true,
10
+ allowNull: false,
11
+ },
12
+ RentalId: {
13
+ type: Sequelize.STRING(30),
14
+ allowNull: false,
15
+ references: {
16
+ model: 'rental_Rental',
17
+ key: 'RentalId',
18
+ },
19
+ onUpdate: 'CASCADE',
20
+ onDelete: 'CASCADE',
21
+ },
22
+ Type: {
23
+ type: Sequelize.STRING(10),
24
+ allowNull: false,
25
+ },
26
+ Status: {
27
+ type: Sequelize.STRING(20),
28
+ allowNull: false,
29
+ },
30
+ RequestedAt: {
31
+ type: Sequelize.DATE,
32
+ allowNull: false,
33
+ },
34
+ RequestedById: {
35
+ type: Sequelize.STRING(30),
36
+ allowNull: false,
37
+ },
38
+ RequestingHirerId: {
39
+ type: Sequelize.STRING(30),
40
+ allowNull: false,
41
+ },
42
+ RequestingHirerType: {
43
+ type: Sequelize.ENUM('Main', 'Joint'),
44
+ allowNull: false,
45
+ },
46
+ CancelRemarks: {
47
+ type: Sequelize.STRING(300),
48
+ allowNull: true,
49
+ },
50
+ UpdatedAt: {
51
+ type: Sequelize.DATE,
52
+ allowNull: false,
53
+ },
54
+ UpdatedById: {
55
+ type: Sequelize.STRING(30),
56
+ allowNull: false,
57
+ },
58
+ });
59
+ },
60
+
61
+ down: async (queryInterface, Sequelize) => {
62
+ await queryInterface.dropTable('rental_HirerChangeRequest');
63
+ },
64
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomei/rental",
3
- "version": "0.17.1",
3
+ "version": "0.17.3-dev.1",
4
4
  "description": "Tomei Rental Package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -57,10 +57,10 @@
57
57
  "access": "public"
58
58
  },
59
59
  "peerDependencies": {
60
- "@tomei/activity-history": "^0.2.23",
60
+ "@tomei/activity-history": "^0.4.1",
61
61
  "@tomei/config": "^0.3.21",
62
62
  "@tomei/general": "^0.21.3",
63
- "@tomei/sso": "^0.51.6",
63
+ "@tomei/sso": "^0.60.4",
64
64
  "luxon": "^3.5.0",
65
65
  "reflect-metadata": "^0.2.2",
66
66
  "sequelize": "^6.37.5",
@@ -0,0 +1,64 @@
1
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
+ import { HirerChangeRequestNewHirerModel } from '../../models/hirer-change-request-new-hirer.entity';
3
+
4
+ export class HirerChangeRequestNewHirerRepository
5
+ extends RepositoryBase<HirerChangeRequestNewHirerModel>
6
+ implements IRepositoryBase<HirerChangeRequestNewHirerModel>
7
+ {
8
+ constructor() {
9
+ super(HirerChangeRequestNewHirerModel);
10
+ }
11
+
12
+ async findByPk(
13
+ id: string,
14
+ transaction?: any,
15
+ ): Promise<HirerChangeRequestNewHirerModel | null> {
16
+ try {
17
+ const result = await HirerChangeRequestNewHirerModel.findByPk(id, {
18
+ transaction: transaction,
19
+ });
20
+
21
+ return result;
22
+ } catch (error) {
23
+ throw new Error(`An Error occured when fetching : ${error.message}`);
24
+ }
25
+ }
26
+
27
+ async delete(newHirerId: string, dbTransaction?: any) {
28
+ try {
29
+ const options = {
30
+ where: {
31
+ NewHirerId: newHirerId,
32
+ },
33
+ transaction: dbTransaction,
34
+ };
35
+ await HirerChangeRequestNewHirerModel.destroy(options);
36
+ } catch (error) {
37
+ throw new Error(`An Error occured when delete : ${error.message}`);
38
+ }
39
+ }
40
+
41
+ async findAndCountAll(options?: any) {
42
+ try {
43
+ let hcrNewHirers: any;
44
+ if (options) {
45
+ hcrNewHirers =
46
+ await HirerChangeRequestNewHirerModel.findAndCountAll(options);
47
+ } else {
48
+ hcrNewHirers = await HirerChangeRequestNewHirerModel.findAndCountAll();
49
+ }
50
+ return hcrNewHirers;
51
+ } catch (error) {
52
+ throw new Error(`An Error occured when retriving : ${error.message}`);
53
+ }
54
+ }
55
+
56
+ async findAll(options: any): Promise<HirerChangeRequestNewHirerModel[]> {
57
+ try {
58
+ const result = await HirerChangeRequestNewHirerModel.findAll(options);
59
+ return result;
60
+ } catch (error) {
61
+ throw new Error(`An Error occured when fetching : ${error.message}`);
62
+ }
63
+ }
64
+ }
@@ -0,0 +1,153 @@
1
+ import { ClassError, ObjectBase } from '@tomei/general';
2
+ import { IHirerChangeRequestNewHirerAttr } from '../../interfaces/hirer-change-request-new-hirer-attr.interface';
3
+ import { HirerChangeRequestNewHirerRepository } from './hirer-change-request-new-hirer.repository';
4
+ import { LoginUser } from '@tomei/sso';
5
+ import { ActionEnum, Activity } from '@tomei/activity-history';
6
+
7
+ export class HirerChangeRequestNewHirer
8
+ extends ObjectBase
9
+ implements IHirerChangeRequestNewHirerAttr
10
+ {
11
+ ObjectId: string;
12
+ ObjectName: string;
13
+ ObjectType: string = 'HirerChangeRequestNewHirer';
14
+ TableName: string = 'hirerChangeRequest_NewHirer';
15
+
16
+ RequestId: string;
17
+ FullName: string;
18
+ Email: string;
19
+ IdType: string;
20
+ IdNo: string;
21
+ ContactNo: string;
22
+ Relationship: string;
23
+ Address: string;
24
+ City: string;
25
+ State: string;
26
+ Postcode: string;
27
+ Country: string;
28
+
29
+ get NewHirerId(): string {
30
+ return this.ObjectId;
31
+ }
32
+
33
+ set NewHirerId(value: string) {
34
+ this.ObjectId = value;
35
+ }
36
+
37
+ protected static _Repository = new HirerChangeRequestNewHirerRepository();
38
+
39
+ protected constructor(attr?: IHirerChangeRequestNewHirerAttr) {
40
+ super();
41
+ if (attr) {
42
+ this.NewHirerId = attr.NewHirerId;
43
+ this.RequestId = attr.RequestId;
44
+ this.FullName = attr.FullName;
45
+ this.Email = attr.Email;
46
+ this.IdType = attr.IdType;
47
+ this.IdNo = attr.IdNo;
48
+ this.ContactNo = attr.ContactNo;
49
+ this.Relationship = attr.Relationship;
50
+ this.Address = attr.Address;
51
+ this.City = attr.City;
52
+ this.State = attr.State;
53
+ this.Postcode = attr.Postcode;
54
+ this.Country = attr.Country;
55
+ }
56
+ }
57
+
58
+ public static async init(newHirerId?: string, dbTransaction?: any) {
59
+ try {
60
+ if (newHirerId) {
61
+ const hirerChangeReqNewHirer =
62
+ await HirerChangeRequestNewHirer._Repository.findByPk(
63
+ newHirerId,
64
+ dbTransaction,
65
+ );
66
+ if (hirerChangeReqNewHirer) {
67
+ return new HirerChangeRequestNewHirer(
68
+ hirerChangeReqNewHirer.get({ plain: true }),
69
+ );
70
+ } else {
71
+ throw new ClassError(
72
+ 'HirerChangeRequestNewHirer',
73
+ 'HirerChangeRequestNewHirerErrMsg00',
74
+ 'HirerChangeRequestNewHirer not found',
75
+ );
76
+ }
77
+ }
78
+ return new HirerChangeRequestNewHirer();
79
+ } catch (error) {
80
+ throw error;
81
+ }
82
+ }
83
+
84
+ public static async findAll(
85
+ search: {
86
+ RequestId?: string;
87
+ },
88
+ dbTransaction?: any,
89
+ ): Promise<HirerChangeRequestNewHirer[]> {
90
+ try {
91
+ const results = await HirerChangeRequestNewHirer._Repository.findAll({
92
+ where: {
93
+ ...search,
94
+ },
95
+ transaction: dbTransaction,
96
+ });
97
+ return results.map(
98
+ (result) => new HirerChangeRequestNewHirer(result.get({ plain: true })),
99
+ );
100
+ } catch (error) {
101
+ console.error('Error finding all HirerChangeRequestNewHirer:', error);
102
+ throw error;
103
+ }
104
+ }
105
+
106
+ toJSON(): IHirerChangeRequestNewHirerAttr {
107
+ return {
108
+ NewHirerId: this.NewHirerId,
109
+ RequestId: this.RequestId,
110
+ FullName: this.FullName,
111
+ Email: this.Email,
112
+ IdType: this.IdType,
113
+ IdNo: this.IdNo,
114
+ ContactNo: this.ContactNo,
115
+ Relationship: this.Relationship,
116
+ Address: this.Address,
117
+ City: this.City,
118
+ State: this.State,
119
+ Postcode: this.Postcode,
120
+ Country: this.Country,
121
+ };
122
+ }
123
+
124
+ public async create(loginUser: LoginUser, dbTransaction?: any) {
125
+ //This method will create a new Hirer Change Request New Hirer.
126
+ try {
127
+ //Insert record into the database
128
+ this.ObjectId = this.createId();
129
+ const entityValueAfter = this.toJSON();
130
+ const newHirer = await HirerChangeRequestNewHirer._Repository.create(
131
+ entityValueAfter,
132
+ {
133
+ transaction: dbTransaction,
134
+ },
135
+ );
136
+
137
+ //Create activity log
138
+ const activity = new Activity();
139
+ activity.ObjectId = this._createId();
140
+ activity.Action = ActionEnum.CREATE;
141
+ activity.Description = `Created new Hirer Change Request New Hirer`;
142
+ activity.EntityId = newHirer.NewHirerId;
143
+ activity.EntityType = this.ObjectType;
144
+ activity.EntityValueBefore = JSON.stringify({});
145
+ activity.EntityValueAfter = JSON.stringify(newHirer);
146
+
147
+ await activity.create(loginUser.ObjectId, dbTransaction);
148
+ } catch (error) {
149
+ console.error('Error creating HirerChangeRequestNewHirer:', error);
150
+ throw error;
151
+ }
152
+ }
153
+ }
@@ -0,0 +1,65 @@
1
+ import { RepositoryBase, IRepositoryBase } from '@tomei/general';
2
+ import { HirerChangeRequestRemoveHirerModel } from '../../models/hirer-change-request-remove-hirer.entity';
3
+
4
+ export class HirerChangeRequestRemoveHirerRepository
5
+ extends RepositoryBase<HirerChangeRequestRemoveHirerModel>
6
+ implements IRepositoryBase<HirerChangeRequestRemoveHirerModel>
7
+ {
8
+ constructor() {
9
+ super(HirerChangeRequestRemoveHirerModel);
10
+ }
11
+
12
+ async findByPk(
13
+ id: string,
14
+ transaction?: any,
15
+ ): Promise<HirerChangeRequestRemoveHirerModel | null> {
16
+ try {
17
+ const result = await HirerChangeRequestRemoveHirerModel.findByPk(id, {
18
+ transaction: transaction,
19
+ });
20
+
21
+ return result;
22
+ } catch (error) {
23
+ throw new Error(`An Error occured when fetching : ${error.message}`);
24
+ }
25
+ }
26
+
27
+ async delete(removeHirerId: string, dbTransaction?: any) {
28
+ try {
29
+ const options = {
30
+ where: {
31
+ RemoveHirerId: removeHirerId,
32
+ },
33
+ transaction: dbTransaction,
34
+ };
35
+ await HirerChangeRequestRemoveHirerModel.destroy(options);
36
+ } catch (error) {
37
+ throw new Error(`An Error occured when delete : ${error.message}`);
38
+ }
39
+ }
40
+
41
+ async findAndCountAll(options?: any) {
42
+ try {
43
+ let hcrRemoveHirers: any;
44
+ if (options) {
45
+ hcrRemoveHirers =
46
+ await HirerChangeRequestRemoveHirerModel.findAndCountAll(options);
47
+ } else {
48
+ hcrRemoveHirers =
49
+ await HirerChangeRequestRemoveHirerModel.findAndCountAll();
50
+ }
51
+ return hcrRemoveHirers;
52
+ } catch (error) {
53
+ throw new Error(`An Error occured when retriving : ${error.message}`);
54
+ }
55
+ }
56
+
57
+ async findAll(options: any): Promise<HirerChangeRequestRemoveHirerModel[]> {
58
+ try {
59
+ const result = await HirerChangeRequestRemoveHirerModel.findAll(options);
60
+ return result;
61
+ } catch (error) {
62
+ throw new Error(`An Error occured when fetching : ${error.message}`);
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,134 @@
1
+ import { ClassError, ObjectBase } from '@tomei/general';
2
+ import { LoginUser } from '@tomei/sso';
3
+ import { ActionEnum, Activity } from '@tomei/activity-history';
4
+ import { IHirerChangeRequestRemoveHirerAttr } from '../../interfaces/hirer-change-request-remove-hirer-attr.interface';
5
+ import { HirerChangeRequestRemoveHirerRepository } from './hirer-change-request-remove-hirer.repository';
6
+ import { JointHirer } from 'components/joint-hirer/joint-hirer';
7
+
8
+ export class HirerChangeRequestRemoveHirer
9
+ extends ObjectBase
10
+ implements IHirerChangeRequestRemoveHirerAttr
11
+ {
12
+ ObjectId: string;
13
+ ObjectName: string;
14
+ ObjectType: string = 'HirerChangeRequestRemoveHirer';
15
+ TableName: string = 'hirerChangeRequest_RemoveHirer';
16
+ RequestId: string;
17
+ TargetHirerId: string;
18
+
19
+ get RemoveHirerId(): string {
20
+ return this.ObjectId;
21
+ }
22
+
23
+ set RemoveHirerId(value: string) {
24
+ this.ObjectId = value;
25
+ }
26
+
27
+ protected static _Repository = new HirerChangeRequestRemoveHirerRepository();
28
+
29
+ protected constructor(attr?: IHirerChangeRequestRemoveHirerAttr) {
30
+ super();
31
+ if (attr) {
32
+ this.RemoveHirerId = attr.RemoveHirerId;
33
+ this.RequestId = attr.RequestId;
34
+ this.TargetHirerId = attr.TargetHirerId;
35
+ }
36
+ }
37
+
38
+ public static async init(removeHirerId?: string, dbTransaction?: any) {
39
+ try {
40
+ if (removeHirerId) {
41
+ const hirerChangeReqRemoveHirer =
42
+ await HirerChangeRequestRemoveHirer._Repository.findByPk(
43
+ removeHirerId,
44
+ dbTransaction,
45
+ );
46
+ if (hirerChangeReqRemoveHirer) {
47
+ return new HirerChangeRequestRemoveHirer(
48
+ hirerChangeReqRemoveHirer.get({ plain: true }),
49
+ );
50
+ } else {
51
+ throw new ClassError(
52
+ 'HirerChangeRequestRemoveHirer',
53
+ 'HirerChangeRequestRemoveHirerErrMsg00',
54
+ 'HirerChangeRequestRemoveHirer not found',
55
+ );
56
+ }
57
+ }
58
+ return new HirerChangeRequestRemoveHirer();
59
+ } catch (error) {
60
+ throw error;
61
+ }
62
+ }
63
+
64
+ public static async findAll(
65
+ search: {
66
+ RequestId?: string;
67
+ },
68
+ dbTransaction?: any,
69
+ ): Promise<HirerChangeRequestRemoveHirer[]> {
70
+ try {
71
+ const results = await HirerChangeRequestRemoveHirer._Repository.findAll({
72
+ where: {
73
+ ...search,
74
+ },
75
+ transaction: dbTransaction,
76
+ });
77
+ return results.map(
78
+ (result) =>
79
+ new HirerChangeRequestRemoveHirer(result.get({ plain: true })),
80
+ );
81
+ } catch (error) {
82
+ console.error('Error finding all HirerChangeRequestRemoveHirer:', error);
83
+ throw error;
84
+ }
85
+ }
86
+
87
+ toJSON(): IHirerChangeRequestRemoveHirerAttr {
88
+ return {
89
+ RemoveHirerId: this.RemoveHirerId,
90
+ RequestId: this.RequestId,
91
+ TargetHirerId: this.TargetHirerId,
92
+ };
93
+ }
94
+
95
+ public async create(loginUser: LoginUser, dbTransaction?: any) {
96
+ //This method will create a new Hirer Change Request Remove Hirer.
97
+ try {
98
+ //Make sure targetHirerId and requestId is not empty
99
+ if (!this.TargetHirerId && !this.RequestId) {
100
+ throw new ClassError(
101
+ 'HirerChangeRequestRemoveHirer',
102
+ 'HirerChangeRequestRemoveHirerErrMsg01',
103
+ 'TargetHirerId and RequestId are required',
104
+ );
105
+ }
106
+
107
+ //Insert record into the database
108
+ this.ObjectId = this.createId();
109
+ const entityValueAfter = this.toJSON();
110
+ const removeHirer =
111
+ await HirerChangeRequestRemoveHirer._Repository.create(
112
+ entityValueAfter,
113
+ {
114
+ transaction: dbTransaction,
115
+ },
116
+ );
117
+
118
+ //Create activity log
119
+ const activity = new Activity();
120
+ activity.ObjectId = this._createId();
121
+ activity.Action = ActionEnum.CREATE;
122
+ activity.Description = `Created new Hirer Change Request Remove Hirer`;
123
+ activity.EntityId = removeHirer.RemoveHirerId;
124
+ activity.EntityType = this.ObjectType;
125
+ activity.EntityValueBefore = JSON.stringify({});
126
+ activity.EntityValueAfter = JSON.stringify(removeHirer);
127
+
128
+ await activity.create(loginUser.ObjectId, dbTransaction);
129
+ } catch (error) {
130
+ console.error('Error creating HirerChangeRequestRemoveHirer:', error);
131
+ throw error;
132
+ }
133
+ }
134
+ }