@lyxa.ai/core 1.0.13 → 1.0.15-debug

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 (118) hide show
  1. package/dist/index.js +0 -3
  2. package/dist/index.js.map +1 -1
  3. package/dist/libraries/mongo/index.js +89 -40
  4. package/dist/libraries/mongo/index.js.map +1 -1
  5. package/dist/libraries/mongo/models/admin.model.d.ts +5 -3
  6. package/dist/libraries/mongo/models/admin.model.js +23 -6
  7. package/dist/libraries/mongo/models/admin.model.js.map +1 -1
  8. package/dist/libraries/mongo/models/base/base-review.model.d.ts +2 -2
  9. package/dist/libraries/mongo/models/base/base-review.model.js +2 -2
  10. package/dist/libraries/mongo/models/base/base-review.model.js.map +1 -1
  11. package/dist/libraries/mongo/models/core-auth-identity.model.d.ts +8 -0
  12. package/dist/libraries/mongo/models/{auth-identity.model.js → core-auth-identity.model.js} +13 -12
  13. package/dist/libraries/mongo/models/core-auth-identity.model.js.map +1 -0
  14. package/dist/libraries/mongo/models/{user.model.d.ts → core-user.model.d.ts} +2 -2
  15. package/dist/libraries/mongo/models/{user.model.js → core-user.model.js} +18 -17
  16. package/dist/libraries/mongo/models/core-user.model.js.map +1 -0
  17. package/dist/libraries/mongo/models/favourite.model.d.ts +2 -2
  18. package/dist/libraries/mongo/models/favourite.model.js +2 -2
  19. package/dist/libraries/mongo/models/favourite.model.js.map +1 -1
  20. package/dist/libraries/mongo/models/index.d.ts +66 -0
  21. package/dist/libraries/mongo/models/index.js +83 -0
  22. package/dist/libraries/mongo/models/index.js.map +1 -0
  23. package/dist/libraries/mongo/models/notification.model.d.ts +2 -2
  24. package/dist/libraries/mongo/models/notification.model.js +2 -2
  25. package/dist/libraries/mongo/models/notification.model.js.map +1 -1
  26. package/dist/libraries/mongo/models/parent.model.d.ts +3 -3
  27. package/dist/libraries/mongo/models/parent.model.js.map +1 -1
  28. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.d.ts +6 -0
  29. package/dist/libraries/mongo/models/providers/{apple-auth-identity.model.js → core-apple-auth-identity.model.js} +8 -7
  30. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +1 -0
  31. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.d.ts +9 -0
  32. package/dist/libraries/mongo/models/providers/{email-auth-identity.model.js → core-email-auth-identity.model.js} +10 -9
  33. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -0
  34. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.d.ts +6 -0
  35. package/dist/libraries/mongo/models/providers/{google-auth-identity.model.js → core-google-auth-identity.model.js} +8 -7
  36. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +1 -0
  37. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.d.ts +8 -0
  38. package/dist/libraries/mongo/models/providers/{phone-auth-identity.model.js → core-phone-auth-identity.model.js} +9 -8
  39. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +1 -0
  40. package/dist/libraries/mongo/models/providers/custom-coupon.model.d.ts +2 -2
  41. package/dist/libraries/mongo/models/providers/custom-coupon.model.js +2 -2
  42. package/dist/libraries/mongo/models/providers/custom-coupon.model.js.map +1 -1
  43. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.d.ts +2 -2
  44. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js +2 -2
  45. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js.map +1 -1
  46. package/dist/libraries/mongo/models/providers/{referral-code-coupon.mode.d.ts → referral-code-coupon.model.d.ts} +2 -2
  47. package/dist/libraries/mongo/models/providers/{referral-code-coupon.mode.js → referral-code-coupon.model.js} +3 -3
  48. package/dist/libraries/mongo/models/providers/referral-code-coupon.model.js.map +1 -0
  49. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +3 -3
  50. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js +3 -3
  51. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +1 -1
  52. package/dist/libraries/mongo/models/punch-marketing-history.model.d.ts +2 -2
  53. package/dist/libraries/mongo/models/punch-marketing-history.model.js +2 -2
  54. package/dist/libraries/mongo/models/punch-marketing-history.model.js.map +1 -1
  55. package/dist/libraries/mongo/models/request-area.model.d.ts +2 -2
  56. package/dist/libraries/mongo/models/request-area.model.js +2 -2
  57. package/dist/libraries/mongo/models/request-area.model.js.map +1 -1
  58. package/dist/libraries/mongo/models/{role.model.ts.js → role.model.js} +3 -2
  59. package/dist/libraries/mongo/models/role.model.js.map +1 -0
  60. package/dist/libraries/mongo/models/{shop-review.js → shop-review.model.js} +1 -1
  61. package/dist/libraries/mongo/models/shop-review.model.js.map +1 -0
  62. package/dist/libraries/mongo/models/shop.model.d.ts +8 -8
  63. package/dist/libraries/mongo/models/shop.model.js +10 -10
  64. package/dist/libraries/mongo/models/shop.model.js.map +1 -1
  65. package/dist/libraries/mongo/models/subscription.model.d.ts +2 -2
  66. package/dist/libraries/mongo/models/subscription.model.js +2 -2
  67. package/dist/libraries/mongo/models/subscription.model.js.map +1 -1
  68. package/dist/libraries/mongo/models/{zone.js → zone.model.js} +1 -1
  69. package/dist/libraries/mongo/models/zone.model.js.map +1 -0
  70. package/dist/libraries/mongo/plugins/soft-delete-plugin.d.ts +10 -9
  71. package/dist/libraries/mongo/plugins/soft-delete-plugin.js +17 -17
  72. package/dist/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -1
  73. package/dist/libraries/trpc/middlewares/cors.d.ts +12 -0
  74. package/dist/libraries/trpc/middlewares/cors.js +46 -0
  75. package/dist/libraries/trpc/middlewares/cors.js.map +1 -0
  76. package/dist/utilities/enum.d.ts +1 -1
  77. package/dist/utilities/enum.js +8 -8
  78. package/dist/utilities/enum.js.map +1 -1
  79. package/dist/utilities/error-middleware.d.ts +11 -0
  80. package/dist/utilities/error-middleware.js +177 -0
  81. package/dist/utilities/error-middleware.js.map +1 -0
  82. package/dist/utilities/validation/common-validation.d.ts +22 -2
  83. package/dist/utilities/validation/common-validation.js +41 -41
  84. package/dist/utilities/validation/common-validation.js.map +1 -1
  85. package/dist/utilities/validation/global-validation.d.ts +29 -6
  86. package/dist/utilities/validation/global-validation.js +64 -52
  87. package/dist/utilities/validation/global-validation.js.map +1 -1
  88. package/package.json +2 -2
  89. package/dist/libraries/mongo/models/auth-identity.model.d.ts +0 -8
  90. package/dist/libraries/mongo/models/auth-identity.model.js.map +0 -1
  91. package/dist/libraries/mongo/models/providers/apple-auth-identity.model.d.ts +0 -6
  92. package/dist/libraries/mongo/models/providers/apple-auth-identity.model.js.map +0 -1
  93. package/dist/libraries/mongo/models/providers/email-auth-identity.model.d.ts +0 -9
  94. package/dist/libraries/mongo/models/providers/email-auth-identity.model.js.map +0 -1
  95. package/dist/libraries/mongo/models/providers/google-auth-identity.model.d.ts +0 -6
  96. package/dist/libraries/mongo/models/providers/google-auth-identity.model.js.map +0 -1
  97. package/dist/libraries/mongo/models/providers/phone-auth-identity.model.d.ts +0 -8
  98. package/dist/libraries/mongo/models/providers/phone-auth-identity.model.js.map +0 -1
  99. package/dist/libraries/mongo/models/providers/referral-code-coupon.mode.js.map +0 -1
  100. package/dist/libraries/mongo/models/request-area.model copy.d.ts +0 -9
  101. package/dist/libraries/mongo/models/request-area.model copy.js +0 -34
  102. package/dist/libraries/mongo/models/request-area.model copy.js.map +0 -1
  103. package/dist/libraries/mongo/models/rider-review.d.ts +0 -7
  104. package/dist/libraries/mongo/models/rider-review.js +0 -28
  105. package/dist/libraries/mongo/models/rider-review.js.map +0 -1
  106. package/dist/libraries/mongo/models/role.model.ts.js.map +0 -1
  107. package/dist/libraries/mongo/models/shop-review.js.map +0 -1
  108. package/dist/libraries/mongo/models/user.model.js.map +0 -1
  109. package/dist/libraries/mongo/models/zone.js.map +0 -1
  110. package/dist/libraries/mongo/models/zone.model..d.ts +0 -15
  111. package/dist/libraries/mongo/models/zone.model..js +0 -64
  112. package/dist/libraries/mongo/models/zone.model..js.map +0 -1
  113. package/dist/utilities/validation.d.ts +0 -25
  114. package/dist/utilities/validation.js +0 -44
  115. package/dist/utilities/validation.js.map +0 -1
  116. /package/dist/libraries/mongo/models/{role.model.ts.d.ts → role.model.d.ts} +0 -0
  117. /package/dist/libraries/mongo/models/{shop-review.d.ts → shop-review.model.d.ts} +0 -0
  118. /package/dist/libraries/mongo/models/{zone.d.ts → zone.model.d.ts} +0 -0
