@loopback/repository-tests 0.20.2 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.d.ts +2 -0
  2. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.js +170 -0
  3. package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.js.map +1 -0
  4. package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.d.ts +2 -0
  5. package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.js +55 -0
  6. package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.js.map +1 -0
  7. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.d.ts +2 -0
  8. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.js +170 -0
  9. package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.js.map +1 -0
  10. package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.d.ts +2 -0
  11. package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.js +361 -0
  12. package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.js.map +1 -0
  13. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.d.ts +2 -0
  14. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.js +161 -0
  15. package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.js.map +1 -0
  16. package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.d.ts +2 -0
  17. package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.js +190 -0
  18. package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.js.map +1 -0
  19. package/dist/crud/relations/fixtures/models/contact.model.d.ts +18 -0
  20. package/dist/crud/relations/fixtures/models/contact.model.js +49 -0
  21. package/dist/crud/relations/fixtures/models/contact.model.js.map +1 -0
  22. package/dist/crud/relations/fixtures/models/customer-promotion-link.model.d.ts +14 -0
  23. package/dist/crud/relations/fixtures/models/customer-promotion-link.model.js +46 -0
  24. package/dist/crud/relations/fixtures/models/customer-promotion-link.model.js.map +1 -0
  25. package/dist/crud/relations/fixtures/models/customer.model.d.ts +16 -3
  26. package/dist/crud/relations/fixtures/models/customer.model.js +27 -9
  27. package/dist/crud/relations/fixtures/models/customer.model.js.map +1 -1
  28. package/dist/crud/relations/fixtures/models/index.d.ts +6 -0
  29. package/dist/crud/relations/fixtures/models/index.js +6 -0
  30. package/dist/crud/relations/fixtures/models/index.js.map +1 -1
  31. package/dist/crud/relations/fixtures/models/payment-method.model.d.ts +47 -0
  32. package/dist/crud/relations/fixtures/models/payment-method.model.js +87 -0
  33. package/dist/crud/relations/fixtures/models/payment-method.model.js.map +1 -0
  34. package/dist/crud/relations/fixtures/models/promotion.model.d.ts +27 -0
  35. package/dist/crud/relations/fixtures/models/promotion.model.js +54 -0
  36. package/dist/crud/relations/fixtures/models/promotion.model.js.map +1 -0
  37. package/dist/crud/relations/fixtures/models/stakeholder.model.d.ts +7 -0
  38. package/dist/crud/relations/fixtures/models/stakeholder.model.js +38 -0
  39. package/dist/crud/relations/fixtures/models/stakeholder.model.js.map +1 -0
  40. package/dist/crud/relations/fixtures/models/supplier.model.d.ts +15 -0
  41. package/dist/crud/relations/fixtures/models/supplier.model.js +23 -0
  42. package/dist/crud/relations/fixtures/models/supplier.model.js.map +1 -0
  43. package/dist/crud/relations/fixtures/repositories/contact.repository.d.ts +30 -0
  44. package/dist/crud/relations/fixtures/repositories/contact.repository.js +21 -0
  45. package/dist/crud/relations/fixtures/repositories/contact.repository.js.map +1 -0
  46. package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.d.ts +26 -0
  47. package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.js +18 -0
  48. package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.js.map +1 -0
  49. package/dist/crud/relations/fixtures/repositories/customer.repository.d.ts +9 -2
  50. package/dist/crud/relations/fixtures/repositories/customer.repository.js +7 -1
  51. package/dist/crud/relations/fixtures/repositories/customer.repository.js.map +1 -1
  52. package/dist/crud/relations/fixtures/repositories/index.d.ts +6 -1
  53. package/dist/crud/relations/fixtures/repositories/index.js +6 -1
  54. package/dist/crud/relations/fixtures/repositories/index.js.map +1 -1
  55. package/dist/crud/relations/fixtures/repositories/payment-method.repository.d.ts +77 -0
  56. package/dist/crud/relations/fixtures/repositories/payment-method.repository.js +45 -0
  57. package/dist/crud/relations/fixtures/repositories/payment-method.repository.js.map +1 -0
  58. package/dist/crud/relations/fixtures/repositories/promotion.repository.d.ts +49 -0
  59. package/dist/crud/relations/fixtures/repositories/promotion.repository.js +25 -0
  60. package/dist/crud/relations/fixtures/repositories/promotion.repository.js.map +1 -0
  61. package/dist/crud/relations/fixtures/repositories/supplier.repository.d.ts +28 -0
  62. package/dist/crud/relations/fixtures/repositories/supplier.repository.js +21 -0
  63. package/dist/crud/relations/fixtures/repositories/supplier.repository.js.map +1 -0
  64. package/dist/crud/relations/helpers.d.ts +9 -1
  65. package/dist/crud/relations/helpers.js +85 -10
  66. package/dist/crud/relations/helpers.js.map +1 -1
  67. package/dist/helpers.repository-tests.d.ts +1 -1
  68. package/dist/helpers.repository-tests.js.map +1 -1
  69. package/package.json +12 -12
  70. package/src/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.ts +221 -0
  71. package/src/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.ts +88 -0
  72. package/src/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.ts +255 -0
  73. package/src/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.ts +494 -0
  74. package/src/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.ts +208 -0
  75. package/src/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.ts +328 -0
  76. package/src/crud/relations/fixtures/models/contact.model.ts +56 -0
  77. package/src/crud/relations/fixtures/models/customer-promotion-link.model.ts +52 -0
  78. package/src/crud/relations/fixtures/models/customer.model.ts +39 -9
  79. package/src/crud/relations/fixtures/models/index.ts +6 -0
  80. package/src/crud/relations/fixtures/models/payment-method.model.ts +118 -0
  81. package/src/crud/relations/fixtures/models/promotion.model.ts +67 -0
  82. package/src/crud/relations/fixtures/models/stakeholder.model.ts +33 -0
  83. package/src/crud/relations/fixtures/models/supplier.model.ts +35 -0
  84. package/src/crud/relations/fixtures/repositories/contact.repository.ts +44 -0
  85. package/src/crud/relations/fixtures/repositories/customer-promotion-link.repository.ts +20 -0
  86. package/src/crud/relations/fixtures/repositories/customer.repository.ts +47 -0
  87. package/src/crud/relations/fixtures/repositories/index.ts +6 -1
  88. package/src/crud/relations/fixtures/repositories/payment-method.repository.ts +118 -0
  89. package/src/crud/relations/fixtures/repositories/promotion.repository.ts +37 -0
  90. package/src/crud/relations/fixtures/repositories/supplier.repository.ts +40 -0
  91. package/src/crud/relations/helpers.ts +200 -30
  92. package/src/helpers.repository-tests.ts +1 -1
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2019,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository-tests
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.hasOneRelationPolymorphicAcceptance = void 0;
8
+ const repository_1 = require("@loopback/repository");
9
+ const testlab_1 = require("@loopback/testlab");
10
+ const helpers_repository_tests_1 = require("../../../helpers.repository-tests");
11
+ const models_1 = require("../fixtures/models");
12
+ const helpers_1 = require("../helpers");
13
+ function hasOneRelationPolymorphicAcceptance(dataSourceOptions, repositoryClass, features) {
14
+ describe('hasOne relation polymorphic (acceptance)', () => {
15
+ let customerRepo;
16
+ let creditCardRepo;
17
+ let cashRepo;
18
+ let existingCustomerId;
19
+ before(helpers_repository_tests_1.deleteAllModelsInDefaultDataSource);
20
+ before((0, helpers_repository_tests_1.withCrudCtx)(async function setupRepository(ctx) {
21
+ ({ customerRepo, creditCardRepo, cashRepo } = (0, helpers_1.givenBoundCrudRepositories)(ctx.dataSource, repositoryClass, features));
22
+ const models = [models_1.Customer, models_1.CreditCard, models_1.Cash];
23
+ await ctx.dataSource.automigrate(models.map(m => m.name));
24
+ }));
25
+ beforeEach(async () => {
26
+ await customerRepo.deleteAll();
27
+ await creditCardRepo.deleteAll();
28
+ await cashRepo.deleteAll();
29
+ existingCustomerId = (await givenPersistedCustomerInstance()).id;
30
+ });
31
+ it('can create an instance of the related model', async () => {
32
+ const address = await createCustomerPaymentMethod(existingCustomerId, {}, 'CreditCard');
33
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(address)).to.containDeep((0, testlab_1.toJSON)({
34
+ customerId: existingCustomerId,
35
+ }));
36
+ const persisted = await creditCardRepo.findById(address.id);
37
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(persisted)).to.deepEqual((0, testlab_1.toJSON)({
38
+ ...address,
39
+ zipcode: features.emptyValue,
40
+ city: features.emptyValue,
41
+ province: features.emptyValue,
42
+ }));
43
+ });
44
+ // We do not enforce referential integrity at the moment. It is up to
45
+ // our users to set up unique constraint(s) between related models at the
46
+ // database level
47
+ it.skip('refuses to create related model instance twice', async () => {
48
+ const creditCard = await createCustomerPaymentMethod(existingCustomerId, {}, 'CreditCard');
49
+ await (0, testlab_1.expect)(createCustomerPaymentMethod(existingCustomerId, {}, 'Cash')).to.be.rejectedWith(/Duplicate entry for PaymentMethod.customerId/);
50
+ (0, testlab_1.expect)(creditCard.toObject()).to.containDeep({
51
+ customerId: existingCustomerId,
52
+ });
53
+ const persisted = await creditCardRepo.findById(creditCard.id);
54
+ (0, testlab_1.expect)(persisted.toObject()).to.deepEqual(creditCard.toObject());
55
+ });
56
+ it('can find instance of the related model', async () => {
57
+ const creditCard = await createCustomerPaymentMethod(existingCustomerId, {}, 'CreditCard');
58
+ const foundCreditCard = await findCustomerPaymentMethod(existingCustomerId, 'CreditCard');
59
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(foundCreditCard)).to.containEql((0, testlab_1.toJSON)(creditCard));
60
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(foundCreditCard)).to.deepEqual((0, testlab_1.toJSON)({
61
+ ...creditCard,
62
+ }));
63
+ const persisted = await creditCardRepo.find({
64
+ where: { customerId: existingCustomerId },
65
+ });
66
+ (0, testlab_1.expect)(persisted[0]).to.deepEqual(foundCreditCard);
67
+ });
68
+ it('reports EntityNotFound error when related model is deleted', async () => {
69
+ const paymentMethod = await createCustomerPaymentMethod(existingCustomerId, {}, 'CreditCard');
70
+ await creditCardRepo.deleteById(paymentMethod.id);
71
+ await (0, testlab_1.expect)(findCustomerPaymentMethod(existingCustomerId, 'CreditCard')).to.be.rejectedWith(repository_1.EntityNotFoundError);
72
+ });
73
+ it('can PATCH hasOne instances', async () => {
74
+ const paymentMethod = await createCustomerPaymentMethod(existingCustomerId, {}, 'CreditCard');
75
+ const patchObject = { cardNumber: 46458921 };
76
+ const arePatched = await patchCustomerPaymentMethod(existingCustomerId, { CreditCard: patchObject }, true);
77
+ (0, testlab_1.expect)(arePatched).to.deepEqual({ count: 1 });
78
+ const patchedData = await creditCardRepo.findById(paymentMethod.id);
79
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(patchedData)).to.deepEqual((0, testlab_1.toJSON)({
80
+ id: paymentMethod.id,
81
+ customerId: existingCustomerId,
82
+ cardNumber: 46458921,
83
+ }));
84
+ });
85
+ it('patches the related instance only', async () => {
86
+ const bob = await customerRepo.create({ name: 'Bob' });
87
+ await customerRepo
88
+ .paymentMethod(bob.id)
89
+ .create({ cardNumber: 12345 }, {
90
+ polymorphicType: 'CreditCard',
91
+ });
92
+ const alice = await customerRepo.create({ name: 'Alice' });
93
+ await customerRepo
94
+ .paymentMethod(alice.id)
95
+ .create({ cardNumber: 67890 }, {
96
+ polymorphicType: 'CreditCard',
97
+ });
98
+ const result = await patchCustomerPaymentMethod(alice.id, {
99
+ CreditCard: {
100
+ cardNumber: 7894512,
101
+ },
102
+ }, true);
103
+ (0, testlab_1.expect)(result).to.deepEqual({ count: 1 });
104
+ const foundBob = await customerRepo
105
+ .paymentMethod(bob.id)
106
+ .get(undefined, { polymorphicType: 'CreditCard' });
107
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(foundBob)).to.containDeep({ cardNumber: 12345 });
108
+ const foundAlice = await customerRepo
109
+ .paymentMethod(bob.id)
110
+ .get(undefined, { polymorphicType: 'CreditCard' });
111
+ (0, testlab_1.expect)((0, testlab_1.toJSON)(foundAlice)).to.containDeep({ cardNumber: 12345 });
112
+ });
113
+ it('throws an error when PATCH tries to change the foreignKey', async () => {
114
+ const anotherId = (await givenPersistedCustomerInstance()).id;
115
+ await (0, testlab_1.expect)(patchCustomerPaymentMethod(existingCustomerId, {
116
+ CreditCard: {
117
+ customerId: anotherId,
118
+ },
119
+ }, true)).to.be.rejectedWith(/Property "customerId" cannot be changed!/);
120
+ });
121
+ it('can DELETE hasOne relation instances', async () => {
122
+ await createCustomerPaymentMethod(existingCustomerId, {}, 'CreditCard');
123
+ const areDeleted = await deleteCustomerPaymentMethod(existingCustomerId, 'CreditCard');
124
+ (0, testlab_1.expect)(areDeleted).to.deepEqual({ count: 1 });
125
+ await (0, testlab_1.expect)(findCustomerPaymentMethod(existingCustomerId, 'CreditCard')).to.be.rejectedWith(repository_1.EntityNotFoundError);
126
+ });
127
+ it('deletes the related model instance only', async () => {
128
+ const bob = await customerRepo.create({ name: 'Bob' });
129
+ await customerRepo
130
+ .paymentMethod(bob.id)
131
+ .create({}, { polymorphicType: 'CreditCard' });
132
+ const alice = await customerRepo.create({ name: 'Alice' });
133
+ await customerRepo
134
+ .paymentMethod(alice.id)
135
+ .create({}, { polymorphicType: 'Cash' });
136
+ const brown = await customerRepo.create({ name: 'Brown' });
137
+ await customerRepo
138
+ .paymentMethod(brown.id)
139
+ .create({}, { polymorphicType: 'Cash' });
140
+ const result = await deleteCustomerPaymentMethod(alice.id, 'Cash');
141
+ (0, testlab_1.expect)(result).to.deepEqual({ count: 1 });
142
+ const found = await cashRepo.find();
143
+ (0, testlab_1.expect)(found).to.have.length(1);
144
+ });
145
+ it('deletes the related model instance with wrong type', async () => {
146
+ const bob = await customerRepo.create({ name: 'Bob' });
147
+ await customerRepo
148
+ .paymentMethod(bob.id)
149
+ .create({}, { polymorphicType: 'CreditCard' });
150
+ const alice = await customerRepo.create({ name: 'Alice' });
151
+ await customerRepo
152
+ .paymentMethod(alice.id)
153
+ .create({}, { polymorphicType: 'Cash' });
154
+ const brown = await customerRepo.create({ name: 'Brown' });
155
+ await customerRepo
156
+ .paymentMethod(brown.id)
157
+ .create({}, { polymorphicType: 'Cash' });
158
+ const result = await deleteCustomerPaymentMethod(alice.id, 'CreditCard');
159
+ (0, testlab_1.expect)(result).to.deepEqual({ count: 0 });
160
+ const found = await cashRepo.find();
161
+ (0, testlab_1.expect)(found).to.have.length(2);
162
+ });
163
+ /*---------------- HELPERS -----------------*/
164
+ async function createCustomerPaymentMethod(customerId, paymentMethodData, polymorphicTypeName) {
165
+ return customerRepo
166
+ .paymentMethod(customerId)
167
+ .create(paymentMethodData, { polymorphicType: polymorphicTypeName });
168
+ }
169
+ async function findCustomerPaymentMethod(customerId, polymorphicType) {
170
+ return customerRepo
171
+ .paymentMethod(customerId)
172
+ .get(undefined, { polymorphicType: polymorphicType });
173
+ }
174
+ async function patchCustomerPaymentMethod(customerId, paymentMethodData, isMultipleTypes) {
175
+ return customerRepo
176
+ .paymentMethod(customerId)
177
+ .patch(paymentMethodData, { isPolymorphic: isMultipleTypes });
178
+ }
179
+ async function deleteCustomerPaymentMethod(customerId, polymorphicType) {
180
+ return customerRepo
181
+ .paymentMethod(customerId)
182
+ .delete({ polymorphicType: polymorphicType });
183
+ }
184
+ async function givenPersistedCustomerInstance() {
185
+ return customerRepo.create({ name: 'a customer' });
186
+ }
187
+ });
188
+ }
189
+ exports.hasOneRelationPolymorphicAcceptance = hasOneRelationPolymorphicAcceptance;
190
+ //# sourceMappingURL=has-one.relation.polymorphic.acceptance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-one.relation.polymorphic.acceptance.js","sourceRoot":"","sources":["../../../../src/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { BelongsToAccessor, Entity, EntityCrudRepository } from '@loopback/repository';
2
+ import { MixedIdType } from '../../../../helpers.repository-tests';
3
+ import { CustomerWithRelations } from './customer.model';
4
+ import { Stakeholder } from './stakeholder.model';
5
+ export declare class Contact extends Entity {
6
+ id: MixedIdType;
7
+ name: string;
8
+ email: string;
9
+ stakeholderId: MixedIdType;
10
+ stakeholderType: string;
11
+ }
12
+ export interface ContactRelations {
13
+ stakeholder?: CustomerWithRelations;
14
+ }
15
+ export declare type ContactWithRelations = Contact & ContactRelations;
16
+ export interface ContactRepository extends EntityCrudRepository<Contact, typeof Contact.prototype.id> {
17
+ stakeholder: BelongsToAccessor<Stakeholder, MixedIdType>;
18
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2019. All Rights Reserved.
3
+ // Node module: @loopback/repository-tests
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Contact = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const repository_1 = require("@loopback/repository");
10
+ const stakeholder_model_1 = require("./stakeholder.model");
11
+ let Contact = class Contact extends repository_1.Entity {
12
+ };
13
+ tslib_1.__decorate([
14
+ (0, repository_1.property)({
15
+ id: true,
16
+ generated: true,
17
+ useDefaultIdType: true,
18
+ }),
19
+ tslib_1.__metadata("design:type", Object)
20
+ ], Contact.prototype, "id", void 0);
21
+ tslib_1.__decorate([
22
+ (0, repository_1.property)({
23
+ type: 'string',
24
+ }),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], Contact.prototype, "name", void 0);
27
+ tslib_1.__decorate([
28
+ (0, repository_1.property)({
29
+ type: 'string',
30
+ }),
31
+ tslib_1.__metadata("design:type", String)
32
+ ], Contact.prototype, "email", void 0);
33
+ tslib_1.__decorate([
34
+ (0, repository_1.belongsTo)(() => stakeholder_model_1.Stakeholder, { polymorphic: true }),
35
+ tslib_1.__metadata("design:type", Object)
36
+ ], Contact.prototype, "stakeholderId", void 0);
37
+ tslib_1.__decorate([
38
+ (0, repository_1.property)({
39
+ type: 'string',
40
+ required: true,
41
+ default: 'Customer',
42
+ }),
43
+ tslib_1.__metadata("design:type", String)
44
+ ], Contact.prototype, "stakeholderType", void 0);
45
+ Contact = tslib_1.__decorate([
46
+ (0, repository_1.model)()
47
+ ], Contact);
48
+ exports.Contact = Contact;
49
+ //# sourceMappingURL=contact.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.model.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/contact.model.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,qDAO8B;AAG9B,2DAAgD;AAGhD,IAAa,OAAO,GAApB,MAAa,OAAQ,SAAQ,mBAAM;CAyBlC,CAAA;AAnBC;IALC,IAAA,qBAAQ,EAAC;QACR,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;KACvB,CAAC;;mCACc;AAIhB;IAHC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;KACf,CAAC;;qCACW;AAIb;IAHC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;KACf,CAAC;;sCACY;AAGd;IADC,IAAA,sBAAS,EAAC,GAAG,EAAE,CAAC,+BAAW,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;;8CACvB;AAO3B;IALC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,UAAU;KACpB,CAAC;;gDACsB;AAxBb,OAAO;IADnB,IAAA,kBAAK,GAAE;GACK,OAAO,CAyBnB;AAzBY,0BAAO"}
@@ -0,0 +1,14 @@
1
+ import { Entity, EntityCrudRepository } from '@loopback/repository';
2
+ import { MixedIdType } from '../../../../helpers.repository-tests';
3
+ export declare class CustomerPromotionLink extends Entity {
4
+ id: MixedIdType;
5
+ customerId: MixedIdType;
6
+ promotion_id: MixedIdType;
7
+ promotiontype: string;
8
+ description?: string;
9
+ }
10
+ export interface CustomerPromotionLinkRelations {
11
+ }
12
+ export declare type CustomerPromotionLinkWithRelations = CustomerPromotionLink & CustomerPromotionLinkRelations;
13
+ export interface CustomerPromotionLinkRepository extends EntityCrudRepository<CustomerPromotionLink, typeof CustomerPromotionLink.prototype.id> {
14
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2020. All Rights Reserved.
3
+ // Node module: @loopback/repository-tests
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CustomerPromotionLink = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const repository_1 = require("@loopback/repository");
10
+ let CustomerPromotionLink = class CustomerPromotionLink extends repository_1.Entity {
11
+ };
12
+ tslib_1.__decorate([
13
+ (0, repository_1.property)({
14
+ id: true,
15
+ generated: true,
16
+ useDefaultIdType: true,
17
+ }),
18
+ tslib_1.__metadata("design:type", Object)
19
+ ], CustomerPromotionLink.prototype, "id", void 0);
20
+ tslib_1.__decorate([
21
+ (0, repository_1.property)(),
22
+ tslib_1.__metadata("design:type", Object)
23
+ ], CustomerPromotionLink.prototype, "customerId", void 0);
24
+ tslib_1.__decorate([
25
+ (0, repository_1.property)(),
26
+ tslib_1.__metadata("design:type", Object)
27
+ ], CustomerPromotionLink.prototype, "promotion_id", void 0);
28
+ tslib_1.__decorate([
29
+ (0, repository_1.property)({
30
+ type: 'string',
31
+ default: 'HalfPrice',
32
+ required: true,
33
+ }),
34
+ tslib_1.__metadata("design:type", String)
35
+ ], CustomerPromotionLink.prototype, "promotiontype", void 0);
36
+ tslib_1.__decorate([
37
+ (0, repository_1.property)({
38
+ type: 'string',
39
+ }),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], CustomerPromotionLink.prototype, "description", void 0);
42
+ CustomerPromotionLink = tslib_1.__decorate([
43
+ (0, repository_1.model)()
44
+ ], CustomerPromotionLink);
45
+ exports.CustomerPromotionLink = CustomerPromotionLink;
46
+ //# sourceMappingURL=customer-promotion-link.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-promotion-link.model.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/customer-promotion-link.model.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,qDAK8B;AAI9B,IAAa,qBAAqB,GAAlC,MAAa,qBAAsB,SAAQ,mBAAM;CA0BhD,CAAA;AApBC;IALC,IAAA,qBAAQ,EAAC;QACR,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;KACvB,CAAC;;iDACc;AAGhB;IADC,IAAA,qBAAQ,GAAE;;yDACa;AAIxB;IAFC,IAAA,qBAAQ,GAAE;;2DAEe;AAO1B;IALC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,IAAI;KACf,CAAC;;4DACoB;AAKtB;IAHC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;KACf,CAAC;;0DACmB;AAzBV,qBAAqB;IADjC,IAAA,kBAAK,GAAE;GACK,qBAAqB,CA0BjC;AA1BY,sDAAqB"}
@@ -1,18 +1,25 @@
1
- import { Entity, EntityCrudRepository, HasManyRepositoryFactory, HasManyThroughRepositoryFactory, HasOneRepositoryFactory } from '@loopback/repository';
1
+ import { EntityCrudRepository, HasManyRepositoryFactory, HasManyThroughRepositoryFactory, HasOneRepositoryFactory } from '@loopback/repository';
2
2
  import { BelongsToAccessor } from '@loopback/repository/src';
3
3
  import { MixedIdType } from '../../../../helpers.repository-tests';
4
4
  import { Address, AddressWithRelations } from './address.model';
5
5
  import { CartItem, CartItemWithRelations } from './cart-item.model';
6
+ import { Contact, ContactWithRelations } from './contact.model';
6
7
  import { CustomerCartItemLink } from './customer-cart-item-link.model';
8
+ import { CustomerPromotionLink } from './customer-promotion-link.model';
7
9
  import { Order, OrderWithRelations } from './order.model';
8
- export declare class Customer extends Entity {
9
- id: MixedIdType;
10
+ import { PaymentMethod, PaymentMethodWithRelations } from './payment-method.model';
11
+ import { Promotion, PromotionWithRelations } from './promotion.model';
12
+ import { Stakeholder } from './stakeholder.model';
13
+ export declare class Customer extends Stakeholder {
10
14
  name: string;
11
15
  orders: Order[];
12
16
  address: Address;
13
17
  customers?: Customer[];
14
18
  parentId?: MixedIdType;
15
19
  cartItems: CartItem[];
20
+ promotions: Promotion[];
21
+ paymentMethod: PaymentMethod;
22
+ paymentMethodType: string;
16
23
  }
17
24
  export interface CustomerRelations {
18
25
  address?: AddressWithRelations;
@@ -20,6 +27,9 @@ export interface CustomerRelations {
20
27
  customers?: CustomerWithRelations[];
21
28
  parentCustomer?: CustomerWithRelations;
22
29
  cartItems?: CartItemWithRelations[];
30
+ paymentMethod: PaymentMethodWithRelations;
31
+ promotions?: PromotionWithRelations[];
32
+ contact?: ContactWithRelations;
23
33
  }
24
34
  export declare type CustomerWithRelations = Customer & CustomerRelations;
25
35
  export interface CustomerRepository extends EntityCrudRepository<Customer, typeof Customer.prototype.id> {
@@ -28,4 +38,7 @@ export interface CustomerRepository extends EntityCrudRepository<Customer, typeo
28
38
  customers: HasManyRepositoryFactory<Customer, MixedIdType>;
29
39
  parent: BelongsToAccessor<Customer, MixedIdType>;
30
40
  cartItems: HasManyThroughRepositoryFactory<CartItem, MixedIdType, CustomerCartItemLink, MixedIdType>;
41
+ promotions: HasManyThroughRepositoryFactory<Promotion, MixedIdType, CustomerPromotionLink, MixedIdType>;
42
+ paymentMethod: HasOneRepositoryFactory<PaymentMethod, MixedIdType>;
43
+ contact: HasOneRepositoryFactory<Contact, MixedIdType>;
31
44
  }
@@ -11,17 +11,13 @@ const repository_1 = require("@loopback/repository");
11
11
  const address_model_1 = require("./address.model");
12
12
  const cart_item_model_1 = require("./cart-item.model");
13
13
  const customer_cart_item_link_model_1 = require("./customer-cart-item-link.model");
14
+ const customer_promotion_link_model_1 = require("./customer-promotion-link.model");
14
15
  const order_model_1 = require("./order.model");
15
- let Customer = Customer_1 = class Customer extends repository_1.Entity {
16
+ const payment_method_model_1 = require("./payment-method.model");
17
+ const promotion_model_1 = require("./promotion.model");
18
+ const stakeholder_model_1 = require("./stakeholder.model");
19
+ let Customer = Customer_1 = class Customer extends stakeholder_model_1.Stakeholder {
16
20
  };
17
- tslib_1.__decorate([
18
- (0, repository_1.property)({
19
- id: true,
20
- generated: true,
21
- useDefaultIdType: true,
22
- }),
23
- tslib_1.__metadata("design:type", Object)
24
- ], Customer.prototype, "id", void 0);
25
21
  tslib_1.__decorate([
26
22
  (0, repository_1.property)({
27
23
  type: 'string',
@@ -48,6 +44,28 @@ tslib_1.__decorate([
48
44
  (0, repository_1.hasMany)(() => cart_item_model_1.CartItem, { through: { model: () => customer_cart_item_link_model_1.CustomerCartItemLink } }),
49
45
  tslib_1.__metadata("design:type", Array)
50
46
  ], Customer.prototype, "cartItems", void 0);
47
+ tslib_1.__decorate([
48
+ (0, repository_1.hasMany)(() => promotion_model_1.Promotion, {
49
+ through: {
50
+ model: () => customer_promotion_link_model_1.CustomerPromotionLink,
51
+ keyTo: 'promotion_id',
52
+ polymorphic: { discriminator: 'promotiontype' },
53
+ },
54
+ }),
55
+ tslib_1.__metadata("design:type", Array)
56
+ ], Customer.prototype, "promotions", void 0);
57
+ tslib_1.__decorate([
58
+ (0, repository_1.hasOne)(() => payment_method_model_1.PaymentMethod, { polymorphic: true }),
59
+ tslib_1.__metadata("design:type", payment_method_model_1.PaymentMethod)
60
+ ], Customer.prototype, "paymentMethod", void 0);
61
+ tslib_1.__decorate([
62
+ (0, repository_1.property)({
63
+ type: 'string',
64
+ required: true,
65
+ default: 'CreditCard',
66
+ }),
67
+ tslib_1.__metadata("design:type", String)
68
+ ], Customer.prototype, "paymentMethodType", void 0);
51
69
  Customer = Customer_1 = tslib_1.__decorate([
52
70
  (0, repository_1.model)()
53
71
  ], Customer);
@@ -1 +1 @@
1
- {"version":3,"file":"customer.model.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/customer.model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;;;AAEhE,qDAW8B;AAG9B,mDAA8D;AAC9D,uDAAkE;AAClE,mFAAqE;AACrE,+CAAwD;AAGxD,IAAa,QAAQ,gBAArB,MAAa,QAAS,SAAQ,mBAAM;CA2BnC,CAAA;AArBC;IALC,IAAA,qBAAQ,EAAC;QACR,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;KACvB,CAAC;;oCACc;AAKhB;IAHC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;KACf,CAAC;;sCACW;AAGb;IADC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,mBAAK,CAAC;;wCACL;AAGhB;IADC,IAAA,mBAAM,EAAC,GAAG,EAAE,CAAC,uBAAO,CAAC;sCACb,uBAAO;yCAAC;AAGjB;IADC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,UAAQ,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;;2CACtB;AAGvB;IADC,IAAA,sBAAS,EAAC,GAAG,EAAE,CAAC,UAAQ,CAAC;;0CACH;AAGvB;IADC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,0BAAQ,EAAE,EAAC,OAAO,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,oDAAoB,EAAC,EAAC,CAAC;;2CAClD;AA1BX,QAAQ;IADpB,IAAA,kBAAK,GAAE;GACK,QAAQ,CA2BpB;AA3BY,4BAAQ"}
1
+ {"version":3,"file":"customer.model.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/customer.model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;;;AAEhE,qDAU8B;AAG9B,mDAA8D;AAC9D,uDAAkE;AAElE,mFAAqE;AACrE,mFAAsE;AACtE,+CAAwD;AACxD,iEAGgC;AAChC,uDAAoE;AACpE,2DAAgD;AAGhD,IAAa,QAAQ,gBAArB,MAAa,QAAS,SAAQ,+BAAW;CAuCxC,CAAA;AAnCC;IAHC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;KACf,CAAC;;sCACW;AAGb;IADC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,mBAAK,CAAC;;wCACL;AAGhB;IADC,IAAA,mBAAM,EAAC,GAAG,EAAE,CAAC,uBAAO,CAAC;sCACb,uBAAO;yCAAC;AAGjB;IADC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,UAAQ,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;;2CACtB;AAGvB;IADC,IAAA,sBAAS,EAAC,GAAG,EAAE,CAAC,UAAQ,CAAC;;0CACH;AAGvB;IADC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,0BAAQ,EAAE,EAAC,OAAO,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,oDAAoB,EAAC,EAAC,CAAC;;2CAClD;AAStB;IAPC,IAAA,oBAAO,EAAC,GAAG,EAAE,CAAC,2BAAS,EAAE;QACxB,OAAO,EAAE;YACP,KAAK,EAAE,GAAG,EAAE,CAAC,qDAAqB;YAClC,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,EAAC,aAAa,EAAE,eAAe,EAAC;SAC9C;KACF,CAAC;;4CACsB;AAGxB;IADC,IAAA,mBAAM,EAAC,GAAG,EAAE,CAAC,oCAAa,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;sCAClC,oCAAa;+CAAC;AAO7B;IALC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,YAAY;KACtB,CAAC;;mDACwB;AAtCf,QAAQ;IADpB,IAAA,kBAAK,GAAE;GACK,QAAQ,CAuCpB;AAvCY,4BAAQ"}
@@ -1,8 +1,14 @@
1
1
  export * from './address.model';
2
2
  export * from './cart-item.model';
3
+ export * from './contact.model';
3
4
  export * from './customer-cart-item-link.model';
5
+ export * from './customer-promotion-link.model';
4
6
  export * from './customer.model';
5
7
  export * from './order.model';
8
+ export * from './payment-method.model';
9
+ export * from './promotion.model';
6
10
  export * from './shipment.model';
11
+ export * from './stakeholder.model';
12
+ export * from './supplier.model';
7
13
  export * from './user-link.model';
8
14
  export * from './user.model';
@@ -7,10 +7,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const tslib_1 = require("tslib");
8
8
  tslib_1.__exportStar(require("./address.model"), exports);
9
9
  tslib_1.__exportStar(require("./cart-item.model"), exports);
10
+ tslib_1.__exportStar(require("./contact.model"), exports);
10
11
  tslib_1.__exportStar(require("./customer-cart-item-link.model"), exports);
12
+ tslib_1.__exportStar(require("./customer-promotion-link.model"), exports);
11
13
  tslib_1.__exportStar(require("./customer.model"), exports);
12
14
  tslib_1.__exportStar(require("./order.model"), exports);
15
+ tslib_1.__exportStar(require("./payment-method.model"), exports);
16
+ tslib_1.__exportStar(require("./promotion.model"), exports);
13
17
  tslib_1.__exportStar(require("./shipment.model"), exports);
18
+ tslib_1.__exportStar(require("./stakeholder.model"), exports);
19
+ tslib_1.__exportStar(require("./supplier.model"), exports);
14
20
  tslib_1.__exportStar(require("./user-link.model"), exports);
15
21
  tslib_1.__exportStar(require("./user.model"), exports);
16
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;AAEhE,0DAAgC;AAChC,4DAAkC;AAClC,0EAAgD;AAChD,2DAAiC;AACjC,wDAA8B;AAC9B,2DAAiC;AACjC,4DAAkC;AAClC,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;AAEhE,0DAAgC;AAChC,4DAAkC;AAClC,0DAAgC;AAChC,0EAAgD;AAChD,0EAAgD;AAChD,2DAAiC;AACjC,wDAA8B;AAC9B,iEAAuC;AACvC,4DAAkC;AAClC,2DAAiC;AACjC,8DAAoC;AACpC,2DAAiC;AACjC,4DAAkC;AAClC,uDAA6B"}
@@ -0,0 +1,47 @@
1
+ import { Entity, EntityCrudRepository, HasOneRepositoryFactory } from '@loopback/repository';
2
+ import { BelongsToAccessor } from '@loopback/repository/src';
3
+ import { Customer, CustomerWithRelations } from '.';
4
+ import { MixedIdType } from '../../../../helpers.repository-tests';
5
+ export declare class PaymentMethod extends Entity {
6
+ id: MixedIdType;
7
+ customerId: MixedIdType;
8
+ }
9
+ export interface PaymentMethodRelations {
10
+ customer?: CustomerWithRelations[];
11
+ }
12
+ export declare type PaymentMethodWithRelations = PaymentMethod & PaymentMethodRelations;
13
+ export declare class CardInfo extends Entity {
14
+ id: MixedIdType;
15
+ creditCardId: MixedIdType;
16
+ cardHolder: string;
17
+ }
18
+ export interface CardInfoRelations {
19
+ creditCard?: CreditCardWithRelations[];
20
+ }
21
+ export declare type CardInfoWithRelations = CardInfo & CardInfoRelations;
22
+ export declare class CreditCard extends PaymentMethod {
23
+ cardNumber: number;
24
+ cardInfo: CardInfo;
25
+ }
26
+ export interface CreditCardRelations {
27
+ customer?: CustomerWithRelations[];
28
+ cardInfo: CardInfoWithRelations;
29
+ }
30
+ export declare type CreditCardWithRelations = CreditCard & CreditCardRelations;
31
+ export declare class Cash extends PaymentMethod {
32
+ detail: string;
33
+ }
34
+ export interface CashRelations {
35
+ customer?: CustomerWithRelations[];
36
+ }
37
+ export declare type CashWithRelations = Cash & CashRelations;
38
+ export interface CreditCardRepository extends EntityCrudRepository<CreditCard, typeof CreditCard.prototype.id> {
39
+ customer: BelongsToAccessor<Customer, MixedIdType>;
40
+ cardInfo: HasOneRepositoryFactory<CardInfo, MixedIdType>;
41
+ }
42
+ export interface CashRepository extends EntityCrudRepository<Cash, typeof Cash.prototype.id> {
43
+ customer: BelongsToAccessor<Customer, MixedIdType>;
44
+ }
45
+ export interface CardInfoRepository extends EntityCrudRepository<CardInfo, typeof CardInfo.prototype.id> {
46
+ creditCard: BelongsToAccessor<CreditCard, MixedIdType>;
47
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2019,2020. All Rights Reserved.
3
+ // Node module: @loopback/repository-tests
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Cash = exports.CreditCard = exports.CardInfo = exports.PaymentMethod = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const repository_1 = require("@loopback/repository");
10
+ const stakeholder_model_1 = require("./stakeholder.model");
11
+ let PaymentMethod = class PaymentMethod extends repository_1.Entity {
12
+ };
13
+ tslib_1.__decorate([
14
+ (0, repository_1.property)({
15
+ id: true,
16
+ generated: true,
17
+ useDefaultIdType: true,
18
+ }),
19
+ tslib_1.__metadata("design:type", Object)
20
+ ], PaymentMethod.prototype, "id", void 0);
21
+ tslib_1.__decorate([
22
+ (0, repository_1.belongsTo)(() => stakeholder_model_1.Stakeholder),
23
+ tslib_1.__metadata("design:type", Object)
24
+ ], PaymentMethod.prototype, "customerId", void 0);
25
+ PaymentMethod = tslib_1.__decorate([
26
+ (0, repository_1.model)()
27
+ ], PaymentMethod);
28
+ exports.PaymentMethod = PaymentMethod;
29
+ let CardInfo = class CardInfo extends repository_1.Entity {
30
+ };
31
+ tslib_1.__decorate([
32
+ (0, repository_1.property)({
33
+ id: true,
34
+ generated: true,
35
+ useDefaultIdType: true,
36
+ }),
37
+ tslib_1.__metadata("design:type", Object)
38
+ ], CardInfo.prototype, "id", void 0);
39
+ tslib_1.__decorate([
40
+ (0, repository_1.belongsTo)(() => CreditCard),
41
+ tslib_1.__metadata("design:type", Object)
42
+ ], CardInfo.prototype, "creditCardId", void 0);
43
+ tslib_1.__decorate([
44
+ (0, repository_1.property)({
45
+ type: 'string',
46
+ required: true,
47
+ default: 'default holder',
48
+ }),
49
+ tslib_1.__metadata("design:type", String)
50
+ ], CardInfo.prototype, "cardHolder", void 0);
51
+ CardInfo = tslib_1.__decorate([
52
+ (0, repository_1.model)()
53
+ ], CardInfo);
54
+ exports.CardInfo = CardInfo;
55
+ let CreditCard = class CreditCard extends PaymentMethod {
56
+ };
57
+ tslib_1.__decorate([
58
+ (0, repository_1.property)({
59
+ type: 'number',
60
+ required: true,
61
+ default: 0,
62
+ }),
63
+ tslib_1.__metadata("design:type", Number)
64
+ ], CreditCard.prototype, "cardNumber", void 0);
65
+ tslib_1.__decorate([
66
+ (0, repository_1.hasOne)(() => CardInfo),
67
+ tslib_1.__metadata("design:type", CardInfo)
68
+ ], CreditCard.prototype, "cardInfo", void 0);
69
+ CreditCard = tslib_1.__decorate([
70
+ (0, repository_1.model)()
71
+ ], CreditCard);
72
+ exports.CreditCard = CreditCard;
73
+ let Cash = class Cash extends PaymentMethod {
74
+ };
75
+ tslib_1.__decorate([
76
+ (0, repository_1.property)({
77
+ type: 'string',
78
+ required: true,
79
+ default: 'default cash detail',
80
+ }),
81
+ tslib_1.__metadata("design:type", String)
82
+ ], Cash.prototype, "detail", void 0);
83
+ Cash = tslib_1.__decorate([
84
+ (0, repository_1.model)()
85
+ ], Cash);
86
+ exports.Cash = Cash;
87
+ //# sourceMappingURL=payment-method.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-method.model.js","sourceRoot":"","sources":["../../../../../src/crud/relations/fixtures/models/payment-method.model.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,0CAA0C;AAC1C,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,qDAQ8B;AAI9B,2DAAgD;AAGhD,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,mBAAM;CAUxC,CAAA;AAJC;IALC,IAAA,qBAAQ,EAAC;QACR,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;KACvB,CAAC;;yCACc;AAGhB;IADC,IAAA,sBAAS,EAAC,GAAG,EAAE,CAAC,+BAAW,CAAC;;iDACL;AATb,aAAa;IADzB,IAAA,kBAAK,GAAE;GACK,aAAa,CAUzB;AAVY,sCAAa;AAmB1B,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,mBAAM;CAiBnC,CAAA;AAXC;IALC,IAAA,qBAAQ,EAAC;QACR,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;KACvB,CAAC;;oCACc;AAGhB;IADC,IAAA,sBAAS,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;;8CACF;AAO1B;IALC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC;;4CACiB;AAhBR,QAAQ;IADpB,IAAA,kBAAK,GAAE;GACK,QAAQ,CAiBpB;AAjBY,4BAAQ;AA0BrB,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,aAAa;CAU5C,CAAA;AAJC;IALC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC;KACX,CAAC;;8CACiB;AAGnB;IADC,IAAA,mBAAM,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;sCACb,QAAQ;4CAAC;AATR,UAAU;IADtB,IAAA,kBAAK,GAAE;GACK,UAAU,CAUtB;AAVY,gCAAU;AAoBvB,IAAa,IAAI,GAAjB,MAAa,IAAK,SAAQ,aAAa;CAOtC,CAAA;AADC;IALC,IAAA,qBAAQ,EAAC;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,qBAAqB;KAC/B,CAAC;;oCACa;AANJ,IAAI;IADhB,IAAA,kBAAK,GAAE;GACK,IAAI,CAOhB;AAPY,oBAAI"}