@stamhoofd/models 2.39.0 → 2.40.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.
- package/dist/src/factories/AddressFactory.d.ts +3 -4
- package/dist/src/factories/AddressFactory.d.ts.map +1 -1
- package/dist/src/factories/AddressFactory.js +13 -13
- package/dist/src/factories/EmergencyContactFactory.d.ts +3 -4
- package/dist/src/factories/EmergencyContactFactory.d.ts.map +1 -1
- package/dist/src/factories/EmergencyContactFactory.js +27 -27
- package/dist/src/factories/EmergencyContactFactory.js.map +1 -1
- package/dist/src/factories/GroupFactory.d.ts +4 -4
- package/dist/src/factories/GroupFactory.d.ts.map +1 -1
- package/dist/src/factories/GroupFactory.js +8 -8
- package/dist/src/factories/GroupFactory.js.map +1 -1
- package/dist/src/factories/MemberFactory.d.ts +4 -4
- package/dist/src/factories/MemberFactory.d.ts.map +1 -1
- package/dist/src/factories/MemberFactory.js +17 -17
- package/dist/src/factories/MemberFactory.js.map +1 -1
- package/dist/src/factories/OrganizationFactory.d.ts +4 -4
- package/dist/src/factories/OrganizationFactory.js +8 -8
- package/dist/src/factories/OrganizationFactory.js.map +1 -1
- package/dist/src/factories/ParentFactory.d.ts +1 -1
- package/dist/src/factories/ParentFactory.js +19 -19
- package/dist/src/factories/ParentFactory.js.map +1 -1
- package/dist/src/factories/RecordFactory.d.ts +2 -3
- package/dist/src/factories/RecordFactory.d.ts.map +1 -1
- package/dist/src/factories/RecordFactory.js +1 -1
- package/dist/src/factories/RecordFactory.js.map +1 -1
- package/dist/src/factories/RegisterCodeFactory.d.ts +2 -2
- package/dist/src/factories/RegisterCodeFactory.d.ts.map +1 -1
- package/dist/src/factories/RegisterCodeFactory.js +2 -2
- package/dist/src/factories/RegistrationFactory.d.ts +3 -3
- package/dist/src/factories/RegistrationFactory.d.ts.map +1 -1
- package/dist/src/factories/RegistrationFactory.js.map +1 -1
- package/dist/src/factories/RegistrationPeriodFactory.d.ts +2 -2
- package/dist/src/factories/RegistrationPeriodFactory.js.map +1 -1
- package/dist/src/factories/UserFactory.d.ts +3 -3
- package/dist/src/factories/UserFactory.d.ts.map +1 -1
- package/dist/src/factories/UserFactory.js +3 -3
- package/dist/src/factories/UserFactory.js.map +1 -1
- package/dist/src/factories/WebshopFactory.d.ts +4 -4
- package/dist/src/factories/WebshopFactory.d.ts.map +1 -1
- package/dist/src/factories/WebshopFactory.js +1 -1
- package/dist/src/factories/WebshopFactory.js.map +1 -1
- package/dist/src/helpers/DNSValidator.d.ts +1 -1
- package/dist/src/helpers/DNSValidator.d.ts.map +1 -1
- package/dist/src/helpers/DNSValidator.js +33 -33
- package/dist/src/helpers/DNSValidator.js.map +1 -1
- package/dist/src/helpers/EmailBuilder.d.ts +10 -10
- package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
- package/dist/src/helpers/EmailBuilder.js +34 -34
- package/dist/src/helpers/EmailBuilder.js.map +1 -1
- package/dist/src/helpers/GroupBuilder.d.ts.map +1 -1
- package/dist/src/helpers/GroupBuilder.js +57 -57
- package/dist/src/helpers/GroupBuilder.js.map +1 -1
- package/dist/src/helpers/Handlebars.d.ts.map +1 -1
- package/dist/src/helpers/Handlebars.js +29 -29
- package/dist/src/helpers/Handlebars.js.map +1 -1
- package/dist/src/helpers/MemberMerger.d.ts +1 -1
- package/dist/src/helpers/MemberMerger.d.ts.map +1 -1
- package/dist/src/helpers/MemberMerger.js +33 -33
- package/dist/src/helpers/MemberMerger.js.map +1 -1
- package/dist/src/helpers/MemberMerger.test.js +194 -194
- package/dist/src/helpers/MemberMerger.test.js.map +1 -1
- package/dist/src/helpers/RateLimiter.d.ts.map +1 -1
- package/dist/src/helpers/RateLimiter.js +2 -2
- package/dist/src/helpers/RateLimiter.js.map +1 -1
- package/dist/src/helpers/SetupStepsUpdater.d.ts +22 -0
- package/dist/src/helpers/SetupStepsUpdater.d.ts.map +1 -0
- package/dist/src/helpers/SetupStepsUpdater.js +255 -0
- package/dist/src/helpers/SetupStepsUpdater.js.map +1 -0
- package/dist/src/helpers/WebshopCounter.d.ts +1 -1
- package/dist/src/helpers/WebshopCounter.d.ts.map +1 -1
- package/dist/src/helpers/WebshopCounter.js +1 -1
- package/dist/src/helpers/WebshopCounter.js.map +1 -1
- package/dist/src/helpers/WebshopCounter.test.js +6 -6
- package/dist/src/helpers/WebshopCounter.test.js.map +1 -1
- package/dist/src/index.d.ts +20 -19
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrations/1605262045-import-postcodes.js +12 -12
- package/dist/src/migrations/1605262046-import-postcodes-nl.js +10 -10
- package/dist/src/models/BalanceItem.d.ts.map +1 -1
- package/dist/src/models/BalanceItem.js +37 -37
- package/dist/src/models/BalanceItem.js.map +1 -1
- package/dist/src/models/BalanceItemPayment.d.ts.map +1 -1
- package/dist/src/models/BalanceItemPayment.js +13 -13
- package/dist/src/models/BalanceItemPayment.js.map +1 -1
- package/dist/src/models/BuckarooPayment.d.ts +1 -1
- package/dist/src/models/BuckarooPayment.d.ts.map +1 -1
- package/dist/src/models/BuckarooPayment.js +5 -5
- package/dist/src/models/BuckarooPayment.js.map +1 -1
- package/dist/src/models/CachedOutstandingBalance.d.ts.map +1 -1
- package/dist/src/models/CachedOutstandingBalance.js +37 -37
- package/dist/src/models/CachedOutstandingBalance.js.map +1 -1
- package/dist/src/models/Document.d.ts +4 -4
- package/dist/src/models/Document.d.ts.map +1 -1
- package/dist/src/models/Document.js +27 -27
- package/dist/src/models/Document.js.map +1 -1
- package/dist/src/models/DocumentTemplate.d.ts +4 -4
- package/dist/src/models/DocumentTemplate.d.ts.map +1 -1
- package/dist/src/models/DocumentTemplate.js +72 -72
- package/dist/src/models/DocumentTemplate.js.map +1 -1
- package/dist/src/models/Email.d.ts.map +1 -1
- package/dist/src/models/Email.js +63 -64
- package/dist/src/models/Email.js.map +1 -1
- package/dist/src/models/EmailRecipient.d.ts.map +1 -1
- package/dist/src/models/EmailRecipient.js +20 -20
- package/dist/src/models/EmailRecipient.js.map +1 -1
- package/dist/src/models/EmailTemplate.d.ts +3 -3
- package/dist/src/models/EmailTemplate.d.ts.map +1 -1
- package/dist/src/models/EmailTemplate.js +16 -16
- package/dist/src/models/EmailTemplate.js.map +1 -1
- package/dist/src/models/EmailVerificationCode.d.ts +2 -2
- package/dist/src/models/EmailVerificationCode.d.ts.map +1 -1
- package/dist/src/models/EmailVerificationCode.js +57 -55
- package/dist/src/models/EmailVerificationCode.js.map +1 -1
- package/dist/src/models/Event.d.ts +2 -2
- package/dist/src/models/Event.d.ts.map +1 -1
- package/dist/src/models/Event.js +15 -15
- package/dist/src/models/Event.js.map +1 -1
- package/dist/src/models/Group.d.ts +3 -1
- package/dist/src/models/Group.d.ts.map +1 -1
- package/dist/src/models/Group.js +46 -35
- package/dist/src/models/Group.js.map +1 -1
- package/dist/src/models/Image.d.ts +1 -1
- package/dist/src/models/Image.d.ts.map +1 -1
- package/dist/src/models/Image.js +26 -26
- package/dist/src/models/Image.js.map +1 -1
- package/dist/src/models/Member.d.ts +8 -8
- package/dist/src/models/Member.d.ts.map +1 -1
- package/dist/src/models/Member.js +60 -60
- package/dist/src/models/Member.js.map +1 -1
- package/dist/src/models/MemberPlatformMembership.d.ts +3 -3
- package/dist/src/models/MemberPlatformMembership.d.ts.map +1 -1
- package/dist/src/models/MemberPlatformMembership.js +26 -26
- package/dist/src/models/MemberPlatformMembership.js.map +1 -1
- package/dist/src/models/MemberResponsibilityRecord.d.ts.map +1 -1
- package/dist/src/models/MemberResponsibilityRecord.js +13 -13
- package/dist/src/models/MemberResponsibilityRecord.js.map +1 -1
- package/dist/src/models/MergedMember.d.ts +3 -3
- package/dist/src/models/MergedMember.d.ts.map +1 -1
- package/dist/src/models/MergedMember.js +19 -19
- package/dist/src/models/MergedMember.js.map +1 -1
- package/dist/src/models/MolliePayment.d.ts +1 -1
- package/dist/src/models/MolliePayment.d.ts.map +1 -1
- package/dist/src/models/MolliePayment.js +5 -5
- package/dist/src/models/MolliePayment.js.map +1 -1
- package/dist/src/models/MollieToken.d.ts.map +1 -1
- package/dist/src/models/MollieToken.js +60 -60
- package/dist/src/models/MollieToken.js.map +1 -1
- package/dist/src/models/OneTimeToken.d.ts +2 -2
- package/dist/src/models/OneTimeToken.d.ts.map +1 -1
- package/dist/src/models/OneTimeToken.js +13 -13
- package/dist/src/models/OneTimeToken.js.map +1 -1
- package/dist/src/models/Order.d.ts +1 -1
- package/dist/src/models/Order.d.ts.map +1 -1
- package/dist/src/models/Order.js +70 -70
- package/dist/src/models/Order.js.map +1 -1
- package/dist/src/models/Organization.d.ts +5 -5
- package/dist/src/models/Organization.d.ts.map +1 -1
- package/dist/src/models/Organization.js +127 -127
- package/dist/src/models/Organization.js.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/OrganizationRegistrationPeriod.js +15 -15
- package/dist/src/models/OrganizationRegistrationPeriod.js.map +1 -1
- package/dist/src/models/PasswordToken.d.ts +3 -3
- package/dist/src/models/PasswordToken.d.ts.map +1 -1
- package/dist/src/models/PasswordToken.js +17 -17
- package/dist/src/models/PasswordToken.js.map +1 -1
- package/dist/src/models/PayconiqPayment.d.ts +1 -1
- package/dist/src/models/PayconiqPayment.d.ts.map +1 -1
- package/dist/src/models/PayconiqPayment.js +49 -49
- package/dist/src/models/PayconiqPayment.js.map +1 -1
- package/dist/src/models/Payment.d.ts +3 -3
- package/dist/src/models/Payment.d.ts.map +1 -1
- package/dist/src/models/Payment.js +36 -36
- package/dist/src/models/Payment.js.map +1 -1
- package/dist/src/models/Platform.d.ts +2 -2
- package/dist/src/models/Platform.d.ts.map +1 -1
- package/dist/src/models/Platform.js +8 -8
- package/dist/src/models/Platform.js.map +1 -1
- package/dist/src/models/RegisterCode.d.ts +1 -1
- package/dist/src/models/RegisterCode.d.ts.map +1 -1
- package/dist/src/models/RegisterCode.js +11 -11
- package/dist/src/models/RegisterCode.js.map +1 -1
- package/dist/src/models/Registration.d.ts +1 -1
- package/dist/src/models/Registration.d.ts.map +1 -1
- package/dist/src/models/Registration.js +88 -88
- package/dist/src/models/Registration.js.map +1 -1
- package/dist/src/models/RegistrationPeriod.d.ts.map +1 -1
- package/dist/src/models/RegistrationPeriod.js +12 -12
- package/dist/src/models/RegistrationPeriod.js.map +1 -1
- package/dist/src/models/STCredit.d.ts +1 -1
- package/dist/src/models/STCredit.d.ts.map +1 -1
- package/dist/src/models/STCredit.js +12 -12
- package/dist/src/models/STCredit.js.map +1 -1
- package/dist/src/models/STInvoice.d.ts +1 -1
- package/dist/src/models/STInvoice.d.ts.map +1 -1
- package/dist/src/models/STInvoice.js +16 -16
- package/dist/src/models/STInvoice.js.map +1 -1
- package/dist/src/models/STPackage.d.ts +1 -1
- package/dist/src/models/STPackage.d.ts.map +1 -1
- package/dist/src/models/STPackage.js +39 -39
- package/dist/src/models/STPackage.js.map +1 -1
- package/dist/src/models/STPendingInvoice.d.ts +1 -1
- package/dist/src/models/STPendingInvoice.d.ts.map +1 -1
- package/dist/src/models/STPendingInvoice.js +11 -11
- package/dist/src/models/STPendingInvoice.js.map +1 -1
- package/dist/src/models/StripeAccount.d.ts.map +1 -1
- package/dist/src/models/StripeAccount.js +13 -13
- package/dist/src/models/StripeAccount.js.map +1 -1
- package/dist/src/models/StripeCheckoutSession.d.ts +1 -1
- package/dist/src/models/StripeCheckoutSession.d.ts.map +1 -1
- package/dist/src/models/StripeCheckoutSession.js +7 -7
- package/dist/src/models/StripeCheckoutSession.js.map +1 -1
- package/dist/src/models/StripePaymentIntent.d.ts +1 -1
- package/dist/src/models/StripePaymentIntent.d.ts.map +1 -1
- package/dist/src/models/StripePaymentIntent.js +7 -7
- package/dist/src/models/StripePaymentIntent.js.map +1 -1
- package/dist/src/models/Ticket.d.ts +2 -2
- package/dist/src/models/Ticket.d.ts.map +1 -1
- package/dist/src/models/Ticket.js +23 -23
- package/dist/src/models/Ticket.js.map +1 -1
- package/dist/src/models/Token.d.ts +3 -3
- package/dist/src/models/Token.d.ts.map +1 -1
- package/dist/src/models/Token.js +27 -27
- package/dist/src/models/Token.js.map +1 -1
- package/dist/src/models/Token.test.js +11 -11
- package/dist/src/models/UsedRegisterCode.d.ts +1 -1
- package/dist/src/models/UsedRegisterCode.d.ts.map +1 -1
- package/dist/src/models/UsedRegisterCode.js +10 -10
- package/dist/src/models/UsedRegisterCode.js.map +1 -1
- package/dist/src/models/User.d.ts +4 -4
- package/dist/src/models/User.d.ts.map +1 -1
- package/dist/src/models/User.js +53 -51
- package/dist/src/models/User.js.map +1 -1
- package/dist/src/models/UserPermissions.d.ts +3 -3
- package/dist/src/models/UserPermissions.d.ts.map +1 -1
- package/dist/src/models/UserPermissions.js +12 -12
- package/dist/src/models/UserPermissions.js.map +1 -1
- package/dist/src/models/Webshop.d.ts +1 -1
- package/dist/src/models/Webshop.d.ts.map +1 -1
- package/dist/src/models/Webshop.js +23 -23
- package/dist/src/models/Webshop.js.map +1 -1
- package/dist/src/models/WebshopDiscountCode.d.ts +1 -1
- package/dist/src/models/WebshopDiscountCode.d.ts.map +1 -1
- package/dist/src/models/WebshopDiscountCode.js +16 -16
- package/dist/src/models/WebshopDiscountCode.js.map +1 -1
- package/dist/src/models/addresses/City.d.ts.map +1 -1
- package/dist/src/models/addresses/City.js +9 -9
- package/dist/src/models/addresses/City.js.map +1 -1
- package/dist/src/models/addresses/PostalCode.d.ts.map +1 -1
- package/dist/src/models/addresses/PostalCode.js +11 -11
- package/dist/src/models/addresses/PostalCode.js.map +1 -1
- package/dist/src/models/addresses/PostalCode.test.js +22 -22
- package/dist/src/models/addresses/PostalCode.test.js.map +1 -1
- package/dist/src/models/addresses/Province.d.ts.map +1 -1
- package/dist/src/models/addresses/Province.js +5 -5
- package/dist/src/models/addresses/Province.js.map +1 -1
- package/dist/src/models/addresses/Street.d.ts.map +1 -1
- package/dist/src/models/addresses/Street.js +6 -6
- package/dist/src/models/addresses/Street.js.map +1 -1
- package/dist/src/models/index.d.ts +46 -46
- package/dist/src/models/index.d.ts.map +1 -1
- package/dist/src/models/index.js +0 -1
- package/dist/src/models/index.js.map +1 -1
- package/dist/src/structures/OrganizationServerMetaData.d.ts.map +1 -1
- package/dist/src/structures/OrganizationServerMetaData.js +4 -4
- package/dist/src/structures/OrganizationServerMetaData.js.map +1 -1
- package/dist/tests/jest.global.setup.d.ts.map +1 -1
- package/dist/tests/jest.global.setup.js +15 -13
- package/dist/tests/jest.global.setup.js.map +1 -1
- package/dist/tests/jest.setup.js +3 -1
- package/dist/tests/jest.setup.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -3
- package/src/factories/AddressFactory.ts +17 -17
- package/src/factories/EmergencyContactFactory.ts +30 -31
- package/src/factories/GroupFactory.ts +30 -30
- package/src/factories/MemberFactory.ts +41 -38
- package/src/factories/OrganizationFactory.ts +15 -15
- package/src/factories/ParentFactory.ts +24 -24
- package/src/factories/RecordFactory.ts +5 -4
- package/src/factories/RegisterCodeFactory.ts +7 -7
- package/src/factories/RegistrationFactory.ts +16 -16
- package/src/factories/RegistrationPeriodFactory.ts +5 -5
- package/src/factories/UserFactory.ts +20 -19
- package/src/factories/WebshopFactory.ts +14 -14
- package/src/helpers/DNSValidator.ts +89 -84
- package/src/helpers/EmailBuilder.ts +141 -135
- package/src/helpers/GroupBuilder.ts +181 -181
- package/src/helpers/Handlebars.ts +57 -54
- package/src/helpers/MemberMerger.test.ts +702 -702
- package/src/helpers/MemberMerger.ts +83 -77
- package/src/helpers/RateLimiter.ts +25 -27
- package/src/helpers/SetupStepsUpdater.ts +402 -0
- package/src/helpers/WebshopCounter.test.ts +12 -12
- package/src/helpers/WebshopCounter.ts +20 -19
- package/src/index.ts +20 -19
- package/src/migrations/1605262045-import-postcodes.ts +59 -63
- package/src/migrations/1605262046-import-postcodes-nl.ts +41 -43
- package/src/models/BalanceItem.ts +173 -172
- package/src/models/BalanceItemPayment.ts +32 -33
- package/src/models/BuckarooPayment.ts +7 -7
- package/src/models/CachedOutstandingBalance.ts +98 -99
- package/src/models/Document.ts +90 -87
- package/src/models/DocumentTemplate.ts +207 -198
- package/src/models/Email.ts +198 -200
- package/src/models/EmailRecipient.ts +38 -39
- package/src/models/EmailTemplate.ts +36 -37
- package/src/models/EmailVerificationCode.ts +146 -142
- package/src/models/Event.ts +53 -53
- package/src/models/Group.ts +136 -123
- package/src/models/Image.ts +48 -48
- package/src/models/Member.ts +277 -275
- package/src/models/MemberPlatformMembership.ts +71 -71
- package/src/models/MemberResponsibilityRecord.ts +32 -32
- package/src/models/MergedMember.ts +77 -77
- package/src/models/MolliePayment.ts +7 -7
- package/src/models/MollieToken.ts +131 -126
- package/src/models/OneTimeToken.ts +40 -39
- package/src/models/Order.ts +379 -372
- package/src/models/Organization.ts +332 -325
- package/src/models/OrganizationRegistrationPeriod.ts +50 -50
- package/src/models/PasswordToken.ts +42 -42
- package/src/models/PayconiqPayment.ts +80 -76
- package/src/models/Payment.ts +86 -86
- package/src/models/Platform.ts +21 -22
- package/src/models/RegisterCode.ts +26 -26
- package/src/models/Registration.ts +167 -168
- package/src/models/RegistrationPeriod.ts +29 -29
- package/src/models/STCredit.ts +24 -25
- package/src/models/STInvoice.ts +34 -34
- package/src/models/STPackage.ts +143 -136
- package/src/models/STPendingInvoice.ts +26 -26
- package/src/models/StripeAccount.ts +27 -27
- package/src/models/StripeCheckoutSession.ts +10 -10
- package/src/models/StripePaymentIntent.ts +10 -10
- package/src/models/Ticket.ts +51 -52
- package/src/models/Token.test.ts +13 -13
- package/src/models/Token.ts +64 -63
- package/src/models/UsedRegisterCode.ts +20 -21
- package/src/models/User.ts +148 -144
- package/src/models/UserPermissions.ts +25 -28
- package/src/models/Webshop.ts +53 -53
- package/src/models/WebshopDiscountCode.ts +33 -33
- package/src/models/addresses/City.ts +12 -12
- package/src/models/addresses/PostalCode.test.ts +68 -69
- package/src/models/addresses/PostalCode.ts +57 -57
- package/src/models/addresses/Province.ts +8 -8
- package/src/models/addresses/Street.ts +10 -12
- package/src/models/index.ts +54 -55
- package/src/structures/OrganizationServerMetaData.ts +36 -36
package/src/models/Payment.ts
CHANGED
|
@@ -1,217 +1,217 @@
|
|
|
1
1
|
import { column, Model, SQLResultNamespacedRow } from '@simonbackx/simple-database';
|
|
2
2
|
import { BalanceItemDetailed, BalanceItemPaymentDetailed, PaymentCustomer, PaymentGeneral, PaymentMethod, PaymentProvider, PaymentStatus, Settlement, TransferSettings } from '@stamhoofd/structures';
|
|
3
3
|
import { Formatter } from '@stamhoofd/utility';
|
|
4
|
-
import { v4 as uuidv4 } from
|
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
5
5
|
|
|
6
6
|
import { Organization } from './';
|
|
7
7
|
import { SQL, SQLSelect } from '@stamhoofd/sql';
|
|
8
8
|
|
|
9
9
|
export class Payment extends Model {
|
|
10
|
-
static table =
|
|
10
|
+
static table = 'payments';
|
|
11
11
|
|
|
12
12
|
@column({
|
|
13
|
-
primary: true, type:
|
|
13
|
+
primary: true, type: 'string', beforeSave(value) {
|
|
14
14
|
return value ?? uuidv4();
|
|
15
|
-
}
|
|
15
|
+
},
|
|
16
16
|
})
|
|
17
17
|
id!: string;
|
|
18
18
|
|
|
19
|
-
@column({ type:
|
|
19
|
+
@column({ type: 'string' })
|
|
20
20
|
method: PaymentMethod;
|
|
21
21
|
|
|
22
|
-
@column({ type:
|
|
23
|
-
customer: PaymentCustomer | null = null
|
|
22
|
+
@column({ type: 'json', decoder: PaymentCustomer, nullable: true })
|
|
23
|
+
customer: PaymentCustomer | null = null;
|
|
24
24
|
|
|
25
|
-
@column({ type:
|
|
25
|
+
@column({ type: 'string', nullable: true })
|
|
26
26
|
provider: PaymentProvider | null = null;
|
|
27
27
|
|
|
28
|
-
@column({ type:
|
|
28
|
+
@column({ type: 'string' })
|
|
29
29
|
status: PaymentStatus;
|
|
30
30
|
|
|
31
|
-
@column({ type:
|
|
32
|
-
organizationId: string| null = null
|
|
31
|
+
@column({ type: 'string', nullable: true })
|
|
32
|
+
organizationId: string | null = null;
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* payingUserId
|
|
36
36
|
*/
|
|
37
|
-
@column({ type:
|
|
37
|
+
@column({ type: 'string', nullable: true })
|
|
38
38
|
payingUserId: string | null = null;
|
|
39
39
|
|
|
40
40
|
/**
|
|
41
41
|
* @deprecated
|
|
42
42
|
*/
|
|
43
43
|
get userId() {
|
|
44
|
-
return this.payingUserId
|
|
44
|
+
return this.payingUserId;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* @deprecated
|
|
49
49
|
*/
|
|
50
|
-
set userId(id: string|null) {
|
|
51
|
-
this.payingUserId = id
|
|
50
|
+
set userId(id: string | null) {
|
|
51
|
+
this.payingUserId = id;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* If an organization paid, this contains the organization id
|
|
56
56
|
*/
|
|
57
|
-
@column({ type:
|
|
57
|
+
@column({ type: 'string', nullable: true })
|
|
58
58
|
payingOrganizationId: string | null = null;
|
|
59
59
|
|
|
60
|
-
@column({ type:
|
|
60
|
+
@column({ type: 'string', nullable: true })
|
|
61
61
|
stripeAccountId: string | null = null;
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
64
|
* Total price
|
|
65
65
|
*/
|
|
66
|
-
@column({ type:
|
|
66
|
+
@column({ type: 'integer' })
|
|
67
67
|
price: number;
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* Fee paid to the payment provider (if available, otherwise set to 0)
|
|
71
71
|
*/
|
|
72
|
-
@column({ type:
|
|
73
|
-
transferFee = 0
|
|
72
|
+
@column({ type: 'integer' })
|
|
73
|
+
transferFee = 0;
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
* Included in the total price
|
|
77
77
|
*/
|
|
78
|
-
@column({ type:
|
|
78
|
+
@column({ type: 'integer', nullable: true })
|
|
79
79
|
freeContribution: number | null = null;
|
|
80
80
|
|
|
81
|
-
@column({ type:
|
|
81
|
+
@column({ type: 'string', nullable: true })
|
|
82
82
|
transferDescription: string | null = null;
|
|
83
83
|
|
|
84
|
-
@column({ type:
|
|
84
|
+
@column({ type: 'json', nullable: true, decoder: TransferSettings })
|
|
85
85
|
transferSettings: TransferSettings | null = null;
|
|
86
86
|
|
|
87
87
|
@column({
|
|
88
|
-
type:
|
|
88
|
+
type: 'datetime', beforeSave(old?: any) {
|
|
89
89
|
if (old !== undefined) {
|
|
90
90
|
return old;
|
|
91
91
|
}
|
|
92
|
-
const date = new Date()
|
|
93
|
-
date.setMilliseconds(0)
|
|
94
|
-
return date
|
|
95
|
-
}
|
|
92
|
+
const date = new Date();
|
|
93
|
+
date.setMilliseconds(0);
|
|
94
|
+
return date;
|
|
95
|
+
},
|
|
96
96
|
})
|
|
97
|
-
createdAt: Date
|
|
97
|
+
createdAt: Date;
|
|
98
98
|
|
|
99
|
-
_forceUpdatedAt: Date | null = null
|
|
99
|
+
_forceUpdatedAt: Date | null = null;
|
|
100
100
|
|
|
101
101
|
@column({
|
|
102
|
-
type:
|
|
102
|
+
type: 'datetime', beforeSave() {
|
|
103
103
|
if (this._forceUpdatedAt) {
|
|
104
|
-
return this._forceUpdatedAt
|
|
104
|
+
return this._forceUpdatedAt;
|
|
105
105
|
}
|
|
106
|
-
const date = new Date()
|
|
107
|
-
date.setMilliseconds(0)
|
|
108
|
-
return date
|
|
106
|
+
const date = new Date();
|
|
107
|
+
date.setMilliseconds(0);
|
|
108
|
+
return date;
|
|
109
109
|
},
|
|
110
|
-
skipUpdate: true
|
|
110
|
+
skipUpdate: true,
|
|
111
111
|
})
|
|
112
|
-
updatedAt: Date
|
|
112
|
+
updatedAt: Date;
|
|
113
113
|
|
|
114
|
-
@column({ type:
|
|
115
|
-
paidAt: Date | null = null
|
|
114
|
+
@column({ type: 'datetime', nullable: true })
|
|
115
|
+
paidAt: Date | null = null;
|
|
116
116
|
|
|
117
117
|
/// Settlement meta data
|
|
118
|
-
@column({ type:
|
|
118
|
+
@column({ type: 'json', decoder: Settlement, nullable: true })
|
|
119
119
|
settlement: Settlement | null = null;
|
|
120
120
|
|
|
121
|
-
@column({ type:
|
|
121
|
+
@column({ type: 'string', nullable: true })
|
|
122
122
|
iban: string | null = null;
|
|
123
123
|
|
|
124
|
-
@column({ type:
|
|
124
|
+
@column({ type: 'string', nullable: true })
|
|
125
125
|
ibanName: string | null = null;
|
|
126
126
|
|
|
127
127
|
generateDescription(organization: Organization, reference: string, replacements: { [key: string]: string } = {}) {
|
|
128
|
-
const settings = this.transferSettings ?? organization.meta.transferSettings
|
|
129
|
-
this.transferDescription = settings.generateDescription(reference, organization.address.country, replacements)
|
|
128
|
+
const settings = this.transferSettings ?? organization.meta.transferSettings;
|
|
129
|
+
this.transferDescription = settings.generateDescription(reference, organization.address.country, replacements);
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
static async getGeneralStructure(payments: Payment[], includeSettlements = false): Promise<PaymentGeneral[]> {
|
|
133
133
|
if (payments.length === 0) {
|
|
134
|
-
return []
|
|
134
|
+
return [];
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
const {balanceItemPayments, balanceItems} = await Payment.loadBalanceItems(payments)
|
|
138
|
-
|
|
137
|
+
const { balanceItemPayments, balanceItems } = await Payment.loadBalanceItems(payments);
|
|
138
|
+
|
|
139
139
|
return this.getGeneralStructureFromRelations({
|
|
140
140
|
payments,
|
|
141
141
|
balanceItemPayments,
|
|
142
|
-
balanceItems
|
|
143
|
-
}, includeSettlements)
|
|
142
|
+
balanceItems,
|
|
143
|
+
}, includeSettlements);
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
static getGeneralStructureFromRelations({payments, balanceItemPayments, balanceItems}: {
|
|
146
|
+
static getGeneralStructureFromRelations({ payments, balanceItemPayments, balanceItems }: {
|
|
147
147
|
payments: Payment[];
|
|
148
|
-
balanceItemPayments: import(
|
|
149
|
-
balanceItems: import(
|
|
148
|
+
balanceItemPayments: import('./BalanceItemPayment').BalanceItemPayment[];
|
|
149
|
+
balanceItems: import('./BalanceItem').BalanceItem[];
|
|
150
150
|
}, includeSettlements = false): PaymentGeneral[] {
|
|
151
151
|
if (payments.length === 0) {
|
|
152
|
-
return []
|
|
152
|
+
return [];
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
return payments.map(payment => {
|
|
155
|
+
return payments.map((payment) => {
|
|
156
156
|
return PaymentGeneral.create({
|
|
157
157
|
...payment,
|
|
158
158
|
balanceItemPayments: balanceItemPayments.filter(item => item.paymentId === payment.id).map((item) => {
|
|
159
|
-
const balanceItem = balanceItems.find(b => b.id === item.balanceItemId)
|
|
159
|
+
const balanceItem = balanceItems.find(b => b.id === item.balanceItemId);
|
|
160
160
|
|
|
161
161
|
return BalanceItemPaymentDetailed.create({
|
|
162
162
|
...item,
|
|
163
163
|
balanceItem: BalanceItemDetailed.create({
|
|
164
|
-
...balanceItem
|
|
165
|
-
})
|
|
166
|
-
})
|
|
164
|
+
...balanceItem,
|
|
165
|
+
}),
|
|
166
|
+
});
|
|
167
167
|
}),
|
|
168
|
-
...(payment.provider !== PaymentProvider.Stripe ? {stripeAccountId: null} : {}),
|
|
169
|
-
...(!includeSettlements) ? {settlement: null, transferFee: 0, stripeAccountId: null} : {}
|
|
170
|
-
})
|
|
171
|
-
})
|
|
168
|
+
...(payment.provider !== PaymentProvider.Stripe ? { stripeAccountId: null } : {}),
|
|
169
|
+
...(!includeSettlements) ? { settlement: null, transferFee: 0, stripeAccountId: null } : {},
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
/**
|
|
175
|
-
*
|
|
175
|
+
*
|
|
176
176
|
* @param checkPermissions Only set to undefined when not returned in the API + not for public use
|
|
177
|
-
* @returns
|
|
177
|
+
* @returns
|
|
178
178
|
*/
|
|
179
179
|
async getGeneralStructure(): Promise<PaymentGeneral> {
|
|
180
|
-
return (await Payment.getGeneralStructure([this], false))[0]
|
|
180
|
+
return (await Payment.getGeneralStructure([this], false))[0];
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
static async loadBalanceItems(payments: Payment[]) {
|
|
184
184
|
if (payments.length === 0) {
|
|
185
|
-
return {balanceItemPayments: [], balanceItems: []}
|
|
185
|
+
return { balanceItemPayments: [], balanceItems: [] };
|
|
186
186
|
}
|
|
187
|
-
const {BalanceItemPayment} = await import(
|
|
188
|
-
const {BalanceItem} = await import(
|
|
187
|
+
const { BalanceItemPayment } = await import('./BalanceItemPayment');
|
|
188
|
+
const { BalanceItem } = await import('./BalanceItem');
|
|
189
189
|
|
|
190
190
|
// Load all the related models from the database so we can build the structures
|
|
191
191
|
const balanceItemPayments = await BalanceItemPayment.where({
|
|
192
192
|
paymentId: {
|
|
193
193
|
sign: 'IN',
|
|
194
|
-
value: payments.map(p => p.id)
|
|
195
|
-
}
|
|
196
|
-
})
|
|
194
|
+
value: payments.map(p => p.id),
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
197
|
const ids = Formatter.uniqueArray(balanceItemPayments.flatMap(p => p.balanceItemId));
|
|
198
198
|
const balanceItems = await BalanceItem.getByIDs(...ids);
|
|
199
199
|
|
|
200
|
-
return {balanceItemPayments, balanceItems}
|
|
200
|
+
return { balanceItemPayments, balanceItems };
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
static async loadBalanceItemRelations(balanceItems: import(
|
|
204
|
-
const {Order} = await import(
|
|
205
|
-
const {Member} = await import(
|
|
203
|
+
static async loadBalanceItemRelations(balanceItems: import('./BalanceItem').BalanceItem[]) {
|
|
204
|
+
const { Order } = await import('./Order');
|
|
205
|
+
const { Member } = await import('./Member');
|
|
206
206
|
|
|
207
207
|
// Load members and orders
|
|
208
|
-
const registrationIds = Formatter.uniqueArray(balanceItems.flatMap(b => b.registrationId ? [b.registrationId] : []))
|
|
209
|
-
const orderIds = Formatter.uniqueArray(balanceItems.flatMap(b => b.orderId ? [b.orderId] : []))
|
|
208
|
+
const registrationIds = Formatter.uniqueArray(balanceItems.flatMap(b => b.registrationId ? [b.registrationId] : []));
|
|
209
|
+
const orderIds = Formatter.uniqueArray(balanceItems.flatMap(b => b.orderId ? [b.orderId] : []));
|
|
210
210
|
|
|
211
|
-
const registrations = await Member.getRegistrationWithMembersByIDs(registrationIds)
|
|
212
|
-
const orders = await Order.getByIDs(...orderIds)
|
|
211
|
+
const registrations = await Member.getRegistrationWithMembersByIDs(registrationIds);
|
|
212
|
+
const orders = await Order.getByIDs(...orderIds);
|
|
213
213
|
|
|
214
|
-
return {registrations, orders}
|
|
214
|
+
return { registrations, orders };
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
/**
|
|
@@ -219,16 +219,16 @@ export class Payment extends Model {
|
|
|
219
219
|
*/
|
|
220
220
|
static select() {
|
|
221
221
|
const transformer = (row: SQLResultNamespacedRow): Payment => {
|
|
222
|
-
const d = (this as typeof Payment & typeof Model).fromRow(row[this.table] as any) as Payment|undefined
|
|
222
|
+
const d = (this as typeof Payment & typeof Model).fromRow(row[this.table] as any) as Payment | undefined;
|
|
223
223
|
|
|
224
224
|
if (!d) {
|
|
225
|
-
throw new Error(
|
|
225
|
+
throw new Error('EmailTemplate not found');
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
return d;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
const select = new SQLSelect(transformer, SQL.wildcard())
|
|
232
|
-
return select.from(SQL.table(this.table))
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
const select = new SQLSelect(transformer, SQL.wildcard());
|
|
232
|
+
return select.from(SQL.table(this.table));
|
|
233
233
|
}
|
|
234
234
|
}
|
package/src/models/Platform.ts
CHANGED
|
@@ -1,31 +1,30 @@
|
|
|
1
|
-
import { column, Model } from
|
|
2
|
-
import { QueueHandler } from
|
|
3
|
-
import { Platform as PlatformStruct,PlatformConfig, PlatformPrivateConfig } from
|
|
4
|
-
import { v4 as uuidv4 } from
|
|
5
|
-
import { RegistrationPeriod } from
|
|
6
|
-
|
|
1
|
+
import { column, Model } from '@simonbackx/simple-database';
|
|
2
|
+
import { QueueHandler } from '@stamhoofd/queues';
|
|
3
|
+
import { Platform as PlatformStruct, PlatformConfig, PlatformPrivateConfig } from '@stamhoofd/structures';
|
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
+
import { RegistrationPeriod } from './RegistrationPeriod';
|
|
7
6
|
|
|
8
7
|
export class Platform extends Model {
|
|
9
|
-
static table =
|
|
8
|
+
static table = 'platform';
|
|
10
9
|
|
|
11
10
|
@column({
|
|
12
|
-
primary: true, type:
|
|
11
|
+
primary: true, type: 'string', beforeSave(value) {
|
|
13
12
|
return value ?? uuidv4();
|
|
14
|
-
}
|
|
13
|
+
},
|
|
15
14
|
})
|
|
16
15
|
id!: string;
|
|
17
16
|
|
|
18
|
-
@column({ type:
|
|
19
|
-
config: PlatformConfig = PlatformConfig.create({})
|
|
17
|
+
@column({ type: 'json', decoder: PlatformConfig })
|
|
18
|
+
config: PlatformConfig = PlatformConfig.create({});
|
|
19
|
+
|
|
20
|
+
@column({ type: 'string' })
|
|
21
|
+
periodId: string;
|
|
20
22
|
|
|
21
|
-
@column({ type:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@column({ type: "string", nullable: true })
|
|
25
|
-
membershipOrganizationId: string | null = null
|
|
23
|
+
@column({ type: 'string', nullable: true })
|
|
24
|
+
membershipOrganizationId: string | null = null;
|
|
26
25
|
|
|
27
|
-
@column({ type:
|
|
28
|
-
privateConfig: PlatformPrivateConfig = PlatformPrivateConfig.create({})
|
|
26
|
+
@column({ type: 'json', decoder: PlatformPrivateConfig })
|
|
27
|
+
privateConfig: PlatformPrivateConfig = PlatformPrivateConfig.create({});
|
|
29
28
|
|
|
30
29
|
static sharedStruct: PlatformStruct | null = null;
|
|
31
30
|
|
|
@@ -38,7 +37,7 @@ export class Platform extends Model {
|
|
|
38
37
|
return clone;
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
static async getSharedPrivateStruct(): Promise<PlatformStruct & {privateConfig: PlatformPrivateConfig}> {
|
|
40
|
+
static async getSharedPrivateStruct(): Promise<PlatformStruct & { privateConfig: PlatformPrivateConfig }> {
|
|
42
41
|
if (this.sharedStruct && this.sharedStruct.privateConfig) {
|
|
43
42
|
return this.sharedStruct as any;
|
|
44
43
|
}
|
|
@@ -48,7 +47,7 @@ export class Platform extends Model {
|
|
|
48
47
|
const period = await RegistrationPeriod.getByID(model.periodId);
|
|
49
48
|
const struct = PlatformStruct.create({
|
|
50
49
|
...model,
|
|
51
|
-
period: period?.getStructure() ?? undefined
|
|
50
|
+
period: period?.getStructure() ?? undefined,
|
|
52
51
|
});
|
|
53
52
|
this.sharedStruct = struct;
|
|
54
53
|
|
|
@@ -77,8 +76,8 @@ export class Platform extends Model {
|
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
async save() {
|
|
80
|
-
Platform.clearCache()
|
|
81
|
-
const s = await super.save()
|
|
79
|
+
Platform.clearCache();
|
|
80
|
+
const s = await super.save();
|
|
82
81
|
|
|
83
82
|
// Force update cache immediately
|
|
84
83
|
await Platform.getSharedStruct();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { column, Model } from
|
|
2
|
-
import basex from
|
|
3
|
-
import crypto from
|
|
1
|
+
import { column, Model } from '@simonbackx/simple-database';
|
|
2
|
+
import basex from 'base-x';
|
|
3
|
+
import crypto from 'crypto';
|
|
4
4
|
|
|
5
|
-
const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
|
|
6
|
-
const bs58 = basex(ALPHABET)
|
|
5
|
+
const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
6
|
+
const bs58 = basex(ALPHABET);
|
|
7
7
|
|
|
8
8
|
async function randomBytes(size: number): Promise<Buffer> {
|
|
9
9
|
return new Promise((resolve, reject) => {
|
|
@@ -18,50 +18,50 @@ async function randomBytes(size: number): Promise<Buffer> {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export class RegisterCode extends Model {
|
|
21
|
-
static table =
|
|
21
|
+
static table = 'register_codes';
|
|
22
22
|
|
|
23
|
-
@column({ type:
|
|
23
|
+
@column({ type: 'string', primary: true })
|
|
24
24
|
code: string;
|
|
25
25
|
|
|
26
|
-
@column({ type:
|
|
26
|
+
@column({ type: 'string' })
|
|
27
27
|
description: string;
|
|
28
28
|
|
|
29
|
-
@column({ type:
|
|
30
|
-
customMessage: string|null = null;
|
|
29
|
+
@column({ type: 'string', nullable: true })
|
|
30
|
+
customMessage: string | null = null;
|
|
31
31
|
|
|
32
|
-
@column({ type:
|
|
32
|
+
@column({ type: 'string', nullable: true })
|
|
33
33
|
organizationId: string | null;
|
|
34
34
|
|
|
35
|
-
@column({ type:
|
|
35
|
+
@column({ type: 'integer' })
|
|
36
36
|
value: number;
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
39
|
* Invoice usages to the owning organization
|
|
40
40
|
*/
|
|
41
|
-
@column({ type:
|
|
42
|
-
invoiceValue: number|null = null
|
|
41
|
+
@column({ type: 'integer', nullable: true })
|
|
42
|
+
invoiceValue: number | null = null;
|
|
43
43
|
|
|
44
44
|
@column({
|
|
45
|
-
type:
|
|
45
|
+
type: 'datetime', beforeSave(old?: any) {
|
|
46
46
|
if (old !== undefined) {
|
|
47
47
|
return old;
|
|
48
48
|
}
|
|
49
|
-
const date = new Date()
|
|
50
|
-
date.setMilliseconds(0)
|
|
51
|
-
return date
|
|
52
|
-
}
|
|
49
|
+
const date = new Date();
|
|
50
|
+
date.setMilliseconds(0);
|
|
51
|
+
return date;
|
|
52
|
+
},
|
|
53
53
|
})
|
|
54
|
-
createdAt: Date
|
|
54
|
+
createdAt: Date;
|
|
55
55
|
|
|
56
56
|
@column({
|
|
57
|
-
type:
|
|
58
|
-
const date = new Date()
|
|
59
|
-
date.setMilliseconds(0)
|
|
60
|
-
return date
|
|
57
|
+
type: 'datetime', beforeSave() {
|
|
58
|
+
const date = new Date();
|
|
59
|
+
date.setMilliseconds(0);
|
|
60
|
+
return date;
|
|
61
61
|
},
|
|
62
|
-
skipUpdate: true
|
|
62
|
+
skipUpdate: true,
|
|
63
63
|
})
|
|
64
|
-
updatedAt: Date
|
|
64
|
+
updatedAt: Date;
|
|
65
65
|
|
|
66
66
|
async generateCode() {
|
|
67
67
|
this.code = bs58.encode(await randomBytes(8)).toUpperCase();
|