@stamhoofd/models 2.88.1 → 2.89.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.
@@ -0,0 +1,10 @@
1
+ CREATE TABLE `webshop_uitpas_numbers` (
2
+ `id` varchar(36) NOT NULL,
3
+ `uitpasNumber` varchar(36) NOT NULL,
4
+ `webshopId` varchar(36) NOT NULL,
5
+ `productId` varchar(36) NOT NULL,
6
+ `orderId` varchar(36) NOT NULL,
7
+ PRIMARY KEY (id),
8
+ CONSTRAINT `fk_webshop` FOREIGN KEY (`webshopId`) REFERENCES `webshops` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
9
+ CONSTRAINT `fk_order` FOREIGN KEY (`orderId`) REFERENCES `webshop_orders` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
10
+ );
@@ -0,0 +1,11 @@
1
+ import { QueryableModel } from '@stamhoofd/sql';
2
+ export declare class WebshopUitpasNumber extends QueryableModel {
3
+ static table: string;
4
+ id: string;
5
+ uitpasNumber: string;
6
+ webshopId: string;
7
+ productId: string;
8
+ orderId: string;
9
+ static areUitpasNumbersUsed(webshopId: string, productId: string, uitpasNumbers: string[]): Promise<boolean>;
10
+ }
11
+ //# sourceMappingURL=WebshopUitpasNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebshopUitpasNumber.d.ts","sourceRoot":"","sources":["../../../src/models/WebshopUitpasNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,qBAAa,mBAAoB,SAAQ,cAAc;IACnD,MAAM,CAAC,KAAK,SAA4B;IAQxC,EAAE,EAAG,MAAM,CAAC;IAGZ,YAAY,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE,MAAM,CAAC;IAGlB,OAAO,SAAM;WAEA,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAIrH"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebshopUitpasNumber = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const simple_database_1 = require("@simonbackx/simple-database");
6
+ const sql_1 = require("@stamhoofd/sql");
7
+ const uuid_1 = require("uuid");
8
+ class WebshopUitpasNumber extends sql_1.QueryableModel {
9
+ static table = 'webshop_uitpas_numbers';
10
+ // Columns
11
+ id;
12
+ uitpasNumber;
13
+ webshopId;
14
+ productId;
15
+ orderId = '';
16
+ static async areUitpasNumbersUsed(webshopId, productId, uitpasNumbers) {
17
+ const hasBeenUsed = !!(await WebshopUitpasNumber.select('uitpasNumber').where('webshopId', webshopId).andWhere('productId', productId).andWhere('uitpasNumber', uitpasNumbers).first(false));
18
+ return hasBeenUsed;
19
+ }
20
+ }
21
+ exports.WebshopUitpasNumber = WebshopUitpasNumber;
22
+ tslib_1.__decorate([
23
+ (0, simple_database_1.column)({
24
+ primary: true, type: 'string', beforeSave(value) {
25
+ return value ?? (0, uuid_1.v4)();
26
+ },
27
+ })
28
+ ], WebshopUitpasNumber.prototype, "id", void 0);
29
+ tslib_1.__decorate([
30
+ (0, simple_database_1.column)({ type: 'string' })
31
+ ], WebshopUitpasNumber.prototype, "uitpasNumber", void 0);
32
+ tslib_1.__decorate([
33
+ (0, simple_database_1.column)({ type: 'string' })
34
+ ], WebshopUitpasNumber.prototype, "webshopId", void 0);
35
+ tslib_1.__decorate([
36
+ (0, simple_database_1.column)({ type: 'string' })
37
+ ], WebshopUitpasNumber.prototype, "productId", void 0);
38
+ tslib_1.__decorate([
39
+ (0, simple_database_1.column)({ type: 'string' })
40
+ ], WebshopUitpasNumber.prototype, "orderId", void 0);
41
+ //# sourceMappingURL=WebshopUitpasNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebshopUitpasNumber.js","sourceRoot":"","sources":["../../../src/models/WebshopUitpasNumber.ts"],"names":[],"mappings":";;;;AAAA,iEAAqD;AACrD,wCAAgD;AAChD,+BAAoC;AAEpC,MAAa,mBAAoB,SAAQ,oBAAc;IACnD,MAAM,CAAC,KAAK,GAAG,wBAAwB,CAAC;IAExC,UAAU;IAMV,EAAE,CAAU;IAGZ,YAAY,CAAS;IAGrB,SAAS,CAAS;IAGlB,SAAS,CAAS;IAGlB,OAAO,GAAG,EAAE,CAAC;IAEb,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,SAAiB,EAAE,aAAuB;QAC3F,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7L,OAAO,WAAW,CAAC;IACvB,CAAC;;AA1BL,kDA2BC;AAlBG;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,IAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;+CACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;yDACN;AAGrB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sDACT;AAGlB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sDACT;AAGlB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oDACd"}
@@ -35,6 +35,7 @@ export * from './StripeCheckoutSession';
35
35
  export * from './Document';
