@churchsoln/dbms 1.0.46 → 1.0.48

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 (145) hide show
  1. package/Dockerfile +21 -21
  2. package/Makefile +132 -132
  3. package/app.js +37 -37
  4. package/config/config.js +33 -33
  5. package/config/errorCodes.js +65 -65
  6. package/config/errorMsgs.js +82 -82
  7. package/constants/index.js +94 -94
  8. package/controllers/church.js +100 -100
  9. package/controllers/index.js +6 -6
  10. package/controllers/master.js +138 -138
  11. package/controllers/migration.js +24 -24
  12. package/controllers/seed.js +33 -33
  13. package/db-setup.js +87 -87
  14. package/deployment/docker-compose.local.yml +64 -64
  15. package/deployment/docker-compose.yml +62 -62
  16. package/deployment/nginx/nginx-certs/localhost.crt +22 -22
  17. package/deployment/nginx/nginx-certs/localhost.key +28 -28
  18. package/deployment/nginx/nginx.local.conf +72 -72
  19. package/middlewares/church-filter.js +16 -16
  20. package/migrations/church/20221226151615-create-province.js +27 -27
  21. package/migrations/church/20221226151616-create-city.js +41 -41
  22. package/migrations/church/20221226151617-create-subRole.js +25 -25
  23. package/migrations/church/20221226151618-create-membership.js +68 -68
  24. package/migrations/church/20221226151619-create-member.js +140 -140
  25. package/migrations/church/20221227151615-create-user.js +60 -60
  26. package/migrations/church/20230826140644-create-eventsUpdates.js +29 -29
  27. package/migrations/church/20230904143429-create-ministries.js +26 -26
  28. package/migrations/church/20231021160018-create-gallery.js +28 -28
  29. package/migrations/church/20231105074019-create-feedback.js +28 -28
  30. package/migrations/church/20231111113342-create-banner.js +29 -29
  31. package/migrations/church/20231216105640-create-directoryBoard.js +31 -31
  32. package/migrations/church/20240214160101-create-volunteer.js +31 -31
  33. package/migrations/church/20240330111437-create-download.js +29 -29
  34. package/migrations/church/20240427170617-create-links.js +26 -26
  35. package/migrations/church/20240815170617-create-userTransfer.js +63 -63
  36. package/migrations/church/20240815170620-create-subRolePermission.js +40 -40
  37. package/migrations/church/20240915170620-create-transferType.js +25 -25
  38. package/migrations/church/20240917170620-create-accounts.js +27 -27
  39. package/migrations/church/20240918170621-create-church.js +54 -54
  40. package/migrations/church/20240918170622-create-group.js +61 -61
  41. package/migrations/church/20240918170623-create-groupMembers.js +74 -74
  42. package/migrations/church/20240918170627-create-pledge.js +96 -96
  43. package/migrations/church/20240919170627-create-contributionBatch.js +42 -42
  44. package/migrations/church/20240919170628-create-contributionTransaction.js +82 -82
  45. package/migrations/church/20240919170629-create-contributionTransactionLine.js +74 -74
  46. package/migrations/church/20240919170630-update-groupMembers.js +77 -77
  47. package/migrations/church/{20241204170631-create-pledgeCampaign.js → 20241204170631-create-pledgeAccount.js} +55 -41
  48. package/migrations/church/20241204170632-create-memberStatus.js +26 -0
  49. package/migrations/church/20241204170633-update-member.js +33 -0
  50. package/migrations/church/20241204170634-update-membership.js +33 -0
  51. package/migrations/church/20241204170635-update-pledge.js +33 -0
  52. package/migrations/church/20241204170636-update-contributionTransactionLine.js +33 -0
  53. package/migrations/common/20221226140655-create-subscriptionPlan.js +31 -31
  54. package/migrations/common/20221226143006-create-role.js +25 -25
  55. package/migrations/common/20240815170619-create-permission.js +27 -27
  56. package/migrations/common/20240815170620-create-church.js +56 -56
  57. package/migrations/common/20240815170621-create-churchDomain.js +40 -40
  58. package/migrations/common/20240918170621-create-churchPermission.js +53 -53
  59. package/migrations/common/20240918170622-create-user.js +35 -35
  60. package/migrations/common/20240918170627-create-subscriptionPlanPermission.js +53 -53
  61. package/models/church/accounts.js +23 -27
  62. package/models/church/banner.js +29 -29
  63. package/models/church/church.js +62 -62
  64. package/models/church/city.js +23 -23
  65. package/models/church/contributionBatch.js +45 -45
  66. package/models/church/contributionTransaction.js +90 -90
  67. package/models/church/contributionTransactionLine.js +81 -80
  68. package/models/church/directoryBoard.js +33 -33
  69. package/models/church/download.js +35 -35
  70. package/models/church/eventsUpdates.js +29 -29
  71. package/models/church/feedback.js +27 -27
  72. package/models/church/gallery.js +33 -33
  73. package/models/church/group.js +78 -78
  74. package/models/church/groupMembers.js +73 -73
  75. package/models/church/index.js +30 -30
  76. package/models/church/links.js +22 -22
  77. package/models/church/member.js +156 -171
  78. package/models/church/memberStatus.js +22 -0
  79. package/models/church/membership.js +75 -81
  80. package/models/church/ministries.js +16 -16
  81. package/models/church/pledge.js +65 -65
  82. package/models/church/pledgeAccount.js +45 -33
  83. package/models/church/province.js +23 -23
  84. package/models/church/subRole.js +21 -21
  85. package/models/church/subRolePermission.js +22 -22
  86. package/models/church/transferType.js +15 -15
  87. package/models/church/user.js +78 -78
  88. package/models/church/userTransfer.js +45 -45
  89. package/models/church/volunteer.js +33 -33
  90. package/models/common/church.js +58 -58
  91. package/models/common/churchDomain.js +21 -21
  92. package/models/common/churchPermission.js +26 -26
  93. package/models/common/index.js +40 -40
  94. package/models/common/permission.js +17 -17
  95. package/models/common/role.js +15 -15
  96. package/models/common/subscriptionPlan.js +34 -34
  97. package/models/common/subscriptionPlanPermission.js +33 -33
  98. package/models/common/user.js +39 -39
  99. package/package.json +41 -41
  100. package/public/swagger/church.json +521 -521
  101. package/public/swagger/master.json +537 -537
  102. package/public/swagger/migration.json +83 -83
  103. package/public/swagger/seed.json +98 -98
  104. package/queues/db-create.js +9 -9
  105. package/queues/index.js +5 -5
  106. package/queues/master.js +9 -9
  107. package/queues/migration.js +9 -9
  108. package/queues/seed.js +9 -9
  109. package/redis/config.js +5 -5
  110. package/routes/index.js +30 -30
  111. package/routes/v1/church.js +45 -45
  112. package/routes/v1/index.js +7 -7
  113. package/routes/v1/master.js +68 -68
  114. package/routes/v1/migration.js +10 -10
  115. package/routes/v1/seed.js +12 -12
  116. package/seeders/church/20241005124245-province.js +101 -101
  117. package/seeders/church/20241005124547-city.js +87 -87
  118. package/seeders/church/20241005131418-transferType.js +40 -40
  119. package/seeders/church/20241005131419-memberStatus.js +34 -0
  120. package/seeders/common/20241005123516-subscriptionPlan.js +43 -43
  121. package/seeders/common/20241005124105-role.js +38 -38
  122. package/seeders/common/20241005153047-permission.js +252 -242
  123. package/seeders/common/20241005153048-user.js +48 -48
  124. package/services/church.js +312 -312
  125. package/services/index.js +6 -6
  126. package/services/master.js +344 -344
  127. package/services/migration.js +30 -30
  128. package/services/seed.js +39 -39
  129. package/utils/churchManager.js +98 -98
  130. package/utils/crypto.js +40 -40
  131. package/utils/docUpload.js +51 -51
  132. package/utils/encryptDecrypt.js +26 -26
  133. package/utils/index.js +33 -33
  134. package/utils/logger.js +104 -104
  135. package/utils/response.js +108 -108
  136. package/utils/swagger.js +25 -25
  137. package/utils/verifyToken.js +58 -58
  138. package/validators/church.js +154 -154
  139. package/validators/index.js +3 -3
  140. package/validators/master.js +152 -152
  141. package/workers/db-create.js +37 -37
  142. package/workers/index.js +4 -4
  143. package/workers/master.js +50 -50
  144. package/workers/migrations.js +63 -63
  145. package/workers/seed.js +85 -85