package/dist/index.js CHANGED
@@ -84,7 +84,4 @@ async function registerLibraries(options) {
84
84
  function getLibraries() {
85
85
  return typedi_1.Container.get(libraries_1.LibraryManager);
86
86
  }
87
- bootstrapCore({ environment: EnvironmentConfigurationType_1.EnvironmentConfigurationType.DEV, instanceType: "attemptedStartup" }).then(async (f) => {
88
- console.log("Started up.");
89
- });
90
87
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["import {LibraryManager} from \"./libraries\";\r\nimport {Container} from \"typedi\";\r\nimport mongoose from \"mongoose\";\r\nimport {ConfigurationOptions, ConfigurationService} from \"./libraries/configuration\";\r\nimport {EnvironmentConfigurationType} from \"./libraries/configuration/types/EnvironmentConfigurationType\";\r\nimport {LyxaLogger} from \"./libraries/logger\";\r\nimport {RedisService} from \"./libraries/redis\";\r\nimport {initGlobalConnection} from \"./libraries/mongo\";\r\nimport {SecretManagerService} from \"./libraries/secrets\";\r\nimport {MicroServiceDispatcher} from \"./libraries/dispatcher\";\r\nimport {TwilioService} from \"./libraries/twilio\";\r\nimport {FirebaseService} from \"./libraries/firebase\";\r\nimport {initEventBus, subscribeToEvent} from \"./libraries/event\";\r\nimport {SubscriptionRegistry} from \"./libraries/event/registry/SubscriptionRegistry\";\r\n\r\nexport { ConfigurationOptions } from \"./libraries/configuration\";\r\nexport { EnvironmentConfigurationType } from \"./libraries/configuration/types/EnvironmentConfigurationType\";\r\nexport {\r\n initGlobalConnection,\r\n createGlobalModel,\r\n createGlobalDiscriminatorModel\r\n} from './libraries/mongo';\r\n\r\nexport async function bootstrapCore(options?: ConfigurationOptions) {\r\n try {\r\n await registerLibraries(options);\r\n\r\n getLibraries().getLogger().logger.info(\"Successfully bootstrapped lyxa-core.\");\r\n\r\n const gracefulShutdown = async () => {\r\n getLibraries().getLogger().logger.info('Received shutdown signal, shutting down gracefully...');\r\n };\r\n\r\n process.on('SIGTERM', gracefulShutdown);\r\n process.on('SIGINT', gracefulShutdown);\r\n process.on('uncaughtException', (err) => {\r\n getLibraries().getLogger().logger.error('Uncaught exception, shutting down...', err);\r\n gracefulShutdown();\r\n });\r\n\r\n console.log(\"Created hooks.\");\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\n\r\nexport async function registerLibraries(options?: ConfigurationOptions) {\r\n // Setup configuration.\r\n const configurationInstance = new ConfigurationService(options);\r\n Container.set(ConfigurationService, configurationInstance);\r\n\r\n // Setup redis.\r\n const redisInstance = new RedisService(configurationInstance.options.redisURL!);\r\n Container.set(RedisService, redisInstance);\r\n\r\n // Setup secret\r\n const secretInstance = new SecretManagerService(configurationInstance, redisInstance);\r\n Container.set(SecretManagerService, secretInstance);\r\n\r\n const mongoUrl = await getLibraries().getSecretsService()\r\n .getKey(\"MONGO_URL\");\r\n\r\n await mongoose.connect(mongoUrl!, { dbName: `lyxa-${options!.environment}-${options!.tenet}` });\r\n mongoose.set('debug', getLibraries().getConfigurationService().options.environment == EnvironmentConfigurationType.DEV);\r\n\r\n await initGlobalConnection(mongoUrl!, options!.environment);\r\n\r\n // Setup logger\r\n const loggerInstance = new LyxaLogger(options!.instanceType!, mongoUrl!);\r\n Container.set(LyxaLogger, loggerInstance);\r\n\r\n // Setup firebase\r\n const firebaseInstance = new FirebaseService(configurationInstance!);\r\n Container.set(FirebaseService, firebaseInstance);\r\n\r\n // Setup microservice dispatcher\r\n const microserviceDispatcherInstance = new MicroServiceDispatcher(secretInstance);\r\n Container.set(MicroServiceDispatcher, microserviceDispatcherInstance);\r\n\r\n\r\n // Setup twilio\r\n const twilioServiceInstance = new TwilioService();\r\n Container.set(TwilioService, twilioServiceInstance);\r\n\r\n console.log(\"Initialized everything\");\r\n\r\n await initEventBus(\"amqps://vgyuplrd:wto6vUYnb4zeBI5lntKT4gj7rT8n1vwg@dog.lmq.cloudamqp.com/vgyuplrd\");\r\n const allSubscriptions = SubscriptionRegistry.getAllSubscriptions();\r\n\r\n const instantiatedServices = new Map<Function, any>();\r\n\r\n for (const { eventId, targetConstructor, methodName } of allSubscriptions) {\r\n let instance = instantiatedServices.get(targetConstructor);\r\n if (!instance) {\r\n instance = Container.get(targetConstructor as any);\r\n instantiatedServices.set(targetConstructor, instance);\r\n }\r\n\r\n await subscribeToEvent(eventId, async (payload) => {\r\n return instance[methodName](payload);\r\n });\r\n }\r\n}\r\n\r\nexport function getLibraries(): LibraryManager {\r\n return Container.get(LibraryManager)\r\n}\r\n\r\nbootstrapCore({environment: EnvironmentConfigurationType.DEV, instanceType: \"attemptedStartup\"}).then(async f => {\r\n console.log(\"Started up.\")\r\n})\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"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","sourcesContent":["import {LibraryManager} from \"./libraries\";\r\nimport {Container} from \"typedi\";\r\nimport mongoose from \"mongoose\";\r\nimport {ConfigurationOptions, ConfigurationService} from \"./libraries/configuration\";\r\nimport {EnvironmentConfigurationType} from \"./libraries/configuration/types/EnvironmentConfigurationType\";\r\nimport {LyxaLogger} from \"./libraries/logger\";\r\nimport {RedisService} from \"./libraries/redis\";\r\nimport {initGlobalConnection} from \"./libraries/mongo\";\r\nimport {SecretManagerService} from \"./libraries/secrets\";\r\nimport {MicroServiceDispatcher} from \"./libraries/dispatcher\";\r\nimport {TwilioService} from \"./libraries/twilio\";\r\nimport {FirebaseService} from \"./libraries/firebase\";\r\nimport {initEventBus, subscribeToEvent} from \"./libraries/event\";\r\nimport {SubscriptionRegistry} from \"./libraries/event/registry/SubscriptionRegistry\";\r\nimport {AuthEntityType, signTokenPair} from \"./libraries/auth\";\r\n\r\nexport { ConfigurationOptions } from \"./libraries/configuration\";\r\nexport { EnvironmentConfigurationType } from \"./libraries/configuration/types/EnvironmentConfigurationType\";\r\nexport {\r\n initGlobalConnection,\r\n createGlobalModel,\r\n createGlobalDiscriminatorModel\r\n} from './libraries/mongo';\r\n\r\nexport async function bootstrapCore(options?: ConfigurationOptions) {\r\n try {\r\n await registerLibraries(options);\r\n\r\n getLibraries().getLogger().logger.info(\"Successfully bootstrapped lyxa-core.\");\r\n\r\n const gracefulShutdown = async () => {\r\n getLibraries().getLogger().logger.info('Received shutdown signal, shutting down gracefully...');\r\n };\r\n\r\n process.on('SIGTERM', gracefulShutdown);\r\n process.on('SIGINT', gracefulShutdown);\r\n process.on('uncaughtException', (err) => {\r\n getLibraries().getLogger().logger.error('Uncaught exception, shutting down...', err);\r\n gracefulShutdown();\r\n });\r\n\r\n console.log(\"Created hooks.\");\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\n\r\nexport async function registerLibraries(options?: ConfigurationOptions) {\r\n // Setup configuration.\r\n const configurationInstance = new ConfigurationService(options);\r\n Container.set(ConfigurationService, configurationInstance);\r\n\r\n // Setup redis.\r\n const redisInstance = new RedisService(configurationInstance.options.redisURL!);\r\n Container.set(RedisService, redisInstance);\r\n\r\n // Setup secret\r\n const secretInstance = new SecretManagerService(configurationInstance, redisInstance);\r\n Container.set(SecretManagerService, secretInstance);\r\n\r\n const mongoUrl = await getLibraries().getSecretsService()\r\n .getKey(\"MONGO_URL\");\r\n\r\n await mongoose.connect(mongoUrl!, { dbName: `lyxa-${options!.environment}-${options!.tenet}` });\r\n mongoose.set('debug', getLibraries().getConfigurationService().options.environment == EnvironmentConfigurationType.DEV);\r\n\r\n await initGlobalConnection(mongoUrl!, options!.environment);\r\n\r\n // Setup logger\r\n const loggerInstance = new LyxaLogger(options!.instanceType!, mongoUrl!);\r\n Container.set(LyxaLogger, loggerInstance);\r\n\r\n // Setup firebase\r\n const firebaseInstance = new FirebaseService(configurationInstance!);\r\n Container.set(FirebaseService, firebaseInstance);\r\n\r\n // Setup microservice dispatcher\r\n const microserviceDispatcherInstance = new MicroServiceDispatcher(secretInstance);\r\n Container.set(MicroServiceDispatcher, microserviceDispatcherInstance);\r\n\r\n\r\n // Setup twilio\r\n const twilioServiceInstance = new TwilioService();\r\n Container.set(TwilioService, twilioServiceInstance);\r\n\r\n console.log(\"Initialized everything\");\r\n\r\n await initEventBus(\"amqps://vgyuplrd:wto6vUYnb4zeBI5lntKT4gj7rT8n1vwg@dog.lmq.cloudamqp.com/vgyuplrd\");\r\n const allSubscriptions = SubscriptionRegistry.getAllSubscriptions();\r\n\r\n const instantiatedServices = new Map<Function, any>();\r\n\r\n for (const { eventId, targetConstructor, methodName } of allSubscriptions) {\r\n let instance = instantiatedServices.get(targetConstructor);\r\n if (!instance) {\r\n instance = Container.get(targetConstructor as any);\r\n instantiatedServices.set(targetConstructor, instance);\r\n }\r\n\r\n await subscribeToEvent(eventId, async (payload) => {\r\n return instance[methodName](payload);\r\n });\r\n }\r\n}\r\n\r\nexport function getLibraries(): LibraryManager {\r\n return Container.get(LibraryManager)\r\n}\r\n"]}
@@ -8,56 +8,105 @@ const typegoose_1 = require("@typegoose/typegoose");
8
8
  const soft_delete_plugin_1 = require("./plugins/soft-delete-plugin");
