@merkaly/api 0.2.5-8 → 0.3.2

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 (261) hide show
  1. package/dist/abstract.entity.d.ts +10 -0
  2. package/dist/abstract.entity.js +45 -0
  3. package/dist/abstract.repository.d.ts +56 -0
  4. package/dist/abstract.repository.js +200 -0
  5. package/dist/abstract.validator.d.ts +22 -0
  6. package/dist/abstract.validator.js +98 -0
  7. package/dist/account/address/address.entity.d.ts +7 -0
  8. package/dist/account/address/address.entity.js +34 -0
  9. package/dist/account/address/address.validator.d.ts +17 -0
  10. package/dist/account/address/address.validator.js +67 -0
  11. package/dist/account/address/index.d.ts +2 -0
  12. package/dist/account/address/index.js +12 -0
  13. package/dist/account/cart/cart.entity.d.ts +8 -0
  14. package/dist/account/cart/cart.entity.js +34 -0
  15. package/dist/account/cart/cart.validator.d.ts +13 -0
  16. package/dist/account/cart/cart.validator.js +45 -0
  17. package/dist/account/cart/index.d.ts +2 -0
  18. package/dist/account/cart/index.js +12 -0
  19. package/dist/account/payment/index.d.ts +2 -0
  20. package/dist/account/payment/index.js +12 -0
  21. package/dist/account/payment/payment.entity.d.ts +11 -0
  22. package/dist/account/payment/payment.entity.js +57 -0
  23. package/dist/account/payment/payment.validator.d.ts +15 -0
  24. package/dist/account/payment/payment.validator.js +57 -0
  25. package/dist/account/user/index.d.ts +2 -0
  26. package/dist/account/user/index.js +12 -0
  27. package/dist/account/user/user.entity.d.ts +8 -0
  28. package/dist/account/user/user.entity.js +46 -0
  29. package/dist/account/user/user.validator.d.ts +17 -0
  30. package/dist/account/user/user.validator.js +68 -0
  31. package/dist/account/wishlist/index.d.ts +2 -0
  32. package/dist/account/wishlist/index.js +12 -0
  33. package/dist/account/wishlist/wishlist.entity.d.ts +8 -0
  34. package/dist/account/wishlist/wishlist.entity.js +38 -0
  35. package/dist/account/wishlist/wishlist.validator.d.ts +12 -0
  36. package/dist/account/wishlist/wishlist.validator.js +39 -0
  37. package/dist/address.entity.d.ts +14 -0
  38. package/dist/address.entity.js +59 -0
  39. package/dist/assets/asset/asset.entity.d.ts +11 -0
  40. package/dist/assets/asset/asset.entity.js +58 -0
  41. package/dist/assets/asset/asset.enum.d.ts +6 -0
  42. package/dist/assets/asset/asset.enum.js +11 -0
  43. package/dist/assets/asset/index.d.ts +2 -0
  44. package/dist/assets/asset/index.js +12 -0
  45. package/dist/billing/payment/index.d.ts +2 -0
  46. package/dist/billing/payment/index.js +12 -0
  47. package/dist/billing/payment/payment.enum.d.ts +15 -0
  48. package/dist/billing/payment/payment.enum.js +21 -0
  49. package/dist/billing/payment/transaction.entity.d.ts +15 -0
  50. package/dist/billing/payment/transaction.entity.js +55 -0
  51. package/dist/billing/status/index.d.ts +1 -0
  52. package/dist/billing/status/index.js +7 -0
  53. package/dist/billing/status/status.entity.d.ts +8 -0
  54. package/dist/billing/status/status.entity.js +40 -0
  55. package/dist/index.d.ts +5 -0
  56. package/dist/index.js +22 -0
  57. package/dist/inventory/catalog/attribute/attribute.entity.d.ts +8 -0
  58. package/dist/inventory/catalog/attribute/attribute.entity.js +47 -0
  59. package/dist/inventory/catalog/attribute/attribute.validator.d.ts +15 -0
  60. package/dist/inventory/catalog/attribute/attribute.validator.js +58 -0
  61. package/dist/inventory/catalog/attribute/index.d.ts +2 -0
  62. package/dist/inventory/catalog/attribute/index.js +12 -0
  63. package/dist/inventory/catalog/brand/brand.entity.d.ts +7 -0
  64. package/dist/inventory/catalog/brand/brand.entity.js +33 -0
  65. package/dist/inventory/catalog/brand/brand.validator.d.ts +12 -0
  66. package/dist/inventory/catalog/brand/brand.validator.js +39 -0
  67. package/dist/inventory/catalog/brand/index.d.ts +2 -0
  68. package/dist/inventory/catalog/brand/index.js +12 -0
  69. package/dist/inventory/catalog/category/category.entity.d.ts +7 -0
  70. package/dist/inventory/catalog/category/category.entity.js +33 -0
  71. package/dist/inventory/catalog/category/category.validator.d.ts +12 -0
  72. package/dist/inventory/catalog/category/category.validator.js +39 -0
  73. package/dist/inventory/catalog/category/index.d.ts +2 -0
  74. package/dist/inventory/catalog/category/index.js +12 -0
  75. package/dist/inventory/catalog/collection/collection.entity.d.ts +7 -0
  76. package/dist/inventory/catalog/collection/collection.entity.js +42 -0
  77. package/dist/inventory/catalog/collection/collection.validator.d.ts +13 -0
  78. package/dist/inventory/catalog/collection/collection.validator.js +45 -0
  79. package/dist/inventory/catalog/collection/index.d.ts +2 -0
  80. package/dist/inventory/catalog/collection/index.js +12 -0
  81. package/dist/inventory/catalog/product/index.d.ts +3 -0
  82. package/dist/inventory/catalog/product/index.js +17 -0
  83. package/dist/inventory/catalog/product/product.entity.d.ts +31 -0
  84. package/dist/inventory/catalog/product/product.entity.js +115 -0
  85. package/dist/inventory/catalog/product/product.status.enum.d.ts +8 -0
  86. package/dist/inventory/catalog/product/product.status.enum.js +13 -0
  87. package/dist/inventory/catalog/product/product.validator.d.ts +39 -0
  88. package/dist/inventory/catalog/product/product.validator.js +135 -0
  89. package/dist/inventory/configuration/label/index.d.ts +2 -0
  90. package/dist/inventory/configuration/label/index.js +12 -0
  91. package/dist/inventory/configuration/label/label.entity.d.ts +7 -0
  92. package/dist/inventory/configuration/label/label.entity.js +42 -0
  93. package/dist/inventory/configuration/label/label.validator.d.ts +14 -0
  94. package/dist/inventory/configuration/label/label.validator.js +51 -0
  95. package/dist/inventory/configuration/measurement/index.d.ts +2 -0
  96. package/dist/inventory/configuration/measurement/index.js +12 -0
  97. package/dist/inventory/configuration/measurement/measurement.entity.d.ts +8 -0
  98. package/dist/inventory/configuration/measurement/measurement.entity.js +42 -0
  99. package/dist/inventory/configuration/measurement/measurement.validator.d.ts +21 -0
  100. package/dist/inventory/configuration/measurement/measurement.validator.js +87 -0
  101. package/dist/inventory/configuration/unit/index.d.ts +1 -0
  102. package/dist/inventory/configuration/unit/index.js +7 -0
  103. package/dist/inventory/configuration/unit/unit.entity.d.ts +8 -0
  104. package/dist/inventory/configuration/unit/unit.entity.js +46 -0
  105. package/dist/inventory/stock/backorder/backorder.entity.d.ts +33 -0
  106. package/dist/inventory/stock/backorder/backorder.entity.js +106 -0
  107. package/dist/inventory/stock/backorder/backorder.validator.d.ts +24 -0
  108. package/dist/inventory/stock/backorder/backorder.validator.js +112 -0
  109. package/dist/inventory/stock/backorder/index.d.ts +2 -0
  110. package/dist/inventory/stock/backorder/index.js +12 -0
  111. package/dist/inventory/stock/transfer/index.d.ts +2 -0
  112. package/dist/inventory/stock/transfer/index.js +12 -0
  113. package/dist/inventory/stock/transfer/transfer.entity.d.ts +28 -0
  114. package/dist/inventory/stock/transfer/transfer.entity.js +108 -0
  115. package/dist/inventory/stock/transfer/transfer.validator.d.ts +25 -0
  116. package/dist/inventory/stock/transfer/transfer.validator.js +108 -0
  117. package/dist/inventory/stock/warehouse/index.d.ts +2 -0
  118. package/dist/inventory/stock/warehouse/index.js +12 -0
  119. package/dist/inventory/stock/warehouse/warehouse.entity.d.ts +21 -0
  120. package/dist/inventory/stock/warehouse/warehouse.entity.js +67 -0
  121. package/dist/inventory/stock/warehouse/warehouse.validator.d.ts +27 -0
  122. package/dist/inventory/stock/warehouse/warehouse.validator.js +115 -0
  123. package/dist/logistic/carrier/carrier.entity.d.ts +10 -0
  124. package/dist/logistic/carrier/carrier.entity.js +57 -0
  125. package/dist/logistic/carrier/carrier.validator.d.ts +17 -0
  126. package/dist/logistic/carrier/carrier.validator.js +69 -0
  127. package/dist/logistic/carrier/index.d.ts +2 -0
  128. package/dist/logistic/carrier/index.js +12 -0
  129. package/dist/logistic/shipment/index.d.ts +3 -0
  130. package/dist/logistic/shipment/index.js +17 -0
  131. package/dist/logistic/shipment/shipment.entity.d.ts +19 -0
  132. package/dist/logistic/shipment/shipment.entity.js +67 -0
  133. package/dist/logistic/shipment/shipment.enum.d.ts +16 -0
  134. package/dist/logistic/shipment/shipment.enum.js +22 -0
  135. package/dist/logistic/shipment/shipment.validator.d.ts +18 -0
  136. package/dist/logistic/shipment/shipment.validator.js +65 -0
  137. package/dist/order/purchase/item/index.d.ts +2 -0
  138. package/dist/order/purchase/item/index.js +12 -0
  139. package/dist/order/purchase/item/item.entity.d.ts +11 -0
  140. package/dist/order/purchase/item/item.entity.js +46 -0
  141. package/dist/order/purchase/item/item.validator.d.ts +7 -0
  142. package/dist/order/purchase/item/item.validator.js +41 -0
  143. package/dist/order/purchase/transaction/index.d.ts +3 -0
  144. package/dist/order/purchase/transaction/index.js +17 -0
  145. package/dist/order/purchase/transaction/transaction.entity.d.ts +17 -0
  146. package/dist/order/purchase/transaction/transaction.entity.js +67 -0
  147. package/dist/order/purchase/transaction/transaction.enum.d.ts +8 -0
  148. package/dist/order/purchase/transaction/transaction.enum.js +13 -0
  149. package/dist/order/purchase/transaction/transaction.validator.d.ts +21 -0
  150. package/dist/order/purchase/transaction/transaction.validator.js +87 -0
  151. package/dist/order/purchase/vendor/index.d.ts +2 -0
  152. package/dist/order/purchase/vendor/index.js +12 -0
  153. package/dist/order/purchase/vendor/vendor.entity.d.ts +11 -0
  154. package/dist/order/purchase/vendor/vendor.entity.js +62 -0
  155. package/dist/order/purchase/vendor/vendor.validator.d.ts +18 -0
  156. package/dist/order/purchase/vendor/vendor.validator.js +75 -0
  157. package/dist/order/sale/address/address.validator.d.ts +11 -0
  158. package/dist/order/sale/address/address.validator.js +70 -0
  159. package/dist/order/sale/address/index.d.ts +1 -0
  160. package/dist/order/sale/address/index.js +7 -0
  161. package/dist/order/sale/customer/customer.entity.d.ts +11 -0
  162. package/dist/order/sale/customer/customer.entity.js +62 -0
  163. package/dist/order/sale/customer/customer.validator.d.ts +18 -0
  164. package/dist/order/sale/customer/customer.validator.js +77 -0
  165. package/dist/order/sale/customer/index.d.ts +2 -0
  166. package/dist/order/sale/customer/index.js +12 -0
  167. package/dist/order/sale/item/index.d.ts +2 -0
  168. package/dist/order/sale/item/index.js +12 -0
  169. package/dist/order/sale/item/item.entity.d.ts +10 -0
  170. package/dist/order/sale/item/item.entity.js +45 -0
  171. package/dist/order/sale/item/item.validator.d.ts +5 -0
  172. package/{.output/modules/sale/orders/validators → dist/order/sale/item}/item.validator.js +23 -21
  173. package/dist/order/sale/payment/index.d.ts +1 -0
  174. package/dist/order/sale/payment/index.js +7 -0
  175. package/dist/order/sale/payment/payment.validator.d.ts +16 -0
  176. package/dist/order/sale/payment/payment.validator.js +51 -0
  177. package/dist/order/sale/transaction/index.d.ts +3 -0
  178. package/dist/order/sale/transaction/index.js +17 -0
  179. package/dist/order/sale/transaction/transaction.entity.d.ts +21 -0
  180. package/dist/order/sale/transaction/transaction.entity.js +56 -0
  181. package/dist/order/sale/transaction/transaction.enum.d.ts +8 -0
  182. package/dist/order/sale/transaction/transaction.enum.js +13 -0
  183. package/dist/order/sale/transaction/transaction.validator.d.ts +21 -0
  184. package/dist/order/sale/transaction/transaction.validator.js +76 -0
  185. package/dist/repository.types.d.ts +13 -0
  186. package/package.json +102 -86
  187. package/.output/abstracts/abstract.entity.d.ts +0 -14
  188. package/.output/abstracts/abstract.validator.d.ts +0 -24
  189. package/.output/abstracts/abstract.validator.js +0 -118
  190. package/.output/exceptions/missing-identity.exception.d.ts +0 -5
  191. package/.output/exceptions/missing-identity.exception.js +0 -30
  192. package/.output/modules/asset/files/file.entity.d.ts +0 -9
  193. package/.output/modules/asset/files/file.schema.d.ts +0 -34
  194. package/.output/modules/asset/files/file.schema.js +0 -10
  195. package/.output/modules/auth/organizations/organization.entity.d.ts +0 -8
  196. package/.output/modules/auth/users/user.entity.d.ts +0 -9
  197. package/.output/modules/auth/users/user.schema.d.ts +0 -34
  198. package/.output/modules/auth/users/user.schema.js +0 -10
  199. package/.output/modules/auth/users/user.validator.d.ts +0 -12
  200. package/.output/modules/auth/users/user.validator.js +0 -58
  201. package/.output/modules/inventory/brands/brand.entity.d.ts +0 -6
  202. package/.output/modules/inventory/brands/brand.schema.d.ts +0 -34
  203. package/.output/modules/inventory/brands/brand.schema.js +0 -10
  204. package/.output/modules/inventory/brands/brand.validator.d.ts +0 -11
  205. package/.output/modules/inventory/brands/brand.validator.js +0 -74
  206. package/.output/modules/inventory/categories/category.entity.d.ts +0 -6
  207. package/.output/modules/inventory/categories/category.schema.d.ts +0 -34
  208. package/.output/modules/inventory/categories/category.schema.js +0 -10
  209. package/.output/modules/inventory/categories/category.validator.d.ts +0 -8
  210. package/.output/modules/inventory/categories/category.validator.js +0 -42
  211. package/.output/modules/inventory/products/documents/attribute.document.d.ts +0 -5
  212. package/.output/modules/inventory/products/documents/attribute.document.js +0 -33
  213. package/.output/modules/inventory/products/documents/dimension.document.d.ts +0 -6
  214. package/.output/modules/inventory/products/documents/dimension.document.js +0 -35
  215. package/.output/modules/inventory/products/product.entity.d.ts +0 -19
  216. package/.output/modules/inventory/products/product.schema.d.ts +0 -34
  217. package/.output/modules/inventory/products/product.schema.js +0 -18
  218. package/.output/modules/inventory/products/product.validator.d.ts +0 -29
  219. package/.output/modules/inventory/products/product.validator.js +0 -181
  220. package/.output/modules/inventory/products/validators/attributes.validator.d.ts +0 -5
  221. package/.output/modules/inventory/products/validators/attributes.validator.js +0 -35
  222. package/.output/modules/inventory/products/validators/dimension.validator.d.ts +0 -6
  223. package/.output/modules/inventory/products/validators/dimension.validator.js +0 -38
  224. package/.output/modules/sale/customers/customer.entity.d.ts +0 -8
  225. package/.output/modules/sale/customers/customer.schema.d.ts +0 -34
  226. package/.output/modules/sale/customers/customer.schema.js +0 -10
  227. package/.output/modules/sale/customers/customer.validator.d.ts +0 -14
  228. package/.output/modules/sale/customers/customer.validator.js +0 -94
  229. package/.output/modules/sale/orders/documents/address.document.d.ts +0 -8
  230. package/.output/modules/sale/orders/documents/address.document.js +0 -43
  231. package/.output/modules/sale/orders/documents/status.document.d.ts +0 -8
  232. package/.output/modules/sale/orders/documents/status.document.js +0 -34
  233. package/.output/modules/sale/orders/entities/item.entity.d.ts +0 -38
  234. package/.output/modules/sale/orders/enums/order.status.d.ts +0 -6
  235. package/.output/modules/sale/orders/enums/order.status.js +0 -10
  236. package/.output/modules/sale/orders/order.entity.d.ts +0 -21
  237. package/.output/modules/sale/orders/order.validator.d.ts +0 -16
  238. package/.output/modules/sale/orders/order.validator.js +0 -86
  239. package/.output/modules/sale/orders/validators/address.validator.d.ts +0 -17
  240. package/.output/modules/sale/orders/validators/address.validator.js +0 -81
  241. package/.output/modules/sale/orders/validators/billing.validator.d.ts +0 -8
  242. package/.output/modules/sale/orders/validators/billing.validator.js +0 -13
  243. package/.output/modules/sale/orders/validators/item.validator.d.ts +0 -5
  244. package/.output/modules/sale/orders/validators/payment.validator.d.ts +0 -10
  245. package/.output/modules/sale/orders/validators/payment.validator.js +0 -62
  246. package/.output/modules/sale/orders/validators/shipping.validator.d.ts +0 -9
  247. package/.output/modules/sale/orders/validators/shipping.validator.js +0 -14
  248. package/.output/modules/sale/payments/entities/status.entity.d.ts +0 -8
  249. package/.output/modules/sale/payments/enums/billing.type.d.ts +0 -6
  250. package/.output/modules/sale/payments/enums/billing.type.js +0 -10
  251. package/.output/modules/sale/payments/enums/payment.status.d.ts +0 -7
  252. package/.output/modules/sale/payments/enums/payment.status.js +0 -11
  253. package/.output/modules/sale/payments/enums/shipping.type.d.ts +0 -4
  254. package/.output/modules/sale/payments/enums/shipping.type.js +0 -8
  255. package/.output/modules/sale/payments/payment.entity.d.ts +0 -12
  256. package/.output/modules/sale/payments/payment.schema.d.ts +0 -34
  257. package/.output/modules/sale/payments/payment.schema.js +0 -14
  258. package/.output/modules/sale/payments/payment.validator.d.ts +0 -16
  259. package/.output/modules/sale/payments/payment.validator.js +0 -77
  260. package/.output/tsconfig.package.tsbuildinfo +0 -1
  261. package/README.md +0 -79