@@ -1,75 +1,75 @@
1
- "use strict";
2
- module.exports = {
3
- up: async (queryInterface, DataTypes) => {
4
- await queryInterface
5
- .createTable(
6
- "ContributionTransactionLine",
7
- {
8
- id: {
9
- type: DataTypes.INTEGER,
10
- autoIncrement: true,
11
- primaryKey: true,
12
- },
13
- contributionTransactionId: {
14
- type: DataTypes.INTEGER,
15
- allowNull: false,
16
- validate: {
17
- notNull: { msg: "Transaction ID is required" },
18
- isInt: { msg: "Transaction ID must be an integer" },
19
- },
20
- references: {
21
- model: "ContributionTransaction",
22
- key: "id",
23
- },
24
- onDelete: "CASCADE",
25
- },
26
- accountId: {
27
- type: DataTypes.INTEGER,
28
- allowNull: false,
29
- validate: {
30
- notNull: { msg: "Account ID is required" },
31
- isInt: { msg: "Account ID must be an integer" },
32
- },
33
- references: {
34
- model: "Accounts",
35
- key: "id",
36
- },
37
- onDelete: "SET NULL",
38
- },
39
- amount: {
40
- type: DataTypes.DECIMAL(10, 2),
41
- allowNull: false,
42
- validate: {
43
- notNull: { msg: "Amount is required" },
44
- isDecimal: { msg: "Amount must be a valid decimal" },
45
- minAmount(value) {
46
- if (parseFloat(value) <= 0) {
47
- throw new Error("Amount must be greater than 0");
48
- }
49
- },
50
- },
51
- },
52
- isLoosePlate: { type: DataTypes.BOOLEAN, defaultValue: false },
53
- isTaxable: {
54
- type: DataTypes.BOOLEAN,
55
- defaultValue: true,
56
- },
57
- memo: {
58
- type: DataTypes.TEXT,
59
- },
60
- createdAt: {
61
- type: DataTypes.DATE,
62
- defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
63
- },
64
- updatedAt: {
65
- type: DataTypes.DATE,
66
- defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
67
- },
68
- },
69
- { timestamps: false }
70
- )
71
- },
72
- down: async (queryInterface) => {
73
- await queryInterface.dropTable("ContributionTransactionLine");
74
- },
1
+ "use strict";
2
+ module.exports = {
3
+ up: async (queryInterface, DataTypes) => {
4
+ await queryInterface
5
+ .createTable(
6
+ "ContributionTransactionLine",
7
+ {
8
+ id: {
9
+ type: DataTypes.INTEGER,
10
+ autoIncrement: true,
11
+ primaryKey: true,
12
+ },
13
+ contributionTransactionId: {
14
+ type: DataTypes.INTEGER,
15
+ allowNull: false,
16
+ validate: {
17
+ notNull: { msg: "Transaction ID is required" },
18
+ isInt: { msg: "Transaction ID must be an integer" },
19
+ },
20
+ references: {
21
+ model: "ContributionTransaction",
22
+ key: "id",
23
+ },
24
+ onDelete: "CASCADE",
25
+ },
26
+ accountId: {
27
+ type: DataTypes.INTEGER,
28
+ allowNull: false,
29
+ validate: {
30
+ notNull: { msg: "Account ID is required" },
31
+ isInt: { msg: "Account ID must be an integer" },
32
+ },
33
+ references: {
34
+ model: "Accounts",
35
+ key: "id",
36
+ },
37
+ onDelete: "SET NULL",
38
+ },
39
+ amount: {
40
+ type: DataTypes.DECIMAL(10, 2),
41
+ allowNull: false,
42
+ validate: {
43
+ notNull: { msg: "Amount is required" },
44
+ isDecimal: { msg: "Amount must be a valid decimal" },
45
+ minAmount(value) {
46
+ if (parseFloat(value) <= 0) {
47
+ throw new Error("Amount must be greater than 0");
48
+ }
49
+ },
50
+ },
51
+ },
52
+ isLoosePlate: { type: DataTypes.BOOLEAN, defaultValue: false },
53
+ isTaxable: {
54
+ type: DataTypes.BOOLEAN,
55
+ defaultValue: true,
56
+ },
57
+ memo: {
58
+ type: DataTypes.TEXT,
59
+ },
60
+ createdAt: {
61
+ type: DataTypes.DATE,
62
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
63
+ },
64
+ updatedAt: {
65
+ type: DataTypes.DATE,
66
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
67
+ },
68
+ },
69
+ { timestamps: false }
70
+ )
71
+ },
72
+ down: async (queryInterface) => {
73
+ await queryInterface.dropTable("ContributionTransactionLine");
74
+ },
75
75
  }
@@ -1,77 +1,77 @@
1
- "use strict";
2
-
3
- module.exports = {
4
- up: async (queryInterface, DataTypes) => {
5
- // Remove the old foreign key constraint
6
- await queryInterface.removeConstraint(
7
- "GroupMembers",
8
- "GroupMembers_UserId_Fkey"
9
- );
10
-
11
- // Remove the userId column
12
- await queryInterface.removeColumn(
13
- "GroupMembers",
14
- "userId"
15
- );
16
-
17
- // Add the new memberId column
18
- await queryInterface.addColumn(
19
- "GroupMembers",
20
- "memberId",
21
- {
22
- type: DataTypes.INTEGER,
23
- allowNull: true
24
- }
25
- );
26
-
27
- // Add the new foreign key constraint with memberId
28
- await queryInterface.addConstraint("GroupMembers", {
29
- fields: ["memberId"],
30
- type: "foreign key",
31
- name: "GroupMembers_MemberId_Fkey",
32
- references: {
33
- table: "Member",
34
- field: "id",
35
- },
36
- onDelete: "cascade",
37
- onUpdate: "cascade",
38
- });
39
- },
40
-
41
- down: async (queryInterface, DataTypes) => {
42
- // Remove the new foreign key constraint
43
- await queryInterface.removeConstraint(
44
- "GroupMembers",
45
- "GroupMembers_MemberId_Fkey"
46
- );
47
-
48
- // Remove the memberId column
49
- await queryInterface.removeColumn(
50
- "GroupMembers",
51
- "memberId"
52
- );
53
-
54
- // Add back the userId column
55
- await queryInterface.addColumn(
56
- "GroupMembers",
57
- "userId",
58
- {
59
- type: DataTypes.INTEGER,
60
- allowNull: true
61
- }
62
- );
63
-
64
- // Restore the old foreign key constraint
65
- await queryInterface.addConstraint("GroupMembers", {
66
- fields: ["userId"],
67
- type: "foreign key",
68
- name: "GroupMembers_UserId_Fkey",
69
- references: {
70
- table: "User",
71
- field: "id",
72
- },
73
- onDelete: "cascade",
74
- onUpdate: "cascade",
75
- });
76
- }
77
- };
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, DataTypes) => {
5
+ // Remove the old foreign key constraint
6
+ await queryInterface.removeConstraint(
7
+ "GroupMembers",
8
+ "GroupMembers_UserId_Fkey"
9
+ );
10
+
11
+ // Remove the userId column
12
+ await queryInterface.removeColumn(
13
+ "GroupMembers",
14
+ "userId"
15
+ );
16
+
17
+ // Add the new memberId column
18
+ await queryInterface.addColumn(
19
+ "GroupMembers",
20
+ "memberId",
21
+ {
22
+ type: DataTypes.INTEGER,
23
+ allowNull: true
24
+ }
25
+ );
26
+
27
+ // Add the new foreign key constraint with memberId
28
+ await queryInterface.addConstraint("GroupMembers", {
29
+ fields: ["memberId"],
30
+ type: "foreign key",
31
+ name: "GroupMembers_MemberId_Fkey",
32
+ references: {
33
+ table: "Member",
34
+ field: "id",
35
+ },
36
+ onDelete: "cascade",
37
+ onUpdate: "cascade",
38
+ });
39
+ },
40
+
41
+ down: async (queryInterface, DataTypes) => {
42
+ // Remove the new foreign key constraint
43
+ await queryInterface.removeConstraint(
44
+ "GroupMembers",
45
+ "GroupMembers_MemberId_Fkey"
46
+ );
47
+
48
+ // Remove the memberId column
49
+ await queryInterface.removeColumn(
50
+ "GroupMembers",
51
+ "memberId"
52
+ );
53
+
54
+ // Add back the userId column
55
+ await queryInterface.addColumn(
56
+ "GroupMembers",
57
+ "userId",
58
+ {
59
+ type: DataTypes.INTEGER,
60
+ allowNull: true
61
+ }
62
+ );
63
+
64
+ // Restore the old foreign key constraint
65
+ await queryInterface.addConstraint("GroupMembers", {
66
+ fields: ["userId"],
67
+ type: "foreign key",
68
+ name: "GroupMembers_UserId_Fkey",
69
+ references: {
70
+ table: "User",
71
+ field: "id",
72
+ },
73
+ onDelete: "cascade",
74
+ onUpdate: "cascade",
75
+ });
76
+ }
77
+ };
@@ -1,41 +1,55 @@
1
- "use strict";
2
-
3
- module.exports = {
4
- up: async (queryInterface, DataTypes) => {
5
- await queryInterface.createTable(
6
- "PledgeAccount",
7
- {
8
- id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
9
- accountId: { type: DataTypes.INTEGER },
10
- name: { type: DataTypes.STRING },
11
- description: { type: DataTypes.TEXT },
12
- pledged: { type: DataTypes.INTEGER },
13
- status: { type: DataTypes.BOOLEAN, defaultValue: true },
14
- createdAt: {
15
- type: DataTypes.DATE,
16
- defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
17
- },
18
- updatedAt: {
19
- type: DataTypes.DATE,
20
- defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
21
- },
22
- },
23
- { timestamps: false }
24
- ).then(() =>
25
- queryInterface.addConstraint("PledgeAccount", {
26
- fields: ["accountId"],
27
- type: "foreign key",
28
- name: "PledgeAccount_AccountId_Fkey",
29
- references: {
30
- table: "Accounts",
31
- field: "id",
32
- },
33
- onDelete: "cascade",
34
- onUpdate: "cascade",
35
- })
36
- );;
37
- },
38
- down: async (queryInterface) => {
39
- await queryInterface.dropTable("PledgeAccount");
40
- },
41
- };
1
+ "use strict";
2
+
3
+ const { MEMBER_STATUS } = require("../../constants");
4
+
5
+ module.exports = {
6
+ up: async (queryInterface, DataTypes) => {
7
+ await queryInterface.createTable(
8
+ "PledgeAccount",
9
+ {
10
+ id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
11
+ accountId: { type: DataTypes.INTEGER },
12
+ name: { type: DataTypes.STRING },
13
+ description: { type: DataTypes.TEXT },
14
+ isTaxable: { type: DataTypes.BOOLEAN, defaultValue: false },
15
+ status: {
16
+ type: DataTypes.STRING,
17
+ defaultValue: MEMBER_STATUS.ACTIVE,
18
+ validate: {
19
+ isIn: [
20
+ [
21
+ MEMBER_STATUS.ACTIVE,
22
+ MEMBER_STATUS.INACTIVE,
23
+ ],
24
+ ],
25
+ },
26
+ },
27
+ pledged: { type: DataTypes.INTEGER },
28
+ createdAt: {
29
+ type: DataTypes.DATE,
30
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
31
+ },
32
+ updatedAt: {
33
+ type: DataTypes.DATE,
34
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
35
+ },
36
+ },
37
+ { timestamps: false }
38
+ ).then(() =>
39
+ queryInterface.addConstraint("PledgeAccount", {
40
+ fields: ["accountId"],
41
+ type: "foreign key",
42
+ name: "PledgeAccount_AccountId_Fkey",
43
+ references: {
44
+ table: "Accounts",
45
+ field: "id",
46
+ },
47
+ onDelete: "cascade",
48
+ onUpdate: "cascade",
49
+ })
50
+ );;
51
+ },
52
+ down: async (queryInterface) => {
53
+ await queryInterface.dropTable("PledgeAccount");
54
+ },
55
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ module.exports = {
3
+ up: async (queryInterface, DataTypes) => {
4
+ await queryInterface.createTable(
5
+ "MemberStatus",
6
+ {
7
+ id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
8
+ name: { type: DataTypes.STRING },
9
+ isEditable: { type: DataTypes.BOOLEAN, defaultValue: true },
10
+ status: { type: DataTypes.BOOLEAN, defaultValue: true },
11
+ createdAt: {
12
+ type: DataTypes.DATE,
13
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
14
+ },
15
+ updatedAt: {
16
+ type: DataTypes.DATE,
17
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
18
+ },
19
+ },
20
+ { timestamps: false }
21
+ );
22
+ },
23
+ down: async (queryInterface) => {
24
+ await queryInterface.dropTable("MemberStatus");
25
+ },
26
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, DataTypes) => {
5
+ await queryInterface.removeColumn(
6
+ "Member",
7
+ "memberStatus"
8
+ );
9
+
10
+ await queryInterface.addColumn(
11
+ "Member",
12
+ "memberStatusId",
13
+ {
14
+ type: DataTypes.INTEGER,
15
+ allowNull: true
16
+ }
17
+ );
18
+
19
+ await queryInterface.addConstraint("Member", {
20
+ fields: ["memberStatusId"],
21
+ type: "foreign key",
22
+ name: "Member_MemberStatusId_Fkey",
23
+ references: {
24
+ table: "MemberStatus",
25
+ field: "id",
26
+ },
27
+ onDelete: "cascade",
28
+ onUpdate: "cascade",
29
+ });
30
+ },
31
+
32
+ down: async (queryInterface, DataTypes) => {}
33
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, DataTypes) => {
5
+ await queryInterface.removeColumn(
6
+ "Membership",
7
+ "memberStatus"
8
+ );
9
+
10
+ await queryInterface.addColumn(
11
+ "Membership",
12
+ "memberStatusId",
13
+ {
14
+ type: DataTypes.INTEGER,
15
+ allowNull: true
16
+ }
17
+ );
18
+
19
+ await queryInterface.addConstraint("Membership", {
20
+ fields: ["memberStatusId"],
21
+ type: "foreign key",
22
+ name: "Membership_MemberStatusId_Fkey",
23
+ references: {
24
+ table: "MemberStatus",
25
+ field: "id",
26
+ },
27
+ onDelete: "cascade",
28
+ onUpdate: "cascade",
29
+ });
30
+ },
31
+
32
+ down: async (queryInterface, DataTypes) => {}
33
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, DataTypes) => {
5
+ await queryInterface.removeColumn(
6
+ "Pledge",
7
+ "accountId"
8
+ );
9
+
10
+ await queryInterface.addColumn(
11
+ "Pledge",
12
+ "pledgeAccountId",
13
+ {
14
+ type: DataTypes.INTEGER,
15
+ allowNull: true
16
+ }
17
+ );
18
+
19
+ await queryInterface.addConstraint("Pledge", {
20
+ fields: ["pledgeAccountId"],
21
+ type: "foreign key",
22
+ name: "Pledge_PledgeAccountId_Fkey",
23
+ references: {
24
+ table: "PledgeAccount",
25
+ field: "id",
26
+ },
27
+ onDelete: "cascade",
28
+ onUpdate: "cascade",
29
+ });
30
+ },
31
+
32
+ down: async (queryInterface, DataTypes) => {}
33
+ };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ up: async (queryInterface, DataTypes) => {
5
+ await queryInterface.removeColumn(
6
+ "ContributionTransactionLine",
7
+ "accountId"
8
+ );
9
+
10
+ await queryInterface.addColumn(
11
+ "ContributionTransactionLine",
12
+ "pledgeAccountId",
13
+ {
14
+ type: DataTypes.INTEGER,
15
+ allowNull: true
16
+ }
17
+ );
18
+
19
+ await queryInterface.addConstraint("ContributionTransactionLine", {
20
+ fields: ["pledgeAccountId"],
21
+ type: "foreign key",
22
+ name: "ContributionTxnLine_PledgeAccountId_Fkey",
23
+ references: {
24
+ table: "PledgeAccount",
25
+ field: "id",
26
+ },
27
+ onDelete: "cascade",
28
+ onUpdate: "cascade",
29
+ });
30
+ },
31
+
32
+ down: async (queryInterface, DataTypes) => {}
33
+ };
@@ -1,31 +1,31 @@
1
- "use strict";
2
- module.exports = {
3
- up: async (queryInterface, DataTypes) => {
4
- await queryInterface.createTable(
5
- "SubscriptionPlan",
6
- {
7
- id: {
8
- type: DataTypes.INTEGER,
9
- primaryKey: true,
10
- autoIncrement: true,
11
- },
12
- name: { type: DataTypes.STRING },
13
- isFree: { type: DataTypes.BOOLEAN, defaultValue: false },
14
- isCustom: { type: DataTypes.BOOLEAN, defaultValue: false },
15
- status: { type: DataTypes.BOOLEAN, defaultValue: true },
16
- createdAt: {
17
- type: DataTypes.DATE,
18
- defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
19
- },
20
- updatedAt: {
21
- type: DataTypes.DATE,
22
- defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
23
- },
24
- },
25
- { timestamps: false }
26
- );
27
- },
28
- down: async (queryInterface) => {
29
- await queryInterface.dropTable("SubscriptionPlan");
30
- },
31
- };
1
+ "use strict";
2
+ module.exports = {
3
+ up: async (queryInterface, DataTypes) => {
4
+ await queryInterface.createTable(
5
+ "SubscriptionPlan",
6
+ {
7
+ id: {
8
+ type: DataTypes.INTEGER,
9
+ primaryKey: true,
10
+ autoIncrement: true,
11
+ },
12
+ name: { type: DataTypes.STRING },
13
+ isFree: { type: DataTypes.BOOLEAN, defaultValue: false },
14
+ isCustom: { type: DataTypes.BOOLEAN, defaultValue: false },
15
+ status: { type: DataTypes.BOOLEAN, defaultValue: true },
16
+ createdAt: {
17
+ type: DataTypes.DATE,
18
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
19
+ },
20
+ updatedAt: {
21
+ type: DataTypes.DATE,
22
+ defaultValue: DataTypes.literal("CURRENT_TIMESTAMP"),
23
+ },
24
+ },
25
+ { timestamps: false }
26
+ );
27
+ },
28
+ down: async (queryInterface) => {
29
+ await queryInterface.dropTable("SubscriptionPlan");
30
+ },
31
+ };