36
36
  export * from './DocumentTemplate';
37
37
  export * from './WebshopDiscountCode';
38
+ export * from './WebshopUitpasNumber';
38
39
  export * from './Platform';
39
40
  export * from './MemberResponsibilityRecord';
40
41
  export * from './OrganizationRegistrationPeriod';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,cAAc,yBAAyB,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAExC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,cAAc,yBAAyB,CAAC;AAExC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AAErC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAExC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAE7B,cAAc,0BAA0B,CAAC"}
@@ -50,6 +50,7 @@ tslib_1.__exportStar(require("./StripeCheckoutSession"), exports);
50
50
  tslib_1.__exportStar(require("./Document"), exports);
51
51
  tslib_1.__exportStar(require("./DocumentTemplate"), exports);
52
52
  tslib_1.__exportStar(require("./WebshopDiscountCode"), exports);
53
+ tslib_1.__exportStar(require("./WebshopUitpasNumber"), exports);
53
54
  tslib_1.__exportStar(require("./Platform"), exports);
54
55
  tslib_1.__exportStar(require("./MemberResponsibilityRecord"), exports);
55
56
  tslib_1.__exportStar(require("./OrganizationRegistrationPeriod"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAyB;AACzB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,kEAAwC;AAExC,kDAAwB;AACxB,0DAAgC;AAChC,wDAA8B;AAC9B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,0DAAgC;AAChC,4DAAkC;AAClC,yDAA+B;AAC/B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,iCAA+C;AAAtC,8FAAA,KAAK,OAAA;AACd,oDAA0B;AAC1B,qDAA2B;AAC3B,6DAAmC;AACnC,mDAAyB;AACzB,0DAAgC;AAChC,4DAAkC;AAClC,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,6DAAmC;AACnC,2DAAiC;AACjC,iEAAuC;AACvC,+DAAqC;AAErC,0DAAgC;AAChC,gEAAsC;AACtC,kEAAwC;AAExC,qDAA2B;AAC3B,6DAAmC;AAEnC,gEAAsC;AAEtC,qDAA2B;AAC3B,uEAA6C;AAE7C,2EAAiD;AACjD,+DAAqC;AACrC,qEAA2C;AAC3C,kDAAwB;AACxB,2DAAiC;AACjC,kDAAwB;AACxB,8DAAoC;AACpC,0DAAgC;AAChC,qDAA2B;AAC3B,uDAA6B;AAE7B,mEAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAyB;AACzB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,kEAAwC;AAExC,kDAAwB;AACxB,0DAAgC;AAChC,wDAA8B;AAC9B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,0DAAgC;AAChC,4DAAkC;AAClC,yDAA+B;AAC/B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,iCAA+C;AAAtC,8FAAA,KAAK,OAAA;AACd,oDAA0B;AAC1B,qDAA2B;AAC3B,6DAAmC;AACnC,mDAAyB;AACzB,0DAAgC;AAChC,4DAAkC;AAClC,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,6DAAmC;AACnC,2DAAiC;AACjC,iEAAuC;AACvC,+DAAqC;AAErC,0DAAgC;AAChC,gEAAsC;AACtC,kEAAwC;AAExC,qDAA2B;AAC3B,6DAAmC;AAEnC,gEAAsC;AACtC,gEAAsC;AAEtC,qDAA2B;AAC3B,uEAA6C;AAE7C,2EAAiD;AACjD,+DAAqC;AACrC,qEAA2C;AAC3C,kDAAwB;AACxB,2DAAiC;AACjC,kDAAwB;AACxB,8DAAoC;AACpC,0DAAgC;AAChC,qDAA2B;AAC3B,uDAA6B;AAE7B,mEAAyC"}
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/factories/addressfactory.ts","../src/factories/balanceitemfactory.ts","../src/factories/documenttemplatefactory.ts","../src/factories/emailtemplatefactory.ts","../src/factories/emergencycontactfactory.ts","../src/factories/eventfactory.ts","../src/factories/eventnotificationfactory.ts","../src/factories/eventnotificationtypefactory.ts","../src/factories/groupfactory.ts","../src/factories/memberfactory.ts","../src/factories/memberresponsibilityrecordfactory.ts","../src/factories/organizationfactory.ts","../src/factories/organizationregistrationperiodfactory.ts","../src/factories/organizationtagfactory.ts","../src/factories/parentfactory.ts","../src/factories/platformeventtypefactory.ts","../src/factories/platformresponsibilityfactory.ts","../src/factories/recordanswerfactory.ts","../src/factories/recordcategoryfactory.ts","../src/factories/recordfactory.ts","../src/factories/registercodefactory.ts","../src/factories/registrationfactory.ts","../src/factories/registrationperiodfactory.ts","../src/factories/userfactory.ts","../src/factories/webshopfactory.ts","../src/factories/index.ts","../src/helpers/dnsvalidator.ts","../src/helpers/emailbuilder.ts","../src/helpers/groupbuilder.ts","../src/helpers/handlebars.ts","../src/helpers/membermerger.test.ts","../src/helpers/membermerger.ts","../src/helpers/ratelimiter.ts","../src/helpers/webshopcounter.ts","../src/migrations/1605262045-import-postcodes.ts","../src/migrations/1605262046-import-postcodes-nl.ts","../src/models/auditlog.ts","../src/models/balanceitem.ts","../src/models/balanceitempayment.ts","../src/models/buckaroopayment.ts","../src/models/cachedbalance.ts","../src/models/document.ts","../src/models/documenttemplate.ts","../src/models/email.test.ts","../src/models/email.ts","../src/models/emailrecipient.ts","../src/models/emailtemplate.ts","../src/models/emailverificationcode.ts","../src/models/event.ts","../src/models/eventnotification.ts","../src/models/group.ts","../src/models/image.ts","../src/models/member.ts","../src/models/memberplatformmembership.ts","../src/models/memberresponsibilityrecord.ts","../src/models/memberuser.ts","../src/models/mergedmember.ts","../src/models/molliepayment.ts","../src/models/mollietoken.ts","../src/models/onetimetoken.ts","../src/models/order.ts","../src/models/organization.ts","../src/models/organizationregistrationperiod.ts","../src/models/passwordtoken.ts","../src/models/payconiqpayment.ts","../src/models/payment.ts","../src/models/platform.test.ts","../src/models/platform.ts","../src/models/registercode.ts","../src/models/registration.ts","../src/models/registrationperiod.ts","../src/models/stcredit.ts","../src/models/stinvoice.ts","../src/models/stpackage.ts","../src/models/stpendinginvoice.ts","../src/models/stripeaccount.ts","../src/models/stripecheckoutsession.ts","../src/models/stripepaymentintent.ts","../src/models/ticket.ts","../src/models/token.test.ts","../src/models/token.ts","../src/models/uitpasclientcredential.ts","../src/models/usedregistercode.ts","../src/models/user.ts","../src/models/userpermissions.ts","../src/models/webshop.ts","../src/models/webshopdiscountcode.ts","../src/models/index.ts","../src/models/addresses/city.ts","../src/models/addresses/postalcode.test.ts","../src/models/addresses/postalcode.ts","../src/models/addresses/province.ts","../src/models/addresses/street.ts","../src/structures/organizationservermetadata.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
1
+ {"root":["../src/index.ts","../src/factories/addressfactory.ts","../src/factories/balanceitemfactory.ts","../src/factories/documenttemplatefactory.ts","../src/factories/emailtemplatefactory.ts","../src/factories/emergencycontactfactory.ts","../src/factories/eventfactory.ts","../src/factories/eventnotificationfactory.ts","../src/factories/eventnotificationtypefactory.ts","../src/factories/groupfactory.ts","../src/factories/memberfactory.ts","../src/factories/memberresponsibilityrecordfactory.ts","../src/factories/organizationfactory.ts","../src/factories/organizationregistrationperiodfactory.ts","../src/factories/organizationtagfactory.ts","../src/factories/parentfactory.ts","../src/factories/platformeventtypefactory.ts","../src/factories/platformresponsibilityfactory.ts","../src/factories/recordanswerfactory.ts","../src/factories/recordcategoryfactory.ts","../src/factories/recordfactory.ts","../src/factories/registercodefactory.ts","../src/factories/registrationfactory.ts","../src/factories/registrationperiodfactory.ts","../src/factories/userfactory.ts","../src/factories/webshopfactory.ts","../src/factories/index.ts","../src/helpers/dnsvalidator.ts","../src/helpers/emailbuilder.ts","../src/helpers/groupbuilder.ts","../src/helpers/handlebars.ts","../src/helpers/membermerger.test.ts","../src/helpers/membermerger.ts","../src/helpers/ratelimiter.ts","../src/helpers/webshopcounter.ts","../src/migrations/1605262045-import-postcodes.ts","../src/migrations/1605262046-import-postcodes-nl.ts","../src/models/auditlog.ts","../src/models/balanceitem.ts","../src/models/balanceitempayment.ts","../src/models/buckaroopayment.ts","../src/models/cachedbalance.ts","../src/models/document.ts","../src/models/documenttemplate.ts","../src/models/email.test.ts","../src/models/email.ts","../src/models/emailrecipient.ts","../src/models/emailtemplate.ts","../src/models/emailverificationcode.ts","../src/models/event.ts","../src/models/eventnotification.ts","../src/models/group.ts","../src/models/image.ts","../src/models/member.ts","../src/models/memberplatformmembership.ts","../src/models/memberresponsibilityrecord.ts","../src/models/memberuser.ts","../src/models/mergedmember.ts","../src/models/molliepayment.ts","../src/models/mollietoken.ts","../src/models/onetimetoken.ts","../src/models/order.ts","../src/models/organization.ts","../src/models/organizationregistrationperiod.ts","../src/models/passwordtoken.ts","../src/models/payconiqpayment.ts","../src/models/payment.ts","../src/models/platform.test.ts","../src/models/platform.ts","../src/models/registercode.ts","../src/models/registration.ts","../src/models/registrationperiod.ts","../src/models/stcredit.ts","../src/models/stinvoice.ts","../src/models/stpackage.ts","../src/models/stpendinginvoice.ts","../src/models/stripeaccount.ts","../src/models/stripecheckoutsession.ts","../src/models/stripepaymentintent.ts","../src/models/ticket.ts","../src/models/token.test.ts","../src/models/token.ts","../src/models/uitpasclientcredential.ts","../src/models/usedregistercode.ts","../src/models/user.ts","../src/models/userpermissions.ts","../src/models/webshop.ts","../src/models/webshopdiscountcode.ts","../src/models/webshopuitpasnumber.ts","../src/models/index.ts","../src/models/addresses/city.ts","../src/models/addresses/postalcode.test.ts","../src/models/addresses/postalcode.ts","../src/models/addresses/province.ts","../src/models/addresses/street.ts","../src/structures/organizationservermetadata.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/models",
3
- "version": "2.88.1",
3
+ "version": "2.89.1",
4
4
  "main": "./dist/src/index.js",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -30,5 +30,5 @@
30
30
  "publishConfig": {
31
31
  "access": "public"
32
32
  },
33
- "gitHead": "33241749f01af23fbe52480a8a89a2bfd695b22d"
33
+ "gitHead": "538a0e198d2db14c1e7650c75a645113b4394e71"
34
34
  }
@@ -0,0 +1,10 @@
1
+ CREATE TABLE `webshop_uitpas_numbers` (
2
+ `id` varchar(36) NOT NULL,
3
+ `uitpasNumber` varchar(36) NOT NULL,
4
+ `webshopId` varchar(36) NOT NULL,
5
+ `productId` varchar(36) NOT NULL,
6
+ `orderId` varchar(36) NOT NULL,
7
+ PRIMARY KEY (id),
8
+ CONSTRAINT `fk_webshop` FOREIGN KEY (`webshopId`) REFERENCES `webshops` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
9
+ CONSTRAINT `fk_order` FOREIGN KEY (`orderId`) REFERENCES `webshop_orders` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
10
+ );
@@ -0,0 +1,32 @@
1
+ import { column } from '@simonbackx/simple-database';
2
+ import { QueryableModel } from '@stamhoofd/sql';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+
5
+ export class WebshopUitpasNumber extends QueryableModel {
6
+ static table = 'webshop_uitpas_numbers';
7
+
8
+ // Columns
9
+ @column({
10
+ primary: true, type: 'string', beforeSave(value) {
11
+ return value ?? uuidv4();
12
+ },
13
+ })
14
+ id!: string;
15
+
16
+ @column({ type: 'string' })
17
+ uitpasNumber: string;
18
+
19
+ @column({ type: 'string' })
20
+ webshopId: string;
21
+
22
+ @column({ type: 'string' })
23
+ productId: string;
24
+
25
+ @column({ type: 'string' })
26
+ orderId = '';
27
+
28
+ static async areUitpasNumbersUsed(webshopId: string, productId: string, uitpasNumbers: string[]): Promise<boolean> {
29
+ const hasBeenUsed = !!(await WebshopUitpasNumber.select('uitpasNumber').where('webshopId', webshopId).andWhere('productId', productId).andWhere('uitpasNumber', uitpasNumbers).first(false));
30
+ return hasBeenUsed;
31
+ }
32
+ }
@@ -41,6 +41,7 @@ export * from './Document';
41
41
  export * from './DocumentTemplate';
42
42
 
43
43
  export * from './WebshopDiscountCode';
44
+ export * from './WebshopUitpasNumber';
44
45
 
45
46
  export * from './Platform';
46
47
  export * from './MemberResponsibilityRecord';