9
9
  (0, soft_delete_plugin_1.applySoftDeletePlugin)();
10
10
  let globalConnection;
11
- let pendingModels = [];
12
- let isConnectionInitialized = false;
11
+ let connectionPromise = null;
12
+ let pendingModels = new Map();
13
+ let pendingDiscriminatorModels = new Map();
13
14
  async function initGlobalConnection(uri, environment) {
14
- if (!globalConnection) {
15
- globalConnection = (0, mongoose_1.createConnection)(uri, {
16
- dbName: `lyxa-${environment}-global`,
17
- });
18
- isConnectionInitialized = true;
19
- for (const { Class, options, callback } of pendingModels) {
20
- const model = (0, typegoose_1.getModelForClass)(Class, {
21
- existingConnection: globalConnection,
22
- ...options
15
+ if (!connectionPromise) {
16
+ connectionPromise = new Promise((resolve) => {
17
+ console.log(`Initializing global connection for environment: ${environment}`);
18
+ const connection = (0, mongoose_1.createConnection)(uri, {
19
+ dbName: `lyxa-${environment}-global`,
23
20
  });
24
- callback(model);
25
- }
26
- pendingModels = [];
21
+ connection.once('connected', () => {
22
+ console.log('Global connection successfully established');
23
+ globalConnection = connection;
24
+ for (const [modelName, { Class, options, resolve }] of pendingModels.entries()) {
25
+ const model = (0, typegoose_1.getModelForClass)(Class, {
26
+ existingConnection: globalConnection,
27
+ ...options
28
+ });
29
+ resolve(model);
30
+ }
31
+ pendingModels.clear();
32
+ for (const [modelName, { baseModel, subClass, discriminatorName, options, resolve }] of pendingDiscriminatorModels.entries()) {
33
+ const model = (0, typegoose_1.getDiscriminatorModelForClass)(baseModel, subClass, discriminatorName, {
34
+ existingConnection: globalConnection,
35
+ ...options
36
+ });
37
+ resolve(model);
38
+ }
39
+ pendingDiscriminatorModels.clear();
40
+ resolve(connection);
41
+ });
42
+ });
27
43
  }
28
- return globalConnection;
44
+ return connectionPromise;
29
45
  }
30
46
  function createGlobalModel(Class, options) {
31
- if (globalConnection && isConnectionInitialized) {
32
- return (0, typegoose_1.getModelForClass)(Class, { existingConnection: globalConnection, ...options });
33
- }
34
- else {
35
- let modelInstance = null;
36
- const modelProxy = new Proxy({}, {
37
- get: function (target, prop) {
38
- if (!modelInstance) {
39
- throw new Error('Model not initialized yet. Database connection pending.');
40
- }
41
- return modelInstance[prop];
42
- }
47
+ const modelName = options?.schemaOptions?.collection || Class.name;
48
+ if (globalConnection) {
49
+ return (0, typegoose_1.getModelForClass)(Class, {
50
+ existingConnection: globalConnection,
51
+ ...options
43
52
  });
44
- pendingModels.push({
45
- Class,
46
- options,
47
- callback: (model) => {
48
- modelInstance = model;
49
- }
50
- });
51
- return modelProxy;
52
53
  }
54
+ console.log(`Registering model ${modelName} to be initialized when global connection is ready`);
55
+ let actualModel = null;
56
+ let modelReadyPromise = null;
57
+ modelReadyPromise = new Promise((resolve) => {
58
+ pendingModels.set(modelName, { Class, options, resolve });
59
+ });
60
+ const modelProxy = new Proxy({}, {
61
+ get(target, prop, receiver) {
62
+ return async function (...args) {
63
+ if (!actualModel) {
64
+ actualModel = await modelReadyPromise;
65
+ }
66
+ const propValue = actualModel[prop];
67
+ if (typeof propValue === 'function') {
68
+ return propValue.apply(actualModel, args);
69
+ }
70
+ return propValue;
71
+ };
72
+ }
73
+ });
74
+ return modelProxy;
53
75
  }
54
76
  function createGlobalDiscriminatorModel(baseModel, subClass, discriminatorName, options) {
55
- if (!globalConnection) {
56
- throw new Error('Global connection not initialized. Call initGlobalConnection(...) first.');
77
+ const modelName = discriminatorName || subClass.name;
78
+ if (globalConnection) {
79
+ return (0, typegoose_1.getDiscriminatorModelForClass)(baseModel, subClass, discriminatorName, {
80
+ existingConnection: globalConnection,
81
+ ...options
82
+ });
57
83
  }
58
- return (0, typegoose_1.getDiscriminatorModelForClass)(baseModel, subClass, discriminatorName, {
59
- existingConnection: globalConnection,
60
- ...options,
84
+ console.log(`Registering discriminator model ${modelName} to be initialized when global connection is ready`);
85
+ let actualModel = null;
86
+ let modelReadyPromise = null;
87
+ modelReadyPromise = new Promise((resolve) => {
88
+ pendingDiscriminatorModels.set(modelName, {
89
+ baseModel,
90
+ subClass,
91
+ discriminatorName,
92
+ options,
93
+ resolve
94
+ });
95
+ });
96
+ const modelProxy = new Proxy({}, {
97
+ get(target, prop, receiver) {
98
+ return async function (...args) {
99
+ if (!actualModel) {
100
+ actualModel = await modelReadyPromise;
101
+ }
102
+ const propValue = actualModel[prop];
103
+ if (typeof propValue === 'function') {
104
+ return propValue.apply(actualModel, args);
105
+ }
106
+ return propValue;
107
+ };
108
+ }
61
109
  });
110
+ return modelProxy;
62
111
  }
63
112
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/mongo/index.ts"],"names":[],"mappings":";;AAkBA,oDAoBC;AAOD,8CA+BC;AAWD,wEAmBC;AA1GD,uCAAwD;AACxD,oDAAsG;AAGtG,qEAAqE;AAGrE,IAAA,0CAAqB,GAAE,CAAC;AACxB,IAAI,gBAAwC,CAAC;AAG7C,IAAI,aAAa,GAIZ,EAAE,CAAC;AACR,IAAI,uBAAuB,GAAG,KAAK,CAAC;AAE7B,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,WAAmB;IACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,GAAG,EAAE;YACrC,MAAM,EAAE,QAAQ,WAAW,SAAS;SACvC,CAAC,CAAC;QAGH,uBAAuB,GAAG,IAAI,CAAC;QAG/B,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,KAAK,EAAE;gBAClC,kBAAkB,EAAE,gBAAgB;gBACpC,GAAG,OAAO;aACb,CAAC,CAAC;YACH,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QACD,aAAa,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAOD,SAAgB,iBAAiB,CAC7B,KAAQ,EACR,OAAuB;IAEvB,IAAI,gBAAgB,IAAI,uBAAuB,EAAE,CAAC;QAE9C,OAAO,IAAA,4BAAgB,EAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QAEJ,IAAI,aAAa,GAAQ,IAAI,CAAC;QAE9B,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;YAC7B,GAAG,EAAE,UAAS,MAAM,EAAE,IAAI;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACJ,CAAuB,CAAC;QAGzB,aAAa,CAAC,IAAI,CAAC;YACf,KAAK;YACL,OAAO;YACP,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,aAAa,GAAG,KAAK,CAAC;YAC1B,CAAC;SACJ,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACtB,CAAC;AACL,CAAC;AAWD,SAAgB,8BAA8B,CAI1C,SAAgC,EAChC,QAAa,EACb,iBAA0B,EAC1B,OAAuB;IAEvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACX,0EAA0E,CAC7E,CAAC;IACN,CAAC;IAED,OAAO,IAAA,yCAA6B,EAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE;QACzE,kBAAkB,EAAE,gBAAgB;QACpC,GAAG,OAAO;KACb,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { Connection, createConnection } from 'mongoose';\r\nimport {getDiscriminatorModelForClass, getModelForClass, ReturnModelType} from '@typegoose/typegoose';\r\nimport {AnyParamConstructor, IModelOptions} from \"@typegoose/typegoose/lib/types\";\r\n\r\nimport { applySoftDeletePlugin } from './plugins/soft-delete-plugin';\r\n\r\n// Apply the soft delete plugin globally before any connections or models\r\napplySoftDeletePlugin();\r\nlet globalConnection: Connection | undefined;\r\n\r\n// Track pending models that were requested before connection initialization\r\nlet pendingModels: Array<{\r\n Class: any,\r\n options?: IModelOptions,\r\n callback: (model: any) => void\r\n}> = [];\r\nlet isConnectionInitialized = false;\r\n\r\nexport async function initGlobalConnection(uri: string, environment: string) {\r\n if (!globalConnection) {\r\n globalConnection = createConnection(uri, {\r\n dbName: `lyxa-${environment}-global`,\r\n });\r\n\r\n // Connection is now initialized\r\n isConnectionInitialized = true;\r\n\r\n // Process any pending models\r\n for (const { Class, options, callback } of pendingModels) {\r\n const model = getModelForClass(Class, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n callback(model);\r\n }\r\n pendingModels = [];\r\n }\r\n return globalConnection;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose model from a class (with a single, global connection).\r\n * If connection is not yet initialized, returns a proxy that will resolve to the model\r\n * once the connection is established.\r\n */\r\nexport function createGlobalModel<T extends AnyParamConstructor<any>>(\r\n Class: T,\r\n options?: IModelOptions\r\n): ReturnModelType<T> {\r\n if (globalConnection && isConnectionInitialized) {\r\n // Normal behavior - create and return the model\r\n return getModelForClass(Class, { existingConnection: globalConnection, ...options });\r\n } else {\r\n // Connection not initialized yet - create a proxy object\r\n let modelInstance: any = null;\r\n\r\n const modelProxy = new Proxy({}, {\r\n get: function(target, prop) {\r\n if (!modelInstance) {\r\n throw new Error('Model not initialized yet. Database connection pending.');\r\n }\r\n return modelInstance[prop];\r\n }\r\n }) as ReturnModelType<T>;\r\n\r\n // Store this request to be processed when connection is initialized\r\n pendingModels.push({\r\n Class,\r\n options,\r\n callback: (model) => {\r\n modelInstance = model;\r\n }\r\n });\r\n\r\n return modelProxy;\r\n }\r\n}\r\n\r\n/**\r\n * Creates a Typegoose *discriminator* model from a base model,\r\n * using a derived sub-class & optional discriminator value.\r\n *\r\n * @param baseModel The ReturnModelType (model) for the base class\r\n * @param subClass The derived class constructor\r\n * @param discriminatorName A string to label this sub-class (e.g. \"DOG\")\r\n * @param options Additional model options\r\n */\r\nexport function createGlobalDiscriminatorModel<\r\n Base extends AnyParamConstructor<any>,\r\n Sub extends AnyParamConstructor<any>,\r\n>(\r\n baseModel: ReturnModelType<Base>,\r\n subClass: Sub,\r\n discriminatorName?: string,\r\n options?: IModelOptions,\r\n): ReturnModelType<Sub> {\r\n if (!globalConnection) {\r\n throw new Error(\r\n 'Global connection not initialized. Call initGlobalConnection(...) first.',\r\n );\r\n }\r\n\r\n return getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n existingConnection: globalConnection,\r\n ...options,\r\n });\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/mongo/index.ts"],"names":[],"mappings":"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","sourcesContent":["import mongoose, { Connection, createConnection } from 'mongoose';\r\nimport { getDiscriminatorModelForClass, getModelForClass, ReturnModelType } from '@typegoose/typegoose';\r\nimport { AnyParamConstructor, IModelOptions } from \"@typegoose/typegoose/lib/types\";\r\nimport { applySoftDeletePlugin } from './plugins/soft-delete-plugin';\r\n\r\n// Apply the soft delete plugin globally before any connections or models\r\napplySoftDeletePlugin();\r\n\r\n// Track connection status\r\nlet globalConnection: Connection | undefined;\r\nlet connectionPromise: Promise<Connection> | null = null;\r\nlet pendingModels = new Map<string, {\r\n Class: AnyParamConstructor<any>,\r\n options?: IModelOptions,\r\n resolve: (model: any) => void\r\n}>();\r\n\r\nlet pendingDiscriminatorModels = new Map<string, {\r\n baseModel: any,\r\n subClass: AnyParamConstructor<any>,\r\n discriminatorName?: string,\r\n options?: IModelOptions,\r\n resolve: (model: any) => void\r\n}>();\r\n\r\n/**\r\n * Initialize the global database connection\r\n */\r\nexport async function initGlobalConnection(uri: string, environment: string): Promise<Connection> {\r\n if (!connectionPromise) {\r\n connectionPromise = new Promise<Connection>((resolve) => {\r\n console.log(`Initializing global connection for environment: ${environment}`);\r\n const connection = createConnection(uri, {\r\n dbName: `lyxa-${environment}-global`,\r\n });\r\n\r\n connection.once('connected', () => {\r\n console.log('Global connection successfully established');\r\n globalConnection = connection;\r\n\r\n // Initialize any pending models with the real connection\r\n for (const [modelName, { Class, options, resolve }] of pendingModels.entries()) {\r\n const model = getModelForClass(Class, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n resolve(model);\r\n }\r\n pendingModels.clear();\r\n\r\n // Initialize any pending discriminator models\r\n for (const [modelName, { baseModel, subClass, discriminatorName, options, resolve }] of pendingDiscriminatorModels.entries()) {\r\n const model = getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n resolve(model);\r\n }\r\n pendingDiscriminatorModels.clear();\r\n\r\n resolve(connection);\r\n });\r\n });\r\n }\r\n return connectionPromise;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose model that will use the global connection when it's ready.\r\n * Safe to call during module initialization before initGlobalConnection.\r\n */\r\nexport function createGlobalModel<T extends AnyParamConstructor<any>>(\r\n Class: T,\r\n options?: IModelOptions\r\n): ReturnModelType<T> {\r\n const modelName = options?.schemaOptions?.collection || Class.name;\r\n\r\n // If the connection is already initialized, create the model directly\r\n if (globalConnection) {\r\n return getModelForClass(Class, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n }\r\n\r\n console.log(`Registering model ${modelName} to be initialized when global connection is ready`);\r\n\r\n // Create a lazy-loaded model instance that will initialize once the connection is ready\r\n let actualModel: ReturnModelType<T> | null = null;\r\n let modelReadyPromise: Promise<ReturnModelType<T>> | null = null;\r\n\r\n // Setup the promise that will resolve once the model is ready\r\n modelReadyPromise = new Promise<ReturnModelType<T>>((resolve) => {\r\n // Register this model to be initialized when connection is ready\r\n pendingModels.set(modelName, { Class, options, resolve });\r\n });\r\n\r\n // Create a proxy that forwards operations to the real model once it's available\r\n const modelProxy = new Proxy({} as ReturnModelType<T>, {\r\n get(target, prop, receiver) {\r\n return async function(...args: any[]) {\r\n if (!actualModel) {\r\n actualModel = await modelReadyPromise!;\r\n }\r\n\r\n const propValue = (actualModel as any)[prop];\r\n if (typeof propValue === 'function') {\r\n return propValue.apply(actualModel, args);\r\n }\r\n return propValue;\r\n };\r\n }\r\n });\r\n\r\n return modelProxy;\r\n}\r\n\r\n/**\r\n * Creates a Typegoose discriminator model that will use the global connection when it's ready.\r\n * Safe to call during module initialization before initGlobalConnection.\r\n */\r\nexport function createGlobalDiscriminatorModel<\r\n Base extends AnyParamConstructor<any>,\r\n Sub extends AnyParamConstructor<any>,\r\n>(\r\n baseModel: ReturnModelType<Base>,\r\n subClass: Sub,\r\n discriminatorName?: string,\r\n options?: IModelOptions,\r\n): ReturnModelType<Sub> {\r\n const modelName = discriminatorName || subClass.name;\r\n\r\n // If the connection is already initialized, create the model directly\r\n if (globalConnection) {\r\n return getDiscriminatorModelForClass(baseModel, subClass, discriminatorName, {\r\n existingConnection: globalConnection,\r\n ...options\r\n });\r\n }\r\n\r\n console.log(`Registering discriminator model ${modelName} to be initialized when global connection is ready`);\r\n\r\n // Create a lazy-loaded model instance that will initialize once the connection is ready\r\n let actualModel: ReturnModelType<Sub> | null = null;\r\n let modelReadyPromise: Promise<ReturnModelType<Sub>> | null = null;\r\n\r\n // Setup the promise that will resolve once the model is ready\r\n modelReadyPromise = new Promise<ReturnModelType<Sub>>((resolve) => {\r\n // Register this discriminator model to be initialized when connection is ready\r\n pendingDiscriminatorModels.set(modelName, {\r\n baseModel,\r\n subClass,\r\n discriminatorName,\r\n options,\r\n resolve\r\n });\r\n });\r\n\r\n // Create a proxy that forwards operations to the real model once it's available\r\n const modelProxy = new Proxy({} as ReturnModelType<Sub>, {\r\n get(target, prop, receiver) {\r\n return async function(...args: any[]) {\r\n if (!actualModel) {\r\n actualModel = await modelReadyPromise!;\r\n }\r\n\r\n const propValue = (actualModel as any)[prop];\r\n if (typeof propValue === 'function') {\r\n return propValue.apply(actualModel, args);\r\n }\r\n return propValue;\r\n };\r\n }\r\n });\r\n\r\n return modelProxy;\r\n}\r\n"]}
@@ -1,10 +1,12 @@
1
- import { ReturnModelType } from '@typegoose/typegoose';
2
- import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
1
+ import { ReturnModelType, Ref } from "@typegoose/typegoose";
2
+ import { TimeStamps } from "@typegoose/typegoose/lib/defaultClasses";
3
+ import { AdminAccessControl } from "./admin-access-control.model";
3
4
  export declare class Admin extends TimeStamps {
4
5
  name: string;
5
6
  profilePhoto?: string;
6
7
  phoneNumber: string;
7
- isPhoneVerified?: boolean;
8
8
  status?: string;
9
+ _accessControlId?: Ref<AdminAccessControl>;
10
+ accessControl: Ref<AdminAccessControl>;
9
11
  }
10
12
  export declare const AdminModel: ReturnModelType<typeof Admin>;
@@ -13,12 +13,14 @@ exports.AdminModel = exports.Admin = void 0;
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
+ const admin_access_control_model_1 = require("./admin-access-control.model");
16
17
  let Admin = class Admin extends defaultClasses_1.TimeStamps {
17
18
  name;
18
19
  profilePhoto;
19
20
  phoneNumber;
20
- isPhoneVerified;
21
21
  status;
22
+ _accessControlId;
23
+ accessControl;
22
24
  };
23
25
  exports.Admin = Admin;
24
26
  __decorate([
@@ -33,16 +35,31 @@ __decorate([
33
35
  (0, typegoose_1.prop)({ required: true, type: String }),
34
36
  __metadata("design:type", String)
35
37
  ], Admin.prototype, "phoneNumber", void 0);
36
- __decorate([
37
- (0, typegoose_1.prop)({ type: Boolean, default: false }),
38
- __metadata("design:type", Boolean)
39
- ], Admin.prototype, "isPhoneVerified", void 0);
40
38
  __decorate([
41
39
  (0, typegoose_1.prop)({ type: String, enum: enum_1.Status, default: enum_1.Status.ACTIVE }),
42
40
  __metadata("design:type", String)
43
41
  ], Admin.prototype, "status", void 0);
42
+ __decorate([
43
+ (0, typegoose_1.prop)({ ref: () => admin_access_control_model_1.AdminAccessControl }),
44
+ __metadata("design:type", Object)
45
+ ], Admin.prototype, "_accessControlId", void 0);
46
+ __decorate([
47
+ (0, typegoose_1.prop)({
48
+ ref: () => admin_access_control_model_1.AdminAccessControl,
49
+ foreignField: "admin",
50
+ localField: "_id",
51
+ justOne: true,
52
+ }),
53
+ __metadata("design:type", Object)
54
+ ], Admin.prototype, "accessControl", void 0);
44
55
  exports.Admin = Admin = __decorate([
45
- (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'admins' } })
56
+ (0, typegoose_1.modelOptions)({
57
+ schemaOptions: {
58
+ collection: "admins",
59
+ toJSON: { virtuals: true },
60
+ toObject: { virtuals: true },
61
+ },
62
+ })
46
63
  ], Admin);
47
64
  exports.AdminModel = (0, typegoose_1.getModelForClass)(Admin);
48
65
  //# sourceMappingURL=admin.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.model.js","sourceRoot":"/","sources":["libraries/mongo/models/admin.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA6F;AAC7F,4EAAqE;AACrE,kDAAiD;AAG1C,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,2BAAU;IAE7B,IAAI,CAAU;IAGd,YAAY,CAAU;IAGtB,WAAW,CAAU;IAGrB,eAAe,CAAW;IAG1B,MAAM,CAAU;CACvB,CAAA;AAfY,sBAAK;AAEV;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2CACM;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;8CACP;AAG1B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;qCACtC;gBAdX,KAAK;IADjB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC;GAC7C,KAAK,CAejB;AAEY,QAAA,UAAU,GAAkC,IAAA,4BAAgB,EAAC,KAAK,CAAC,CAAC","sourcesContent":["import { modelOptions, prop, getModelForClass, ReturnModelType } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { Status } from '../../../utilities/enum';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'admins' } })\r\nexport class Admin extends TimeStamps {\r\n\t@prop({ required: true, type: String })\r\n\tpublic name!: string;\r\n\r\n\t@prop({ type: String })\r\n\tpublic profilePhoto?: string;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic phoneNumber!: string;\r\n\r\n\t@prop({ type: Boolean, default: false })\r\n\tpublic isPhoneVerified?: boolean;\r\n\r\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\r\n\tpublic status?: string;\r\n}\r\n\r\nexport const AdminModel: ReturnModelType<typeof Admin> = getModelForClass(Admin);\r\n"]}
1
+ {"version":3,"file":"admin.model.js","sourceRoot":"/","sources":["libraries/mongo/models/admin.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAM8B;AAC9B,4EAAqE;AACrE,kDAAiD;AACjD,6EAAkE;AAS3D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,2BAAU;IAE5B,IAAI,CAAU;IAGd,YAAY,CAAU;IAGtB,WAAW,CAAU;IAGrB,MAAM,CAAU;IAGhB,gBAAgB,CAA2B;IAQ3C,aAAa,CAA0B;CAC/C,CAAA;AAvBY,sBAAK;AAET;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2CACM;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;qCACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,+CAAkB,EAAE,CAAC;;+CACU;AAQ3C;IANN,IAAA,gBAAI,EAAC;QACJ,GAAG,EAAE,GAAG,EAAE,CAAC,+CAAkB;QAC7B,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;KACd,CAAC;;4CAC4C;gBAtBnC,KAAK;IAPjB,IAAA,wBAAY,EAAC;QACZ,aAAa,EAAE;YACb,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1B,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;SAC7B;KACF,CAAC;GACW,KAAK,CAuBjB;AAEY,QAAA,UAAU,GACrB,IAAA,4BAAgB,EAAC,KAAK,CAAC,CAAC","sourcesContent":["import {\r\n modelOptions,\r\n prop,\r\n getModelForClass,\r\n ReturnModelType,\r\n Ref,\r\n} from \"@typegoose/typegoose\";\r\nimport { TimeStamps } from \"@typegoose/typegoose/lib/defaultClasses\";\r\nimport { Status } from \"../../../utilities/enum\";\r\nimport { AdminAccessControl } from \"./admin-access-control.model\";\r\n\r\n@modelOptions({\r\n schemaOptions: {\r\n collection: \"admins\",\r\n toJSON: { virtuals: true },\r\n toObject: { virtuals: true },\r\n },\r\n})\r\nexport class Admin extends TimeStamps {\r\n @prop({ required: true, type: String })\r\n public name!: string;\r\n\r\n @prop({ type: String })\r\n public profilePhoto?: string;\r\n\r\n @prop({ required: true, type: String })\r\n public phoneNumber!: string;\r\n\r\n @prop({ type: String, enum: Status, default: Status.ACTIVE })\r\n public status?: string;\r\n\r\n @prop({ ref: () => AdminAccessControl })\r\n public _accessControlId?: Ref<AdminAccessControl>;\r\n\r\n @prop({\r\n ref: () => AdminAccessControl,\r\n foreignField: \"admin\",\r\n localField: \"_id\",\r\n justOne: true,\r\n })\r\n public accessControl: Ref<AdminAccessControl>;\r\n}\r\n\r\nexport const AdminModel: ReturnModelType<typeof Admin> =\r\n getModelForClass(Admin);\r\n"]}
@@ -1,9 +1,9 @@
1
1
  import { mongoose, Ref } from '@typegoose/typegoose';
2
2
  import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
3
- import { User } from '../user.model';
3
+ import { CoreUser } from '../core-user.model';
4
4
  import { Order } from '../order.model';
5
5
  export declare class BaseReview extends TimeStamps {
6
- user: Ref<User>;
6
+ user: Ref<CoreUser>;
7
7
  description: string;
8
8
  rating: number;
9
9
  order: Ref<Order>;
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BaseReview = void 0;
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
- const user_model_1 = require("../user.model");
15
+ const core_user_model_1 = require("../core-user.model");
16
16
  const order_model_1 = require("../order.model");
17
17
  class BaseReview extends defaultClasses_1.TimeStamps {
18
18
  user;
@@ -25,7 +25,7 @@ class BaseReview extends defaultClasses_1.TimeStamps {
25
25
  }
26
26
  exports.BaseReview = BaseReview;
27
27
  __decorate([
28
- (0, typegoose_1.prop)({ required: true, ref: () => user_model_1.User }),
28
+ (0, typegoose_1.prop)({ required: true, ref: () => core_user_model_1.CoreUser }),
29
29
  __metadata("design:type", Object)
30
30
  ], BaseReview.prototype, "user", void 0);
31
31
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"base-review.model.js","sourceRoot":"/","sources":["libraries/mongo/models/base/base-review.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA2D;AAC3D,4EAAqE;AACrE,8CAAqC;AACrC,gDAAuC;AAEvC,MAAa,UAAW,SAAQ,2BAAU;IAElC,IAAI,CAAa;IAGjB,WAAW,CAAU;IAGrB,MAAM,CAAU;IAGhB,KAAK,CAAc;IAGnB,IAAI,CAAY;IAGhB,OAAO,CAAW;IAGlB,SAAS,CAA2B;CAC3C;AArBD,gCAqBC;AAnBO;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;wCAClB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;;0CAChC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAK,EAAE,CAAC;;yCACjB;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;wCACR;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,oBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;8BACrB,oBAAQ,CAAC,KAAK,CAAC,QAAQ;6CAAC","sourcesContent":["import { mongoose, prop, Ref } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { User } from '../user.model';\r\nimport { Order } from '../order.model';\r\n\r\nexport class BaseReview extends TimeStamps {\r\n\t@prop({ required: true, ref: () => User })\r\n\tpublic user!: Ref<User>;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic description!: string;\r\n\r\n\t@prop({ required: true, type: Number, min: 1, max: 5 })\r\n\tpublic rating!: number;\r\n\r\n\t@prop({ required: true, ref: () => Order })\r\n\tpublic order!: Ref<Order>;\r\n\r\n\t@prop({ type: () => [String] })\r\n\tpublic tags?: string[];\r\n\r\n\t@prop({ type: Boolean, default: true })\r\n\tpublic visible?: boolean;\r\n\r\n\t@prop({ type: mongoose.Types.ObjectId })\r\n\tpublic deletedBy?: mongoose.Types.ObjectId;\r\n}\r\n"]}
1
+ {"version":3,"file":"base-review.model.js","sourceRoot":"/","sources":["libraries/mongo/models/base/base-review.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA2D;AAC3D,4EAAqE;AACrE,wDAA8C;AAC9C,gDAAuC;AAEvC,MAAa,UAAW,SAAQ,2BAAU;IAElC,IAAI,CAAiB;IAGrB,WAAW,CAAU;IAGrB,MAAM,CAAU;IAGhB,KAAK,CAAc;IAGnB,IAAI,CAAY;IAGhB,OAAO,CAAW;IAGlB,SAAS,CAA2B;CAC3C;AArBD,gCAqBC;AAnBO;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,0BAAQ,EAAE,CAAC;;wCAClB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;;0CAChC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,mBAAK,EAAE,CAAC;;yCACjB;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;wCACR;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACd;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,oBAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;8BACrB,oBAAQ,CAAC,KAAK,CAAC,QAAQ;6CAAC","sourcesContent":["import { mongoose, prop, Ref } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { CoreUser } from '../core-user.model';\r\nimport { Order } from '../order.model';\r\n\r\nexport class BaseReview extends TimeStamps {\r\n\t@prop({ required: true, ref: () => CoreUser })\r\n\tpublic user!: Ref<CoreUser>;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic description!: string;\r\n\r\n\t@prop({ required: true, type: Number, min: 1, max: 5 })\r\n\tpublic rating!: number;\r\n\r\n\t@prop({ required: true, ref: () => Order })\r\n\tpublic order!: Ref<Order>;\r\n\r\n\t@prop({ type: () => [String] })\r\n\tpublic tags?: string[];\r\n\r\n\t@prop({ type: Boolean, default: true })\r\n\tpublic visible?: boolean;\r\n\r\n\t@prop({ type: mongoose.Types.ObjectId })\r\n\tpublic deletedBy?: mongoose.Types.ObjectId;\r\n}\r\n"]}
@@ -0,0 +1,8 @@
1
+ import { Ref, ReturnModelType } from '@typegoose/typegoose';
2
+ import { CoreAuthIdentityType } from '../../../utilities/enum';
3
+ import { CoreUser } from './core-user.model';
4
+ export declare class CoreAuthIdentity {
5
+ user: Ref<CoreUser>;
6
+ type: CoreAuthIdentityType;
7
+ }
8
+ export declare const CoreAuthIdentityModel: ReturnModelType<typeof CoreAuthIdentity>;
@@ -9,25 +9,26 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AuthIdentityModel = exports.AuthIdentity = void 0;
12
+ exports.CoreAuthIdentityModel = exports.CoreAuthIdentity = void 0;
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
14
  const enum_1 = require("../../../utilities/enum");
15
- const user_model_1 = require("./user.model");
16
- let AuthIdentity = class AuthIdentity {
15
+ const core_user_model_1 = require("./core-user.model");
16
+ const mongo_1 = require("../../mongo");
17
+ let CoreAuthIdentity = class CoreAuthIdentity {
17
18
  user;
18
19
  type;
19
20
  };
20
- exports.AuthIdentity = AuthIdentity;
21
+ exports.CoreAuthIdentity = CoreAuthIdentity;
21
22
  __decorate([
22
- (0, typegoose_1.prop)({ required: true, ref: () => user_model_1.User }),
23
+ (0, typegoose_1.prop)({ required: true, ref: () => core_user_model_1.CoreUser }),
23
24
  __metadata("design:type", Object)
24
- ], AuthIdentity.prototype, "user", void 0);
25
+ ], CoreAuthIdentity.prototype, "user", void 0);
25
26
  __decorate([
26
- (0, typegoose_1.prop)({ required: true, type: String, enum: enum_1.AuthIdentityType }),
27
+ (0, typegoose_1.prop)({ required: true, type: String, enum: enum_1.CoreAuthIdentityType }),
27
28
  __metadata("design:type", String)
28
- ], AuthIdentity.prototype, "type", void 0);
29
- exports.AuthIdentity = AuthIdentity = __decorate([
29
+ ], CoreAuthIdentity.prototype, "type", void 0);
30
+ exports.CoreAuthIdentity = CoreAuthIdentity = __decorate([
30
31
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'authIdentities', discriminatorKey: 'type' } })
31
- ], AuthIdentity);
32
- exports.AuthIdentityModel = (0, typegoose_1.getModelForClass)(AuthIdentity);
33
- //# sourceMappingURL=auth-identity.model.js.map
32
+ ], CoreAuthIdentity);
33
+ exports.CoreAuthIdentityModel = (0, mongo_1.createGlobalModel)(CoreAuthIdentity);
34
+ //# sourceMappingURL=core-auth-identity.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-auth-identity.model.js","sourceRoot":"/","sources":["libraries/mongo/models/core-auth-identity.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAgF;AAChF,kDAA+D;AAC/D,uDAA6C;AAC7C,uCAAgD;AAGzC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAErB,IAAI,CAAiB;IAGrB,IAAI,CAAwB;CACnC,CAAA;AANY,4CAAgB;AAErB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,0BAAQ,EAAE,CAAC;;8CAClB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAAoB,EAAE,CAAC;;8CAChC;2BALvB,gBAAgB;IAD5B,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,CAAC;GAC/E,gBAAgB,CAM5B;AAEY,QAAA,qBAAqB,GACjC,IAAA,yBAAiB,EAAC,gBAAgB,CAAC,CAAC","sourcesContent":["import { modelOptions, prop, Ref, ReturnModelType } from '@typegoose/typegoose';\r\nimport { CoreAuthIdentityType } from '../../../utilities/enum';\r\nimport { CoreUser } from './core-user.model';\r\nimport { createGlobalModel } from '../../mongo';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'authIdentities', discriminatorKey: 'type' } })\r\nexport class CoreAuthIdentity {\r\n\t@prop({ required: true, ref: () => CoreUser })\r\n\tpublic user!: Ref<CoreUser>;\r\n\r\n\t@prop({ required: true, type: String, enum: CoreAuthIdentityType })\r\n\tpublic type!: CoreAuthIdentityType;\r\n}\r\n\r\nexport const CoreAuthIdentityModel: ReturnModelType<typeof CoreAuthIdentity> =\r\n\tcreateGlobalModel(CoreAuthIdentity);\r\n"]}
@@ -1,7 +1,7 @@
1
1
  import { ReturnModelType } from '@typegoose/typegoose';
2
2
  import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
3
3
  import { Status } from '../../../utilities/enum';
4
- export declare class User extends TimeStamps {
4
+ export declare class CoreUser extends TimeStamps {
5
5
  name: string;
6
6
  email: string;
7
7
  gender: string;
@@ -13,4 +13,4 @@ export declare class User extends TimeStamps {
13
13
  deviceIds: string[];
14
14
  referral: string;
15
15
  }
16
- export declare const UserModel: ReturnModelType<typeof User>;
16
+ export declare const CoreUserModel: ReturnModelType<typeof CoreUser>;
@@ -9,11 +9,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.UserModel = exports.User = void 0;
12
+ exports.CoreUserModel = exports.CoreUser = void 0;
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
15
  const enum_1 = require("../../../utilities/enum");
16
- let User = class User extends defaultClasses_1.TimeStamps {
16
+ const mongo_1 = require("../../mongo");
17
+ let CoreUser = class CoreUser extends defaultClasses_1.TimeStamps {
17
18
  name;
18
19
  email;
19
20
  gender;
@@ -25,49 +26,49 @@ let User = class User extends defaultClasses_1.TimeStamps {
25
26
  deviceIds;
26
27
  referral;
27
28
  };
28
- exports.User = User;
29
+ exports.CoreUser = CoreUser;
29
30
  __decorate([
30
31
  (0, typegoose_1.prop)({ required: true, type: String }),
31
32
  __metadata("design:type", String)
32
- ], User.prototype, "name", void 0);
33
+ ], CoreUser.prototype, "name", void 0);
33
34
  __decorate([
34
35
  (0, typegoose_1.prop)({ required: true, type: String }),
35
36
  __metadata("design:type", String)
36
- ], User.prototype, "email", void 0);
37
+ ], CoreUser.prototype, "email", void 0);
37
38
  __decorate([
38
39
  (0, typegoose_1.prop)({ required: true, type: String }),
39
40
  __metadata("design:type", String)
40
- ], User.prototype, "gender", void 0);
41
+ ], CoreUser.prototype, "gender", void 0);
41
42
  __decorate([
42
43
  (0, typegoose_1.prop)({ required: true, type: Date }),
43
44
  __metadata("design:type", Date)
44
- ], User.prototype, "dob", void 0);
45
+ ], CoreUser.prototype, "dob", void 0);
45
46
  __decorate([
46
47
  (0, typegoose_1.prop)({ required: true, type: String }),
47
48
  __metadata("design:type", String)
48
- ], User.prototype, "countryISO2", void 0);
49
+ ], CoreUser.prototype, "countryISO2", void 0);
49
50
  __decorate([
50
51
  (0, typegoose_1.prop)({ type: () => [String], default: [] }),
51
52
  __metadata("design:type", Array)
52
- ], User.prototype, "fcmTokens", void 0);
53
+ ], CoreUser.prototype, "fcmTokens", void 0);
53
54
  __decorate([
54
55
  (0, typegoose_1.prop)({ required: true, type: String }),
55
56
  __metadata("design:type", String)
56
- ], User.prototype, "profilePhoto", void 0);
57
+ ], CoreUser.prototype, "profilePhoto", void 0);
57
58
  __decorate([
58
59
  (0, typegoose_1.prop)({ type: String, enum: enum_1.Status, default: enum_1.Status.ACTIVE }),
59
60
  __metadata("design:type", String)
60
- ], User.prototype, "status", void 0);
61
+ ], CoreUser.prototype, "status", void 0);
61
62
  __decorate([
62
63
  (0, typegoose_1.prop)({ required: true, type: () => [String] }),
63
64
  __metadata("design:type", Array)
64
- ], User.prototype, "deviceIds", void 0);
65
+ ], CoreUser.prototype, "deviceIds", void 0);
65
66
  __decorate([
66
67
  (0, typegoose_1.prop)({ required: true, type: String }),
67
68
  __metadata("design:type", String)
68
- ], User.prototype, "referral", void 0);
69
- exports.User = User = __decorate([
69
+ ], CoreUser.prototype, "referral", void 0);
70
+ exports.CoreUser = CoreUser = __decorate([
70
71
  (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'users' } })
