medusa-plugin-complaints 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/.medusa/server/medusa-config.d.ts +1 -0
  2. package/.medusa/server/medusa-config.js +23 -0
  3. package/.medusa/server/src/admin/index.js +8633 -0
  4. package/.medusa/server/src/admin/index.mjs +8631 -0
  5. package/.medusa/server/src/api/admin/complaint-stats/products/[id]/route.d.ts +3 -0
  6. package/.medusa/server/src/api/admin/complaint-stats/products/[id]/route.js +21 -0
  7. package/.medusa/server/src/api/admin/complaint-stats/recalculate/route.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/complaint-stats/recalculate/route.js +40 -0
  9. package/.medusa/server/src/api/admin/complaint-stats/route.d.ts +1 -0
  10. package/.medusa/server/src/api/admin/complaint-stats/route.js +16 -0
  11. package/.medusa/server/src/api/admin/complaint-tags/[id]/route.d.ts +5 -0
  12. package/.medusa/server/src/api/admin/complaint-tags/[id]/route.js +34 -0
  13. package/.medusa/server/src/api/admin/complaint-tags/route.d.ts +5 -0
  14. package/.medusa/server/src/api/admin/complaint-tags/route.js +37 -0
  15. package/.medusa/server/src/api/admin/complaints/[id]/activities/[entryId]/route.d.ts +5 -0
  16. package/.medusa/server/src/api/admin/complaints/[id]/activities/[entryId]/route.js +35 -0
  17. package/.medusa/server/src/api/admin/complaints/[id]/activities/route.d.ts +5 -0
  18. package/.medusa/server/src/api/admin/complaints/[id]/activities/route.js +43 -0
  19. package/.medusa/server/src/api/admin/complaints/[id]/notes/[noteId]/route.d.ts +4 -0
  20. package/.medusa/server/src/api/admin/complaints/[id]/notes/[noteId]/route.js +20 -0
  21. package/.medusa/server/src/api/admin/complaints/[id]/notes/route.d.ts +3 -0
  22. package/.medusa/server/src/api/admin/complaints/[id]/notes/route.js +12 -0
  23. package/.medusa/server/src/api/admin/complaints/[id]/route.d.ts +5 -0
  24. package/.medusa/server/src/api/admin/complaints/[id]/route.js +43 -0
  25. package/.medusa/server/src/api/admin/complaints/route.d.ts +5 -0
  26. package/.medusa/server/src/api/admin/complaints/route.js +48 -0
  27. package/.medusa/server/src/api/middlewares.d.ts +2 -0
  28. package/.medusa/server/src/api/middlewares.js +150 -0
  29. package/.medusa/server/src/api/validators.d.ts +547 -0
  30. package/.medusa/server/src/api/validators.js +215 -0
  31. package/.medusa/server/src/jobs/update-complaint-stats.d.ts +6 -0
  32. package/.medusa/server/src/jobs/update-complaint-stats.js +50 -0
  33. package/.medusa/server/src/links/complaint-activity-user.d.ts +2 -0
  34. package/.medusa/server/src/links/complaint-activity-user.js +15 -0
  35. package/.medusa/server/src/links/complaint-customer.d.ts +2 -0
  36. package/.medusa/server/src/links/complaint-customer.js +15 -0
  37. package/.medusa/server/src/links/complaint-order.d.ts +2 -0
  38. package/.medusa/server/src/links/complaint-order.js +15 -0
  39. package/.medusa/server/src/links/complaint-product.d.ts +2 -0
  40. package/.medusa/server/src/links/complaint-product.js +15 -0
  41. package/.medusa/server/src/links/customer-complaint.d.ts +2 -0
  42. package/.medusa/server/src/links/customer-complaint.js +18 -0
  43. package/.medusa/server/src/links/order-complaint.d.ts +2 -0
  44. package/.medusa/server/src/links/order-complaint.js +18 -0
  45. package/.medusa/server/src/links/product-complaint.d.ts +2 -0
  46. package/.medusa/server/src/links/product-complaint.js +18 -0
  47. package/.medusa/server/src/links/user-complaint-activity.d.ts +2 -0
  48. package/.medusa/server/src/links/user-complaint-activity.js +18 -0
  49. package/.medusa/server/src/modules/complaint/index.d.ts +64 -0
  50. package/.medusa/server/src/modules/complaint/index.js +25 -0
  51. package/.medusa/server/src/modules/complaint/migrations/Migration20260409171742.d.ts +5 -0
  52. package/.medusa/server/src/modules/complaint/migrations/Migration20260409171742.js +36 -0
  53. package/.medusa/server/src/modules/complaint/models/complaint-activity.d.ts +30 -0
  54. package/.medusa/server/src/modules/complaint/models/complaint-activity.js +22 -0
  55. package/.medusa/server/src/modules/complaint/models/complaint-product-stat.d.ts +9 -0
  56. package/.medusa/server/src/modules/complaint/models/complaint-product-stat.js +15 -0
  57. package/.medusa/server/src/modules/complaint/models/complaint-stat.d.ts +1 -0
  58. package/.medusa/server/src/modules/complaint/models/complaint-stat.js +8 -0
  59. package/.medusa/server/src/modules/complaint/models/complaint-tag.d.ts +25 -0
  60. package/.medusa/server/src/modules/complaint/models/complaint-tag.js +11 -0
  61. package/.medusa/server/src/modules/complaint/models/complaint.d.ts +29 -0
  62. package/.medusa/server/src/modules/complaint/models/complaint.js +32 -0
  63. package/.medusa/server/src/modules/complaint/service.d.ts +236 -0
  64. package/.medusa/server/src/modules/complaint/service.js +87 -0
  65. package/LICENSE +21 -0
  66. package/README.md +69 -0
  67. package/package.json +89 -0
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminGetComplaintCustomerTagStats = exports.AdminGetComplaintStockLocationStats = exports.AdminGetComplaintStockLotStats = exports.AdminGetComplaintTagStats = exports.AdminGetComplaintProductStat = exports.AdminGetComplaintProductStats = exports.AdminGetComplaintStat = exports.AdminUpdateComplaintActivity = exports.AdminDeleteComplaintActivities = exports.AdminUpdateComplaintNote = exports.AdminCreateComplaintNote = exports.AdminCreateComplaintActivity = exports.AdminGetComplaintActivities = exports.AdminGetComplaintActivity = exports.AdminAddComplaintTag = exports.AdminUpdateComplaintTag = exports.AdminDeleteComplaintTags = exports.AdminCreateComplaintTag = exports.AdminGetComplaintTags = exports.AdminGetComplaintTag = exports.AdminUpdateComplaint = exports.AdminDeleteComplaints = exports.AdminCreateComplaint = exports.AdminGetComplaint = exports.AdminGetComplaints = void 0;
4
+ const zod_1 = require("@medusajs/framework/zod");
5
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
6
+ const complaint_1 = require("../modules/complaint/models/complaint");
7
+ const complaint_activity_1 = require("../modules/complaint/models/complaint-activity");
8
+ // ── Complaints ────────────────────────────────────────────────────────────────
9
+ exports.AdminGetComplaints = (0, validators_1.createFindParams)({
10
+ limit: 15,
11
+ offset: 0
12
+ }).extend({
13
+ customer_id: zod_1.z.string().optional(),
14
+ order_id: zod_1.z.string().optional(),
15
+ product_id: zod_1.z.string().optional(),
16
+ stock_lot_id: zod_1.z.string().optional(),
17
+ serial_number_id: zod_1.z.string().optional(),
18
+ status: zod_1.z
19
+ .preprocess(val => {
20
+ if (val === 'open')
21
+ return complaint_1.ComplaintStatus.OPEN;
22
+ if (val === 'closed')
23
+ return complaint_1.ComplaintStatus.CLOSED;
24
+ return val;
25
+ }, zod_1.z.nativeEnum(complaint_1.ComplaintStatus))
26
+ .optional(),
27
+ q: zod_1.z.string().optional()
28
+ });
29
+ exports.AdminGetComplaint = (0, validators_1.createFindParams)();
30
+ exports.AdminCreateComplaint = zod_1.z
31
+ .object({
32
+ description: zod_1.z.string(),
33
+ customer_id: zod_1.z.string(),
34
+ order_id: zod_1.z.string(),
35
+ product_id: zod_1.z.string(),
36
+ stock_lot_id: zod_1.z.string().optional(),
37
+ serial_number_id: zod_1.z.string().optional(),
38
+ tag_ids: zod_1.z.array(zod_1.z.string()).optional(),
39
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
40
+ metadata: zod_1.z.record(zod_1.z.unknown()).nullable().optional()
41
+ })
42
+ .superRefine((val, ctx) => {
43
+ if (val.tag_ids && val.tags) {
44
+ // If both tag_ids and tags are provided, combine them and remove duplicates
45
+ const combinedTags = Array.from(new Set([...val.tag_ids, ...(val.tags || [])]));
46
+ val.tag_ids = combinedTags;
47
+ delete val.tags;
48
+ }
49
+ else if (val.tag_ids && !val.tags) {
50
+ val.tags = val.tag_ids;
51
+ delete val.tag_ids;
52
+ }
53
+ });
54
+ exports.AdminDeleteComplaints = zod_1.z.object({
55
+ ids: zod_1.z.array(zod_1.z.string()).min(1, 'At least one ID is required')
56
+ });
57
+ exports.AdminUpdateComplaint = zod_1.z
58
+ .object({
59
+ number: zod_1.z.number().optional(),
60
+ status: zod_1.z
61
+ .preprocess(val => {
62
+ if (val === 'open')
63
+ return complaint_1.ComplaintStatus.OPEN;
64
+ if (val === 'closed')
65
+ return complaint_1.ComplaintStatus.CLOSED;
66
+ return val;
67
+ }, zod_1.z.nativeEnum(complaint_1.ComplaintStatus))
68
+ .optional(),
69
+ description: zod_1.z.string().optional(),
70
+ customer_id: zod_1.z.string().optional(),
71
+ order_id: zod_1.z.string().optional(),
72
+ product_id: zod_1.z.string().optional(),
73
+ stock_lot_id: zod_1.z.string().optional(),
74
+ serial_number_id: zod_1.z.string().optional(),
75
+ tag_ids: zod_1.z.array(zod_1.z.string()).optional(),
76
+ tags: zod_1.z.array(zod_1.z.string()).optional(),
77
+ metadata: zod_1.z.record(zod_1.z.unknown()).nullable().optional()
78
+ })
79
+ .superRefine((val, ctx) => {
80
+ if (val.tag_ids && val.tags) {
81
+ // If both tag_ids and tags are provided, combine them and remove duplicates
82
+ const combinedTags = Array.from(new Set([...val.tag_ids, ...(val.tags || [])]));
83
+ val.tag_ids = combinedTags;
84
+ delete val.tags;
85
+ }
86
+ else if (val.tag_ids && !val.tags) {
87
+ val.tags = val.tag_ids;
88
+ delete val.tag_ids;
89
+ }
90
+ });
91
+ // ── Complaint Tags ────────────────────────────────────────────────────────────
92
+ exports.AdminGetComplaintTag = (0, validators_1.createFindParams)();
93
+ exports.AdminGetComplaintTags = (0, validators_1.createFindParams)({
94
+ limit: 15,
95
+ offset: 0
96
+ }).extend({
97
+ q: zod_1.z.string().optional()
98
+ });
99
+ exports.AdminCreateComplaintTag = zod_1.z.object({
100
+ value: zod_1.z.string(),
101
+ metadata: zod_1.z.record(zod_1.z.unknown()).nullable().optional()
102
+ });
103
+ exports.AdminDeleteComplaintTags = zod_1.z.object({
104
+ ids: zod_1.z.array(zod_1.z.string()).min(1, 'At least one ID is required')
105
+ });
106
+ exports.AdminUpdateComplaintTag = zod_1.z.object({
107
+ value: zod_1.z.string().optional(),
108
+ metadata: zod_1.z.record(zod_1.z.unknown()).nullable().optional()
109
+ });
110
+ exports.AdminAddComplaintTag = zod_1.z
111
+ .object({
112
+ tag_id: zod_1.z.string().optional(),
113
+ tag: zod_1.z.string().optional()
114
+ })
115
+ .superRefine((val, ctx) => {
116
+ if (val.tag && val.tag_id) {
117
+ ctx.addIssue({
118
+ path: ['tag', 'tag_id'],
119
+ code: zod_1.z.ZodIssueCode.custom,
120
+ message: 'Only one of tag or tag_id can be provided'
121
+ });
122
+ }
123
+ else if (!val.tag && !val.tag_id) {
124
+ ctx.addIssue({
125
+ path: ['tag', 'tag_id'],
126
+ code: zod_1.z.ZodIssueCode.custom,
127
+ message: 'Either tag or tag_id must be provided'
128
+ });
129
+ }
130
+ else if (val.tag_id && !val.tag) {
131
+ val.tag = val.tag_id;
132
+ delete val.tag_id;
133
+ }
134
+ });
135
+ // ── Complaint Activity ────────────────────────────────────────────────────────
136
+ exports.AdminGetComplaintActivity = (0, validators_1.createFindParams)();
137
+ exports.AdminGetComplaintActivities = (0, validators_1.createFindParams)({
138
+ limit: 15,
139
+ offset: 0
140
+ }).extend({
141
+ q: zod_1.z.string().optional()
142
+ });
143
+ exports.AdminCreateComplaintActivity = zod_1.z.object({
144
+ type: zod_1.z
145
+ .preprocess(val => {
146
+ if (val === 'open')
147
+ return complaint_activity_1.ComplaintActivityType.OPEN;
148
+ if (val === 'close')
149
+ return complaint_activity_1.ComplaintActivityType.CLOSE;
150
+ if (val === 'note')
151
+ return complaint_activity_1.ComplaintActivityType.NOTE;
152
+ return val;
153
+ }, zod_1.z.nativeEnum(complaint_activity_1.ComplaintActivityType))
154
+ .default(complaint_activity_1.ComplaintActivityType.NOTE),
155
+ note: zod_1.z.string().optional(),
156
+ metadata: zod_1.z.record(zod_1.z.unknown()).optional()
157
+ });
158
+ exports.AdminCreateComplaintNote = zod_1.z.object({
159
+ note: zod_1.z.string()
160
+ });
161
+ exports.AdminUpdateComplaintNote = zod_1.z.object({
162
+ note: zod_1.z.string()
163
+ });
164
+ exports.AdminDeleteComplaintActivities = zod_1.z.object({
165
+ ids: zod_1.z.array(zod_1.z.string()).min(1, 'At least one ID is required')
166
+ });
167
+ exports.AdminUpdateComplaintActivity = zod_1.z.object({
168
+ type: zod_1.z
169
+ .preprocess(val => {
170
+ if (val === 'open')
171
+ return complaint_activity_1.ComplaintActivityType.OPEN;
172
+ if (val === 'close')
173
+ return complaint_activity_1.ComplaintActivityType.CLOSE;
174
+ if (val === 'note')
175
+ return complaint_activity_1.ComplaintActivityType.NOTE;
176
+ return val;
177
+ }, zod_1.z.nativeEnum(complaint_activity_1.ComplaintActivityType))
178
+ .optional(),
179
+ note: zod_1.z.string().optional(),
180
+ metadata: zod_1.z.record(zod_1.z.unknown()).optional()
181
+ });
182
+ // ── Complaint Stats ───────────────────────────────────────────────────────────
183
+ exports.AdminGetComplaintStat = (0, validators_1.createFindParams)();
184
+ exports.AdminGetComplaintProductStats = (0, validators_1.createFindParams)({
185
+ limit: 15,
186
+ offset: 0
187
+ }).extend({
188
+ product_id: zod_1.z.string().optional()
189
+ });
190
+ exports.AdminGetComplaintProductStat = (0, validators_1.createFindParams)();
191
+ exports.AdminGetComplaintTagStats = (0, validators_1.createFindParams)({
192
+ limit: 15,
193
+ offset: 0
194
+ }).extend({
195
+ tag_id: zod_1.z.string().optional()
196
+ });
197
+ exports.AdminGetComplaintStockLotStats = (0, validators_1.createFindParams)({
198
+ limit: 15,
199
+ offset: 0
200
+ }).extend({
201
+ stock_lot_id: zod_1.z.string().optional()
202
+ });
203
+ exports.AdminGetComplaintStockLocationStats = (0, validators_1.createFindParams)({
204
+ limit: 15,
205
+ offset: 0
206
+ }).extend({
207
+ stock_location_id: zod_1.z.string().optional()
208
+ });
209
+ exports.AdminGetComplaintCustomerTagStats = (0, validators_1.createFindParams)({
210
+ limit: 15,
211
+ offset: 0
212
+ }).extend({
213
+ customer_tag_id: zod_1.z.string().optional()
214
+ });
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBMkM7QUFDM0Msc0VBQXdFO0FBQ3hFLHFFQUF1RTtBQUN2RSx1RkFBc0Y7QUFFdEYsaUZBQWlGO0FBRXBFLFFBQUEsa0JBQWtCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNsRCxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxDQUFDO0NBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNULFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLFlBQVksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ25DLGdCQUFnQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsTUFBTSxFQUFFLE9BQUM7U0FDUCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakIsSUFBSSxHQUFHLEtBQUssTUFBTTtZQUFFLE9BQU8sMkJBQWUsQ0FBQyxJQUFJLENBQUE7UUFDL0MsSUFBSSxHQUFHLEtBQUssUUFBUTtZQUFFLE9BQU8sMkJBQWUsQ0FBQyxNQUFNLENBQUE7UUFDbkQsT0FBTyxHQUFHLENBQUE7SUFDWCxDQUFDLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FBQywyQkFBZSxDQUFDLENBQUM7U0FDaEMsUUFBUSxFQUFFO0lBQ1osQ0FBQyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDeEIsQ0FBQyxDQUFBO0FBR1csUUFBQSxpQkFBaUIsR0FBRyxJQUFBLDZC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
@@ -0,0 +1,6 @@
1
+ import { MedusaContainer } from '@medusajs/framework/types';
2
+ export default function updateComplaintStatsJob(container: MedusaContainer): Promise<void>;
3
+ export declare const config: {
4
+ name: string;
5
+ schedule: string;
6
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.config = void 0;
4
+ exports.default = updateComplaintStatsJob;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const complaint_1 = require("../modules/complaint");
7
+ async function updateComplaintStatsJob(container) {
8
+ const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
9
+ const complaintService = container.resolve(complaint_1.COMPLAINT_MODULE);
10
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ try {
12
+ const limit = 100;
13
+ let offset = 0;
14
+ let totalCount = 0;
15
+ const orderCountsByProduct = {};
16
+ do {
17
+ const { data: orders, metadata } = await query.graph({
18
+ entity: 'order',
19
+ fields: ['id', 'items.*'],
20
+ pagination: {
21
+ take: limit,
22
+ skip: offset
23
+ }
24
+ });
25
+ totalCount = metadata?.count || 0;
26
+ offset += limit;
27
+ for (const order of orders) {
28
+ const productsInThisOrder = new Set();
29
+ for (const item of order.items || []) {
30
+ if (!item?.product_id)
31
+ continue;
32
+ productsInThisOrder.add(item.product_id);
33
+ }
34
+ for (const productId of productsInThisOrder) {
35
+ orderCountsByProduct[productId] = (orderCountsByProduct[productId] || 0) + 1;
36
+ }
37
+ }
38
+ } while (offset < totalCount);
39
+ await complaintService.calculateComplaintRates(orderCountsByProduct);
40
+ logger.info('Complaint product statistics updated.');
41
+ }
42
+ catch (error) {
43
+ logger.error(`Failed to update complaint stats: ${error.message}`);
44
+ }
45
+ }
46
+ exports.config = {
47
+ name: 'daily-complaint-stats',
48
+ schedule: '0 0 * * *'
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNvbXBsYWludC1zdGF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9qb2JzL3VwZGF0ZS1jb21wbGFpbnQtc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsMENBNENDO0FBaERELHFEQUFxRTtBQUNyRSxvREFBdUQ7QUFHeEMsS0FBSyxVQUFVLHVCQUF1QixDQUFDLFNBQTBCO0lBQy9FLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEUsTUFBTSxnQkFBZ0IsR0FBcUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsSUFBSSxDQUFDO1FBQ0osTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFBO1FBQ2pCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUNkLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQTtRQUNsQixNQUFNLG9CQUFvQixHQUEyQixFQUFFLENBQUE7UUFFdkQsR0FBRyxDQUFDO1lBQ0gsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNwRCxNQUFNLEVBQUUsT0FBTztnQkFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO2dCQUN6QixVQUFVLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsSUFBSSxFQUFFLE1BQU07aUJBQ1o7YUFDRCxDQUFDLENBQUE7WUFFRixVQUFVLEdBQUcsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUE7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQTtZQUVmLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtnQkFFN0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO29CQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVU7d0JBQUUsU0FBUTtvQkFDL0IsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtnQkFDekMsQ0FBQztnQkFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLG1CQUFtQixFQUFFLENBQUM7b0JBQzdDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUM3RSxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUMsUUFBUSxNQUFNLEdBQUcsVUFBVSxFQUFDO1FBRTdCLE1BQU0sZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUVwRSxNQUFNLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDbkUsQ0FBQztBQUNGLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBRztJQUNyQixJQUFJLEVBQUUsdUJBQXVCO0lBQzdCLFFBQVEsRUFBRSxXQUFXO0NBQ3JCLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const user_1 = __importDefault(require("@medusajs/medusa/user"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: complaint_1.default.linkable.complaintActivity,
11
+ field: 'user_id'
12
+ }, user_1.default.linkable.user, {
13
+ readOnly: true
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxhaW50LWFjdGl2aXR5LXVzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvY29tcGxhaW50LWFjdGl2aXR5LXVzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBc0Q7QUFDdEQsaUVBQThDO0FBQzlDLHFFQUFrRDtBQUVsRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3hCO0lBQ0MsUUFBUSxFQUFFLG1CQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtJQUNwRCxLQUFLLEVBQUUsU0FBUztDQUNoQixFQUNELGNBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUN4QjtJQUNDLFFBQVEsRUFBRSxJQUFJO0NBQ2QsQ0FDRCxDQUFBIn0=
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const customer_1 = __importDefault(require("@medusajs/medusa/customer"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: complaint_1.default.linkable.complaint,
11
+ field: 'customer_id'
12
+ }, customer_1.default.linkable.customer, {
13
+ readOnly: true
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxhaW50LWN1c3RvbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL2NvbXBsYWludC1jdXN0b21lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCx5RUFBc0Q7QUFDdEQscUVBQWtEO0FBRWxELGtCQUFlLElBQUEsa0JBQVUsRUFDeEI7SUFDQyxRQUFRLEVBQUUsbUJBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUztJQUM1QyxLQUFLLEVBQUUsYUFBYTtDQUNwQixFQUNELGtCQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFDaEM7SUFDQyxRQUFRLEVBQUUsSUFBSTtDQUNkLENBQ0QsQ0FBQSJ9
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const order_1 = __importDefault(require("@medusajs/medusa/order"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: complaint_1.default.linkable.complaint,
11
+ field: 'order_id'
12
+ }, order_1.default.linkable.order, {
13
+ readOnly: true
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxhaW50LW9yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL2NvbXBsYWludC1vcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCxtRUFBZ0Q7QUFDaEQscUVBQWtEO0FBRWxELGtCQUFlLElBQUEsa0JBQVUsRUFDeEI7SUFDQyxRQUFRLEVBQUUsbUJBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUztJQUM1QyxLQUFLLEVBQUUsVUFBVTtDQUNqQixFQUNELGVBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUMxQjtJQUNDLFFBQVEsRUFBRSxJQUFJO0NBQ2QsQ0FDRCxDQUFBIn0=
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: complaint_1.default.linkable.complaint,
11
+ field: 'product_id'
12
+ }, product_1.default.linkable.product, {
13
+ readOnly: true
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxhaW50LXByb2R1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvY29tcGxhaW50LXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBc0Q7QUFDdEQsdUVBQW9EO0FBQ3BELHFFQUFrRDtBQUVsRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3hCO0lBQ0MsUUFBUSxFQUFFLG1CQUFlLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDNUMsS0FBSyxFQUFFLFlBQVk7Q0FDbkIsRUFDRCxpQkFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQzlCO0lBQ0MsUUFBUSxFQUFFLElBQUk7Q0FDZCxDQUNELENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const customer_1 = __importDefault(require("@medusajs/medusa/customer"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: customer_1.default.linkable.customer,
11
+ field: 'id'
12
+ }, {
13
+ ...complaint_1.default.linkable.complaint.id,
14
+ primaryKey: 'customer_id'
15
+ }, {
16
+ readOnly: true
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItY29tcGxhaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL2N1c3RvbWVyLWNvbXBsYWludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCx5RUFBc0Q7QUFDdEQscUVBQWtEO0FBRWxELGtCQUFlLElBQUEsa0JBQVUsRUFDeEI7SUFDQyxRQUFRLEVBQUUsa0JBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUTtJQUMxQyxLQUFLLEVBQUUsSUFBSTtDQUNYLEVBQ0Q7SUFDQyxHQUFHLG1CQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO0lBQ3hDLFVBQVUsRUFBRSxhQUFhO0NBQ3pCLEVBQ0Q7SUFDQyxRQUFRLEVBQUUsSUFBSTtDQUNkLENBQ0QsQ0FBQSJ9
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const order_1 = __importDefault(require("@medusajs/medusa/order"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: order_1.default.linkable.order,
11
+ field: 'id'
12
+ }, {
13
+ ...complaint_1.default.linkable.complaint.id,
14
+ primaryKey: 'order_id'
15
+ }, {
16
+ readOnly: true
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY29tcGxhaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL29yZGVyLWNvbXBsYWludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCxtRUFBZ0Q7QUFDaEQscUVBQWtEO0FBRWxELGtCQUFlLElBQUEsa0JBQVUsRUFDeEI7SUFDQyxRQUFRLEVBQUUsZUFBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLO0lBQ3BDLEtBQUssRUFBRSxJQUFJO0NBQ1gsRUFDRDtJQUNDLEdBQUcsbUJBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7SUFDeEMsVUFBVSxFQUFFLFVBQVU7Q0FDdEIsRUFDRDtJQUNDLFFBQVEsRUFBRSxJQUFJO0NBQ2QsQ0FDRCxDQUFBIn0=
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: product_1.default.linkable.product,
11
+ field: 'id'
12
+ }, {
13
+ ...complaint_1.default.linkable.complaint.id,
14
+ primaryKey: 'product_id'
15
+ }, {
16
+ readOnly: true
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb21wbGFpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvcHJvZHVjdC1jb21wbGFpbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBc0Q7QUFDdEQsdUVBQW9EO0FBQ3BELHFFQUFrRDtBQUVsRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3hCO0lBQ0MsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLElBQUk7Q0FDWCxFQUNEO0lBQ0MsR0FBRyxtQkFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtJQUN4QyxVQUFVLEVBQUUsWUFBWTtDQUN4QixFQUNEO0lBQ0MsUUFBUSxFQUFFLElBQUk7Q0FDZCxDQUNELENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/utils").DefineLinkExport;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const user_1 = __importDefault(require("@medusajs/medusa/user"));
8
+ const complaint_1 = __importDefault(require("../modules/complaint"));
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: user_1.default.linkable.user,
11
+ field: 'id'
12
+ }, {
13
+ ...complaint_1.default.linkable.complaintActivity.id,
14
+ primaryKey: 'user_id'
15
+ }, {
16
+ readOnly: true
17
+ });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jb21wbGFpbnQtYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3MvdXNlci1jb21wbGFpbnQtYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBc0Q7QUFDdEQsaUVBQThDO0FBQzlDLHFFQUFrRDtBQUVsRCxrQkFBZSxJQUFBLGtCQUFVLEVBQ3hCO0lBQ0MsUUFBUSxFQUFFLGNBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSTtJQUNsQyxLQUFLLEVBQUUsSUFBSTtDQUNYLEVBQ0Q7SUFDQyxHQUFHLG1CQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7SUFDaEQsVUFBVSxFQUFFLFNBQVM7Q0FDckIsRUFDRDtJQUNDLFFBQVEsRUFBRSxJQUFJO0NBQ2QsQ0FDRCxDQUFBIn0=
@@ -0,0 +1,64 @@
1
+ import { ComplaintService } from './service';
2
+ export declare const COMPLAINT_MODULE = "complaint";
3
+ declare const _default: import("@medusajs/types").ModuleExports<typeof ComplaintService> & {
4
+ linkable: {
5
+ readonly complaint: {
6
+ id: {
7
+ serviceName: "complaint";
8
+ field: "complaint";
9
+ linkable: "complaint_id";
10
+ primaryKey: "id";
11
+ };
12
+ toJSON: () => {
13
+ serviceName: "complaint";
14
+ field: "complaint";
15
+ linkable: "complaint_id";
16
+ primaryKey: "id";
17
+ };
18
+ };
19
+ readonly complaintTag: {
20
+ id: {
21
+ serviceName: "complaint";
22
+ field: "complaintTag";
23
+ linkable: "complaint_tag_id";
24
+ primaryKey: "id";
25
+ };
26
+ toJSON: () => {
27
+ serviceName: "complaint";
28
+ field: "complaintTag";
29
+ linkable: "complaint_tag_id";
30
+ primaryKey: "id";
31
+ };
32
+ };
33
+ readonly complaintActivity: {
34
+ id: {
35
+ serviceName: "complaint";
36
+ field: "complaintActivity";
37
+ linkable: "complaint_activity_id";
38
+ primaryKey: "id";
39
+ };
40
+ toJSON: () => {
41
+ serviceName: "complaint";
42
+ field: "complaintActivity";
43
+ linkable: "complaint_activity_id";
44
+ primaryKey: "id";
45
+ };
46
+ };
47
+ readonly complaintProductStat: {
48
+ id: {
49
+ serviceName: "complaint";
50
+ field: "complaintProductStat";
51
+ linkable: "complaint_product_stat_id";
52
+ primaryKey: "id";
53
+ };
54
+ toJSON: () => {
55
+ serviceName: "complaint";
56
+ field: "complaintProductStat";
57
+ linkable: "complaint_product_stat_id";
58
+ primaryKey: "id";
59
+ };
60
+ };
61
+ };
62
+ };
63
+ export default _default;
64
+ export * from './service';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.COMPLAINT_MODULE = void 0;
18
+ const utils_1 = require("@medusajs/framework/utils");
19
+ const service_1 = require("./service");
20
+ exports.COMPLAINT_MODULE = 'complaint';
21
+ exports.default = (0, utils_1.Module)(exports.COMPLAINT_MODULE, {
22
+ service: service_1.ComplaintService
23
+ });
24
+ __exportStar(require("./service"), exports);
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb21wbGFpbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsdUNBQTRDO0FBRS9CLFFBQUEsZ0JBQWdCLEdBQUcsV0FBVyxDQUFBO0FBRTNDLGtCQUFlLElBQUEsY0FBTSxFQUFDLHdCQUFnQixFQUFFO0lBQ3ZDLE9BQU8sRUFBRSwwQkFBZ0I7Q0FDekIsQ0FBQyxDQUFBO0FBRUYsNENBQXlCIn0=
@@ -0,0 +1,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20260409171742 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260409171742 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260409171742 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`create table if not exists "complaint" ("id" text not null, "number" serial, "status" text check ("status" in ('open', 'closed')) not null default 'open', "description" text not null, "customer_id" text not null, "order_id" text not null, "product_id" text not null, "serial_number_id" text null, "stock_lot_id" text null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "complaint_pkey" primary key ("id"));`);
8
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_complaint_deleted_at" ON "complaint" ("deleted_at") WHERE deleted_at IS NULL;`);
9
+ this.addSql(`create table if not exists "complaint_activity" ("id" text not null, "type" text check ("type" in ('open', 'close', 'note')) not null default 'note', "user_id" text not null, "note" text null, "metadata" jsonb null, "complaint_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "complaint_activity_pkey" primary key ("id"));`);
10
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_complaint_activity_complaint_id" ON "complaint_activity" ("complaint_id") WHERE deleted_at IS NULL;`);
11
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_complaint_activity_deleted_at" ON "complaint_activity" ("deleted_at") WHERE deleted_at IS NULL;`);
12
+ this.addSql(`create table if not exists "complaint_product_stat" ("id" text not null, "product_id" text not null, "total_orders" integer not null default 0, "total_complaints" integer not null default 0, "complaint_rate" real not null default 0, "last_calculated_at" timestamptz null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "complaint_product_stat_pkey" primary key ("id"));`);
13
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_complaint_product_stat_deleted_at" ON "complaint_product_stat" ("deleted_at") WHERE deleted_at IS NULL;`);
14
+ this.addSql(`create table if not exists "complaint_tag" ("id" text not null, "value" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "complaint_tag_pkey" primary key ("id"));`);
15
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_complaint_tag_deleted_at" ON "complaint_tag" ("deleted_at") WHERE deleted_at IS NULL;`);
16
+ this.addSql(`create table if not exists "complaint_complaint_tags" ("complaint_id" text not null, "complaint_tag_id" text not null, constraint "complaint_complaint_tags_pkey" primary key ("complaint_id", "complaint_tag_id"));`);
17
+ this.addSql(`alter table if exists "complaint_activity" drop constraint if exists "complaint_activity_complaint_id_foreign";`);
18
+ this.addSql(`alter table if exists "complaint_activity" add constraint "complaint_activity_complaint_id_foreign" foreign key ("complaint_id") references "complaint" ("id") on update cascade on delete cascade;`);
19
+ this.addSql(`alter table if exists "complaint_complaint_tags" drop constraint if exists "complaint_complaint_tags_complaint_id_foreign";`);
20
+ this.addSql(`alter table if exists "complaint_complaint_tags" add constraint "complaint_complaint_tags_complaint_id_foreign" foreign key ("complaint_id") references "complaint" ("id") on update cascade on delete cascade;`);
21
+ this.addSql(`alter table if exists "complaint_complaint_tags" drop constraint if exists "complaint_complaint_tags_complaint_tag_id_foreign";`);
22
+ this.addSql(`alter table if exists "complaint_complaint_tags" add constraint "complaint_complaint_tags_complaint_tag_id_foreign" foreign key ("complaint_tag_id") references "complaint_tag" ("id") on update cascade on delete cascade;`);
23
+ }
24
+ async down() {
25
+ this.addSql(`alter table if exists "complaint_activity" drop constraint if exists "complaint_activity_complaint_id_foreign";`);
26
+ this.addSql(`alter table if exists "complaint_complaint_tags" drop constraint if exists "complaint_complaint_tags_complaint_id_foreign";`);
27
+ this.addSql(`alter table if exists "complaint_complaint_tags" drop constraint if exists "complaint_complaint_tags_complaint_tag_id_foreign";`);
28
+ this.addSql(`drop table if exists "complaint" cascade;`);
29
+ this.addSql(`drop table if exists "complaint_activity" cascade;`);
30
+ this.addSql(`drop table if exists "complaint_product_stat" cascade;`);
31
+ this.addSql(`drop table if exists "complaint_tag" cascade;`);
32
+ this.addSql(`drop table if exists "complaint_complaint_tags" cascade;`);
33
+ }
34
+ }
35
+ exports.Migration20260409171742 = Migration20260409171742;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA0MDkxNzE3NDIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb21wbGFpbnQvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MDQwOTE3MTc0Mi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsNmdCQUE2Z0IsQ0FBQyxDQUFDO1FBQzNoQixJQUFJLENBQUMsTUFBTSxDQUFDLCtHQUErRyxDQUFDLENBQUM7UUFFN0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrYkFBa2IsQ0FBQyxDQUFDO1FBQ2hjLElBQUksQ0FBQyxNQUFNLENBQUMscUlBQXFJLENBQUMsQ0FBQztRQUNuSixJQUFJLENBQUMsTUFBTSxDQUFDLGlJQUFpSSxDQUFDLENBQUM7UUFFL0ksSUFBSSxDQUFDLE1BQU0sQ0FBQyx1ZUFBdWUsQ0FBQyxDQUFDO1FBQ3JmLElBQUksQ0FBQyxNQUFNLENBQUMseUlBQXlJLENBQUMsQ0FBQztRQUV2SixJQUFJLENBQUMsTUFBTSxDQUFDLDhRQUE4USxDQUFDLENBQUM7UUFDNVIsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1SEFBdUgsQ0FBQyxDQUFDO1FBRXJJLElBQUksQ0FBQyxNQUFNLENBQUMsc05BQXNOLENBQUMsQ0FBQztRQUVwTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlIQUFpSCxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxTUFBcU0sQ0FBQyxDQUFDO1FBRW5OLElBQUksQ0FBQyxNQUFNLENBQUMsNkhBQTZILENBQUMsQ0FBQztRQUMzSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlOQUFpTixDQUFDLENBQUM7UUFDL04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSUFBaUksQ0FBQyxDQUFDO1FBQy9JLElBQUksQ0FBQyxNQUFNLENBQUMsNk5BQTZOLENBQUMsQ0FBQztJQUM3TyxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSEFBaUgsQ0FBQyxDQUFDO1FBRS9ILElBQUksQ0FBQyxNQUFNLENBQUMsNkhBQTZILENBQUMsQ0FBQztRQUUzSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlJQUFpSSxDQUFDLENBQUM7UUFFL0ksSUFBSSxDQUFDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUVsRSxJQUFJLENBQUMsTUFBTSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxNQUFNLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBRUY7QUE3Q0QsMERBNkNDIn0=