@@ -0,0 +1,10 @@
1
+ import { Document } from 'mongoose';
2
+ import type { SchemaOptions } from '@nestjs/mongoose/dist/decorators/schema.decorator';
3
+ export declare const $collection: SchemaOptions;
4
+ export declare const $subdocument: SchemaOptions;
5
+ export type MongoEntity<T extends AbstractEntity> = T | string;
6
+ export declare abstract class AbstractEntity extends Document<string> {
7
+ createdAt: Date;
8
+ readonly updatedAt?: Date;
9
+ deletedAt?: Date;
10
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AbstractEntity = exports.$subdocument = exports.$collection = void 0;
13
+ const mongoose_1 = require("@nestjs/mongoose");
14
+ const mongoose_2 = require("mongoose");
15
+ exports.$collection = {
16
+ timestamps: true,
17
+ toJSON: { getters: true, versionKey: false, virtuals: true },
18
+ toObject: { getters: true, versionKey: false, virtuals: true },
19
+ virtuals: true,
20
+ };
21
+ exports.$subdocument = {
22
+ _id: true,
23
+ toJSON: { getters: true, versionKey: false, virtuals: true },
24
+ toObject: { getters: true, versionKey: false, virtuals: true },
25
+ virtuals: true,
26
+ };
27
+ class AbstractEntity extends mongoose_2.Document {
28
+ createdAt;
29
+ updatedAt;
30
+ deletedAt;
31
+ }
32
+ exports.AbstractEntity = AbstractEntity;
33
+ __decorate([
34
+ (0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.Date }),
35
+ __metadata("design:type", Date)
36
+ ], AbstractEntity.prototype, "createdAt", void 0);
37
+ __decorate([
38
+ (0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.Date }),
39
+ __metadata("design:type", Date)
40
+ ], AbstractEntity.prototype, "updatedAt", void 0);
41
+ __decorate([
42
+ (0, mongoose_1.Prop)({ default: null, type: mongoose_2.Schema.Types.Date }),
43
+ __metadata("design:type", Date)
44
+ ], AbstractEntity.prototype, "deletedAt", void 0);
45
+ //# sourceMappingURL=abstract.entity.js.map
@@ -0,0 +1,56 @@
1
+ import { CacheService } from './';
2
+ import { LoggerService } from './';
3
+ import { MongoService } from './';
4
+ import { AbstractEntity } from './';
5
+ import { AbstractSchema } from './';
6
+ import { AbstractValidator, ReadValidator, SearchValidator } from './';
7
+ import type { Request } from 'express';
8
+ import type { HydratedDocument, RootFilterQuery, Document, Model } from 'mongoose';
9
+ type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
10
+ type SystemKeys = '_id' | 'createdAt' | 'updatedAt' | 'deletedAt' | keyof Document;
11
+ export type CreateEntityArgs<T> = {
12
+ [K in keyof T as K extends SystemKeys ? never : T[K] extends Function ? never : Equal<{
13
+ [Q in K]: T[K];
14
+ }, {
15
+ -readonly [Q in K]: T[K];
16
+ }> extends true ? K : never]: T[K] extends AbstractEntity ? CreateEntityArgs<T[K]> : T[K];
17
+ };
18
+ type UpdateEntityArgs<T extends AbstractEntity> = Partial<CreateEntityArgs<T>>;
19
+ interface ReadOptions {
20
+ cache?: boolean;
21
+ }
22
+ export declare abstract class AbstractRepository<E extends AbstractEntity = AbstractEntity> {
23
+ protected abstract readonly $schema: AbstractSchema<E>;
24
+ protected readonly $logger: LoggerService;
25
+ protected readonly $request: Request;
26
+ protected readonly $mongo: MongoService<E>;
27
+ readonly $cache: CacheService;
28
+ protected readonly $joins: Record<string, AbstractSchema<any>>;
29
+ constructor($request: Request, $mongo: MongoService<E>, $logger: LoggerService);
30
+ get $builder(): Model<E>;
31
+ get $user(): import("../../app.types").AppAuthUser;
32
+ set $identity(value: string);
33
+ get $identity(): string;
34
+ search(validator?: SearchValidator<E>): Promise<{
35
+ data: import("mongoose").IfAny<E, any, Document<unknown, {}, E, {}, {}> & (import("mongoose").Require_id<E> extends infer T ? T extends import("mongoose").Require_id<E> ? T extends {
36
+ __v?: infer U;
37
+ } ? T : T & {
38
+ __v: number;
39
+ } : never : never)>[];
40
+ limit: number;
41
+ pages: number;
42
+ total: number;
43
+ }>;
44
+ read(param: string | RootFilterQuery<E>, validator?: ReadValidator, options?: ReadOptions): Promise<HydratedDocument<E>>;
45
+ create(payload: CreateEntityArgs<E> | AbstractValidator, validator?: ReadValidator, doc?: Document<string, object, E>): Promise<import("mongoose").IfAny<E, any, Document<unknown, {}, E, {}, {}> & (import("mongoose").Require_id<E> extends infer T ? T extends import("mongoose").Require_id<E> ? T extends {
46
+ __v?: infer U;
47
+ } ? T : T & {
48
+ __v: number;
49
+ } : never : never)> | Document<string, object, E, Record<string, any>, {}>>;
50
+ update(_id: string, payload: UpdateEntityArgs<E> | AbstractValidator, validator?: ReadValidator): Promise<HydratedDocument<E>>;
51
+ delete(_id: string): Promise<void>;
52
+ private sanitizePaths;
53
+ private removeNonDeclaredSchemas;
54
+ private applyPopulate;
55
+ }
56
+ export {};
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AbstractRepository = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const core_1 = require("@nestjs/core");
18
+ const class_validator_1 = require("class-validator");
19
+ const cache_service_1 = require("../services/cache.service");
20
+ const logger_service_1 = require("../services/logger.service");
21
+ const entity_not_found_exception_1 = require("../exceptions/entity-not-found.exception");
22
+ const mongo_service_1 = require("../services/mongo.service");
23
+ const abstract_validator_1 = require("./abstract.validator");
24
+ const $cache = new cache_service_1.CacheService();
25
+ let AbstractRepository = class AbstractRepository {
26
+ $logger;
27
+ $request;
28
+ $mongo;
29
+ $cache = $cache;
30
+ $joins = {};
31
+ constructor($request, $mongo, $logger) {
32
+ this.$mongo = $mongo;
33
+ this.$request = $request;
34
+ this.$logger = $logger;
35
+ this.$cache.$request = $request;
36
+ }
37
+ get $builder() {
38
+ return this.$mongo.schema(this.$schema);
39
+ }
40
+ get $user() {
41
+ return this.$request?.user;
42
+ }
43
+ set $identity(value) {
44
+ this.$mongo.$identity = value;
45
+ }
46
+ get $identity() {
47
+ return this.$mongo.$identity;
48
+ }
49
+ async search(validator = new abstract_validator_1.SearchValidator()) {
50
+ const filters = { deletedAt: null, ...validator.filters };
51
+ const isUnlimited = validator.limit === -1 || validator.limit === Infinity;
52
+ const page = isUnlimited ? 1 : validator.page || 1;
53
+ const limit = isUnlimited ? 0 : validator.limit || 25;
54
+ const skip = isUnlimited ? 0 : (page - 1) * limit;
55
+ const defaultSort = { createdAt: 'desc' };
56
+ validator.sort = (0, class_validator_1.isNotEmptyObject)(validator.sort) ? validator.sort : defaultSort;
57
+ const baseQuery = this.$builder.find(filters).sort(validator.sort);
58
+ if (validator.join) {
59
+ this.applyPopulate(baseQuery, validator.join);
60
+ }
61
+ if (isUnlimited) {
62
+ const total = await this.$builder.countDocuments(filters).exec();
63
+ const data = await baseQuery.sort(validator.sort);
64
+ return {
65
+ data,
66
+ limit: total,
67
+ pages: 1,
68
+ total,
69
+ };
70
+ }
71
+ const query = baseQuery.skip(skip).limit(limit);
72
+ const [data, total] = await Promise.all([
73
+ query.sort(validator.sort),
74
+ this.$builder.countDocuments(filters).exec(),
75
+ ]);
76
+ return {
77
+ data,
78
+ limit,
79
+ pages: Math.ceil(total / limit),
80
+ total,
81
+ };
82
+ }
83
+ async read(param, validator = {}, options = {}) {
84
+ this.$cache.use(this.$identity);
85
+ if ((0, class_validator_1.isString)(param)) {
86
+ param = { _id: param };
87
+ }
88
+ const id = `${this.$schema.name}:${JSON.stringify(param)}`;
89
+ if ((options.cache === undefined || options.cache === true) && this.$cache.has(id)) {
90
+ const entity = this.$cache.get(id);
91
+ this.$logger.log({
92
+ group: this.$identity,
93
+ message: `Retrieved ${entity._id} from cache ${this.$schema.name}`,
94
+ type: 'repository',
95
+ });
96
+ return entity;
97
+ }
98
+ const query = this.$builder.findOne(param);
99
+ if (validator.join) {
100
+ this.applyPopulate(query, validator.join);
101
+ }
102
+ const entity = await query.exec();
103
+ if (!entity) {
104
+ this.$logger.warn({
105
+ group: this.$identity,
106
+ message: `Not found ${id} in collection ${this.$schema.name}`,
107
+ type: 'repository',
108
+ });
109
+ throw new entity_not_found_exception_1.EntityNotFoundException(param);
110
+ }
111
+ if (entity.deletedAt) {
112
+ this.$logger.warn({
113
+ group: this.$identity,
114
+ message: `Found but deleted ${entity._id} in collection ${this.$schema.name}`,
115
+ type: 'repository',
116
+ });
117
+ throw new common_1.GoneException();
118
+ }
119
+ this.$logger.log({
120
+ group: this.$identity,
121
+ message: `Retrieved ${entity._id} from collection ${this.$schema.name}`,
122
+ type: 'repository',
123
+ });
124
+ return this.$cache.set(id, entity);
125
+ }
126
+ async create(payload, validator = {}, doc) {
127
+ const entity = doc || new this.$builder();
128
+ Object.entries(payload)
129
+ .filter(([key, value]) => value !== undefined && key in entity)
130
+ .forEach(([key, value]) => (entity[key] = value));
131
+ if (validator.join) {
132
+ this.applyPopulate(entity, validator.join);
133
+ }
134
+ return entity.save();
135
+ }
136
+ async update(_id, payload, validator = {}) {
137
+ const entity = await this.read({ _id });
138
+ Object.entries(payload)
139
+ .filter(([key, value]) => key in entity && (0, class_validator_1.isNotEmpty)(value))
140
+ .forEach(([key, value]) => (entity[key] = value));
141
+ if (validator.join) {
142
+ this.applyPopulate(entity, validator.join);
143
+ }
144
+ return entity.save();
145
+ }
146
+ async delete(_id) {
147
+ await this.read({ _id });
148
+ await this.$builder.deleteOne({ _id });
149
+ }
150
+ sanitizePaths(options) {
151
+ return options.map((it) => {
152
+ if ((0, class_validator_1.isString)(it)) {
153
+ return { path: it, populate: [] };
154
+ }
155
+ if ((0, class_validator_1.isArray)(it.populate)) {
156
+ it.populate = this.sanitizePaths(it.populate);
157
+ }
158
+ return it;
159
+ });
160
+ }
161
+ removeNonDeclaredSchemas(options) {
162
+ const flatten = (item, parentPath = '') => {
163
+ const currentPath = parentPath ? `${parentPath}.${item.path}` : item.path;
164
+ if (!(currentPath in this.$joins)) {
165
+ return [];
166
+ }
167
+ const schema = this.$joins[currentPath];
168
+ const result = {
169
+ path: item.path,
170
+ model: schema?.name,
171
+ };
172
+ if (item.populate && Array.isArray(item.populate)) {
173
+ const nestedPopulate = item.populate
174
+ .map((nestedItem) => flatten(nestedItem, currentPath))
175
+ .filter((it) => !Array.isArray(it));
176
+ if (nestedPopulate.length > 0) {
177
+ result.populate = nestedPopulate;
178
+ }
179
+ }
180
+ return result;
181
+ };
182
+ return options.map((it) => flatten(it)).filter((it) => !Array.isArray(it));
183
+ }
184
+ applyPopulate(query, options) {
185
+ if (!options)
186
+ return;
187
+ const sanitizedPaths = this.sanitizePaths(options);
188
+ const validatedPaths = this.removeNonDeclaredSchemas(sanitizedPaths);
189
+ query.populate(validatedPaths);
190
+ }
191
+ };
192
+ exports.AbstractRepository = AbstractRepository;
193
+ exports.AbstractRepository = AbstractRepository = __decorate([
194
+ __param(0, (0, common_1.Inject)(core_1.REQUEST)),
195
+ __param(1, (0, common_1.Inject)()),
196
+ __param(2, (0, common_1.Inject)()),
197
+ __metadata("design:paramtypes", [Object, mongo_service_1.MongoService,
198
+ logger_service_1.LoggerService])
199
+ ], AbstractRepository);
200
+ //# sourceMappingURL=abstract.repository.js.map
@@ -0,0 +1,22 @@
1
+ import { AbstractEntity } from './';
2
+ import type { FilterQuery, PopulateOptions, SortOrder } from 'mongoose';
3
+ export declare abstract class AbstractValidator {
4
+ }
5
+ type JoinPopulateOptions = string | PopulateOptions | Array<string | PopulateOptions>;
6
+ export declare function transformJoinsIntoPopulate(value: JoinPopulateOptions): PopulateOptions[];
7
+ export type KeyOfType<T, V> = keyof {
8
+ [P in keyof T as T[P] extends V ? P : string]: any;
9
+ };
10
+ export declare class ReadValidator<E = AbstractEntity> extends AbstractValidator {
11
+ join?: PopulateOptions[];
12
+ }
13
+ export declare class SearchValidator<E = AbstractEntity> {
14
+ limit?: number;
15
+ page?: number;
16
+ sort?: {
17
+ [key: string]: SortOrder;
18
+ };
19
+ filters?: FilterQuery<E>;
20
+ join?: PopulateOptions[];
21
+ }
22
+ export {};
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SearchValidator = exports.ReadValidator = exports.AbstractValidator = void 0;
13
+ exports.transformJoinsIntoPopulate = transformJoinsIntoPopulate;
14
+ const class_transformer_1 = require("class-transformer");
15
+ const class_validator_1 = require("class-validator");
16
+ class AbstractValidator {
17
+ }
18
+ exports.AbstractValidator = AbstractValidator;
19
+ function transformJoinsIntoPopulate(value) {
20
+ function transform(value) {
21
+ if ((0, class_validator_1.isString)(value)) {
22
+ try {
23
+ const parsed = JSON.parse(value);
24
+ return transform(parsed);
25
+ }
26
+ catch {
27
+ return [{ path: value }];
28
+ }
29
+ }
30
+ if ((0, class_validator_1.isArray)(value)) {
31
+ return value.flatMap(transform);
32
+ }
33
+ if (typeof value === 'object' && value !== null && 'path' in value) {
34
+ const result = { path: value.path };
35
+ if (value.populate) {
36
+ result.populate = transform(value.populate);
37
+ }
38
+ return [result];
39
+ }
40
+ return [];
41
+ }
42
+ return transform(value);
43
+ }
44
+ class ReadValidator extends AbstractValidator {
45
+ join = [];
46
+ }
47
+ exports.ReadValidator = ReadValidator;
48
+ __decorate([
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, class_transformer_1.Transform)(({ value }) => transformJoinsIntoPopulate(value)),
51
+ __metadata("design:type", Array)
52
+ ], ReadValidator.prototype, "join", void 0);
53
+ class SearchValidator {
54
+ limit = 10;
55
+ page = 1;
56
+ sort = {};
57
+ filters = {};
58
+ join = [];
59
+ }
60
+ exports.SearchValidator = SearchValidator;
61
+ __decorate([
62
+ (0, class_transformer_1.Transform)(({ value }) => (value ? Number(value) : 10)),
63
+ (0, class_validator_1.IsInt)(),
64
+ (0, class_validator_1.IsOptional)(),
65
+ __metadata("design:type", Object)
66
+ ], SearchValidator.prototype, "limit", void 0);
67
+ __decorate([
68
+ (0, class_transformer_1.Transform)(({ value }) => (value ? Number(value) : 1)),
69
+ (0, class_validator_1.IsInt)(),
70
+ (0, class_validator_1.IsOptional)(),
71
+ __metadata("design:type", Object)
72
+ ], SearchValidator.prototype, "page", void 0);
73
+ __decorate([
74
+ (0, class_transformer_1.Transform)(({ value }) => {
75
+ if ((0, class_validator_1.isObject)(value)) {
76
+ return value;
77
+ }
78
+ return value && JSON.parse(value);
79
+ }),
80
+ (0, class_validator_1.IsOptional)(),
81
+ __metadata("design:type", Object)
82
+ ], SearchValidator.prototype, "sort", void 0);
83
+ __decorate([
84
+ (0, class_transformer_1.Transform)(({ value }) => {
85
+ if ((0, class_validator_1.isObject)(value)) {
86
+ return value;
87
+ }
88
+ return value && JSON.parse(value);
89
+ }),
90
+ (0, class_validator_1.IsOptional)(),
91
+ __metadata("design:type", Object)
92
+ ], SearchValidator.prototype, "filters", void 0);
93
+ __decorate([
94
+ (0, class_validator_1.IsOptional)(),
95
+ (0, class_transformer_1.Transform)(({ value }) => transformJoinsIntoPopulate(value)),
96
+ __metadata("design:type", Array)
97
+ ], SearchValidator.prototype, "join", void 0);
98
+ //# sourceMappingURL=abstract.validator.js.map
@@ -0,0 +1,7 @@
1
+ import { AccountUserEntity } from '../user';
2
+ import { AddressEntity } from '../..';
3
+ import type { MongoEntity } from '../..';
4
+ export declare class AccountAddressEntity extends AddressEntity {
5
+ user: MongoEntity<AccountUserEntity>;
6
+ name: string;
7
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AccountAddressEntity = void 0;
13
+ const mongoose_1 = require("@nestjs/mongoose");
14
+ const mongoose_2 = require("mongoose");
15
+ const user_schema_1 = require("../schemas/user.schema");
16
+ const abstract_entity_1 = require("../../../infrastructure/abstracts/abstract.entity");
17
+ const address_entity_1 = require("../../../infrastructure/entities/address.entity");
18
+ let AccountAddressEntity = class AccountAddressEntity extends address_entity_1.AddressEntity {
19
+ user;
20
+ name;
21
+ };
22
+ exports.AccountAddressEntity = AccountAddressEntity;
23
+ __decorate([
24
+ (0, mongoose_1.Prop)({ ref: user_schema_1.AccountUserSchema.name, required: true, type: mongoose_2.Schema.Types.String }),
25
+ __metadata("design:type", Object)
26
+ ], AccountAddressEntity.prototype, "user", void 0);
27
+ __decorate([
28
+ (0, mongoose_1.Prop)({ required: true, trim: true }),
29
+ __metadata("design:type", String)
30
+ ], AccountAddressEntity.prototype, "name", void 0);
31
+ exports.AccountAddressEntity = AccountAddressEntity = __decorate([
32
+ (0, mongoose_1.Schema)(abstract_entity_1.$collection)
33
+ ], AccountAddressEntity);
34
+ //# sourceMappingURL=address.entity.js.map
@@ -0,0 +1,17 @@
1
+ import { AccountAddressEntity } from './';
2
+ import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
3
+ export declare class SearchAddressValidator extends SearchValidator<AccountAddressEntity> {
4
+ }
5
+ export declare class ReadAddressValidator extends ReadValidator<AccountAddressEntity> {
6
+ }
7
+ export declare class CreateAddressValidator extends AbstractValidator {
8
+ street: string;
9
+ name: string;
10
+ complement: string;
11
+ country: string;
12
+ code: string;
13
+ longitude: number;
14
+ latitude: number;
15
+ }
16
+ export declare class UpdateAddressValidator extends CreateAddressValidator {
17
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateAddressValidator = exports.CreateAddressValidator = exports.ReadAddressValidator = exports.SearchAddressValidator = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const abstract_validator_1 = require("../../../infrastructure/abstracts/abstract.validator");
15
+ class SearchAddressValidator extends abstract_validator_1.SearchValidator {
16
+ }
17
+ exports.SearchAddressValidator = SearchAddressValidator;
18
+ class ReadAddressValidator extends abstract_validator_1.ReadValidator {
19
+ }
20
+ exports.ReadAddressValidator = ReadAddressValidator;
21
+ class CreateAddressValidator extends abstract_validator_1.AbstractValidator {
22
+ street;
23
+ name;
24
+ complement;
25
+ country;
26
+ code;
27
+ longitude;
28
+ latitude;
29
+ }
30
+ exports.CreateAddressValidator = CreateAddressValidator;
31
+ __decorate([
32
+ (0, class_validator_1.IsString)(),
33
+ (0, class_validator_1.IsNotEmpty)(),
34
+ __metadata("design:type", String)
35
+ ], CreateAddressValidator.prototype, "street", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsString)(),
38
+ (0, class_validator_1.IsNotEmpty)(),
39
+ __metadata("design:type", String)
40
+ ], CreateAddressValidator.prototype, "name", void 0);
41
+ __decorate([
42
+ (0, class_validator_1.IsString)(),
43
+ (0, class_validator_1.IsOptional)(),
44
+ __metadata("design:type", String)
45
+ ], CreateAddressValidator.prototype, "complement", void 0);
46
+ __decorate([
47
+ (0, class_validator_1.IsString)(),
48
+ (0, class_validator_1.Length)(2, 2),
49
+ __metadata("design:type", String)
50
+ ], CreateAddressValidator.prototype, "country", void 0);
51
+ __decorate([
52
+ (0, class_validator_1.IsString)(),
53
+ (0, class_validator_1.IsOptional)(),
54
+ __metadata("design:type", String)
55
+ ], CreateAddressValidator.prototype, "code", void 0);
56
+ __decorate([
57
+ (0, class_validator_1.IsLongitude)(),
58
+ __metadata("design:type", Number)
59
+ ], CreateAddressValidator.prototype, "longitude", void 0);
60
+ __decorate([
61
+ (0, class_validator_1.IsLatitude)(),
62
+ __metadata("design:type", Number)
63
+ ], CreateAddressValidator.prototype, "latitude", void 0);
64
+ class UpdateAddressValidator extends CreateAddressValidator {
65
+ }
66
+ exports.UpdateAddressValidator = UpdateAddressValidator;
67
+ //# sourceMappingURL=address.validator.js.map
@@ -0,0 +1,2 @@
1
+ export * from './address.entity';
2
+ export * from './address.validator';
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var address_entity_1 = require("./address.entity");
4
+ Object.keys(address_entity_1).forEach(function (key) {
5
+ if (key === "default" || key === "__esModule") return;
6
+ Object.defineProperty(exports, key, { enumerable: true, get: function () { return address_entity_1[key]; } });
7
+ });
8
+ var address_validator_1 = require("./address.validator");
9
+ Object.keys(address_validator_1).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ Object.defineProperty(exports, key, { enumerable: true, get: function () { return address_validator_1[key]; } });
12
+ });
@@ -0,0 +1,8 @@
1
+ import { AccountUserEntity } from '../user';
2
+ import { SaleItemEntity } from '../../order/sale/item';
3
+ import { AbstractEntity } from '../..';
4
+ import type { MongoEntity } from '../..';
5
+ export declare class AccountCartEntity extends AbstractEntity {
6
+ user: MongoEntity<AccountUserEntity>;
7
+ items: SaleItemEntity[];
8
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AccountCartEntity = void 0;
13
+ const mongoose_1 = require("@nestjs/mongoose");
14
+ const mongoose_2 = require("mongoose");
15
+ const user_schema_1 = require("../schemas/user.schema");
16
+ const item_schema_1 = require("../../order/sale/schemas/item.schema");
17
+ const abstract_entity_1 = require("../../../infrastructure/abstracts/abstract.entity");
18
+ let AccountCartEntity = class AccountCartEntity extends abstract_entity_1.AbstractEntity {
19
+ user;
20
+ items = [];
21
+ };
22
+ exports.AccountCartEntity = AccountCartEntity;
23
+ __decorate([
24
+ (0, mongoose_1.Prop)({ ref: user_schema_1.AccountUserSchema.name, required: true, type: mongoose_2.Schema.Types.String }),
25
+ __metadata("design:type", Object)
26
+ ], AccountCartEntity.prototype, "user", void 0);
27
+ __decorate([
28
+ (0, mongoose_1.Prop)({ default: () => [], type: [item_schema_1.SaleItemSchema.schema] }),
29
+ __metadata("design:type", Array)
30
+ ], AccountCartEntity.prototype, "items", void 0);
31
+ exports.AccountCartEntity = AccountCartEntity = __decorate([
32
+ (0, mongoose_1.Schema)(abstract_entity_1.$collection)
33
+ ], AccountCartEntity);
34
+ //# sourceMappingURL=cart.entity.js.map
@@ -0,0 +1,13 @@
1
+ import { AccountCartEntity } from './';
2
+ import { AbstractValidator, ReadValidator, SearchValidator } from '../..';
3
+ export declare class SearchCartValidator extends SearchValidator<AccountCartEntity> {
4
+ }
5
+ export declare class ReadCartValidator extends ReadValidator<AccountCartEntity> {
6
+ }
7
+ export declare class CreateCartValidator extends AbstractValidator {
8
+ userId: string;
9
+ productId: string;
10
+ quantity: number;
11
+ }
12
+ export declare class UpdateCartValidator extends CreateCartValidator {
13
+ }