71
- ], User);
72
- exports.UserModel = (0, typegoose_1.getModelForClass)(User);
73
- //# sourceMappingURL=user.model.js.map
72
+ ], CoreUser);
73
+ exports.CoreUserModel = (0, mongo_1.createGlobalModel)(CoreUser);
74
+ //# sourceMappingURL=core-user.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-user.model.js","sourceRoot":"/","sources":["libraries/mongo/models/core-user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA2E;AAC3E,4EAAqE;AACrE,kDAAiD;AACjD,uCAAgD;AAGzC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,2BAAU;IAEhC,IAAI,CAAU;IAGd,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,GAAG,CAAQ;IAGX,WAAW,CAAU;IAGrB,SAAS,CAAY;IAGrB,YAAY,CAAU;IAGtB,MAAM,CAAU;IAGhB,SAAS,CAAY;IAGrB,QAAQ,CAAU;CACzB,CAAA;AA9BY,4BAAQ;AAEb;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uCACjB;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wCAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACxB,IAAI;qCAAC;AAGX;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;2CAChB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;8CACV;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;wCACtC;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;2CACnB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACd;mBA7Bb,QAAQ;IADpB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;GAC5C,QAAQ,CA8BpB;AAEY,QAAA,aAAa,GAAqC,IAAA,yBAAiB,EAAC,QAAQ,CAAC,CAAC","sourcesContent":["import { modelOptions, prop, ReturnModelType } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { Status } from '../../../utilities/enum';\r\nimport { createGlobalModel } from '../../mongo';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'users' } })\r\nexport class CoreUser extends TimeStamps {\r\n\t@prop({ required: true, type: String })\r\n\tpublic name!: string;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic email!: string;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic gender!: string;\r\n\r\n\t@prop({ required: true, type: Date })\r\n\tpublic dob!: Date;\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic countryISO2!: string;\r\n\r\n\t@prop({ type: () => [String], default: [] })\r\n\tpublic fcmTokens?: string[];\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic profilePhoto!: string;\r\n\r\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\r\n\tpublic status?: Status;\r\n\r\n\t@prop({ required: true, type: () => [String] })\r\n\tpublic deviceIds!: string[];\r\n\r\n\t@prop({ required: true, type: String })\r\n\tpublic referral!: string;\r\n}\r\n\r\nexport const CoreUserModel: ReturnModelType<typeof CoreUser> = createGlobalModel(CoreUser);\r\n"]}
@@ -1,11 +1,11 @@
1
1
  import { Ref, ReturnModelType } from '@typegoose/typegoose';
2
2
  import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
3
- import { User } from './user.model';
3
+ import { CoreUser } from './core-user.model';
4
4
  import { FavouriteType } from '../../../utilities/enum';
5
5
  import { Shop } from './shop.model';
6
6
  import { Product } from './product.model';
7
7
  export declare class Favourite extends TimeStamps {
8
- user: Ref<User>;
8
+ user: Ref<CoreUser>;
9
9
  favouriteType: FavouriteType;
10
10
  shop?: Ref<Shop>;
11
11
  product?: Ref<Product>;
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.FavouriteModel = exports.Favourite = void 0;
13
13
  const typegoose_1 = require("@typegoose/typegoose");
14
14
  const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
- const user_model_1 = require("./user.model");
15
+ const core_user_model_1 = require("./core-user.model");
16
16
  const enum_1 = require("../../../utilities/enum");
17
17
  const shop_model_1 = require("./shop.model");
18
18
  const product_model_1 = require("./product.model");
@@ -24,7 +24,7 @@ let Favourite = class Favourite extends defaultClasses_1.TimeStamps {
24
24
  };
25
25
  exports.Favourite = Favourite;
26
26
  __decorate([
27
- (0, typegoose_1.prop)({ required: true, ref: () => user_model_1.User }),
27
+ (0, typegoose_1.prop)({ required: true, ref: () => core_user_model_1.CoreUser }),
28
28
  __metadata("design:type", Object)
29
29
  ], Favourite.prototype, "user", void 0);
30
30
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"favourite.model.js","sourceRoot":"/","sources":["libraries/mongo/models/favourite.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA4G;AAC5G,4EAAqE;AACrE,6CAAoC;AACpC,kDAAwD;AACxD,6CAAoC;AACpC,mDAA0C;AAGnC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,2BAAU;IAEjC,IAAI,CAAa;IAGjB,aAAa,CAAiB;IAG9B,IAAI,CAAa;IAGjB,OAAO,CAAgB;CAC9B,CAAA;AAZY,8BAAS;AAEd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;uCAClB;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,oBAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACT;AAG9B;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;uCACF;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,uBAAO,EAAE,CAAC;;0CACC;oBAXlB,SAAS;IADrB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;GACjD,SAAS,CAYrB;AAEY,QAAA,cAAc,GAAsC,IAAA,4BAAgB,EAAC,SAAS,CAAC,CAAC","sourcesContent":["import { getModelForClass, modelOptions, mongoose, prop, Ref, ReturnModelType } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { User } from './user.model';\r\nimport { FavouriteType } from '../../../utilities/enum';\r\nimport { Shop } from './shop.model';\r\nimport { Product } from './product.model';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'favourites' } })\r\nexport class Favourite extends TimeStamps {\r\n\t@prop({ required: true, ref: () => User })\r\n\tpublic user!: Ref<User>;\r\n\r\n\t@prop({ enum: FavouriteType, required: true })\r\n\tpublic favouriteType!: FavouriteType;\r\n\r\n\t@prop({ ref: () => Shop })\r\n\tpublic shop?: Ref<Shop>;\r\n\r\n\t@prop({ ref: () => Product })\r\n\tpublic product?: Ref<Product>;\r\n}\r\n\r\nexport const FavouriteModel: ReturnModelType<typeof Favourite> = getModelForClass(Favourite);\r\n"]}
1
+ {"version":3,"file":"favourite.model.js","sourceRoot":"/","sources":["libraries/mongo/models/favourite.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA4G;AAC5G,4EAAqE;AACrE,uDAA6C;AAC7C,kDAAwD;AACxD,6CAAoC;AACpC,mDAA0C;AAGnC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,2BAAU;IAEjC,IAAI,CAAiB;IAGrB,aAAa,CAAiB;IAG9B,IAAI,CAAa;IAGjB,OAAO,CAAgB;CAC9B,CAAA;AAZY,8BAAS;AAEd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,0BAAQ,EAAE,CAAC;;uCAClB;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,oBAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACT;AAG9B;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAI,EAAE,CAAC;;uCACF;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,uBAAO,EAAE,CAAC;;0CACC;oBAXlB,SAAS;IADrB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;GACjD,SAAS,CAYrB;AAEY,QAAA,cAAc,GAAsC,IAAA,4BAAgB,EAAC,SAAS,CAAC,CAAC","sourcesContent":["import { getModelForClass, modelOptions, mongoose, prop, Ref, ReturnModelType } from '@typegoose/typegoose';\r\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\r\nimport { CoreUser } from './core-user.model';\r\nimport { FavouriteType } from '../../../utilities/enum';\r\nimport { Shop } from './shop.model';\r\nimport { Product } from './product.model';\r\n\r\n@modelOptions({ schemaOptions: { collection: 'favourites' } })\r\nexport class Favourite extends TimeStamps {\r\n\t@prop({ required: true, ref: () => CoreUser })\r\n\tpublic user!: Ref<CoreUser>;\r\n\r\n\t@prop({ enum: FavouriteType, required: true })\r\n\tpublic favouriteType!: FavouriteType;\r\n\r\n\t@prop({ ref: () => Shop })\r\n\tpublic shop?: Ref<Shop>;\r\n\r\n\t@prop({ ref: () => Product })\r\n\tpublic product?: Ref<Product>;\r\n}\r\n\r\nexport const FavouriteModel: ReturnModelType<typeof Favourite> = getModelForClass(Favourite);\r\n"]}