medusajs-documents-plugin 1.1.19 → 1.1.23
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.
- package/.medusa/server/src/admin/index.js +137 -26
- package/.medusa/server/src/admin/index.mjs +137 -26
- package/.medusa/server/src/api/admin/documents/[id]/route.js +101 -0
- package/.medusa/server/src/api/admin/documents/repair/[id]/route.js +58 -0
- package/.medusa/server/src/api/admin/documents/templates/preview/route.js +4 -3
- package/.medusa/server/src/assets/logo.png +0 -0
- package/.medusa/server/src/modules/documents/service.js +479 -116
- package/.medusa/server/src/services/pdf-post-processor.js +2 -2
- package/.medusa/server/src/services/pdfkit-generator.js +1149 -322
- package/.medusa/server/src/services/zoho-books.js +104 -3
- package/.medusa/server/src/subscribers/repair-documents.js +43 -22
- package/package.json +3 -3
|
@@ -146,11 +146,11 @@ exports.DEFAULT_DOCUMENT_SETTINGS = {
|
|
|
146
146
|
event_repair_created_enabled: true,
|
|
147
147
|
event_repair_completed_enabled: true,
|
|
148
148
|
event_repair_reminder_enabled: true,
|
|
149
|
-
invoice_template: "
|
|
149
|
+
invoice_template: "zoho_exact",
|
|
150
150
|
packing_slip_template: "modern",
|
|
151
|
-
receipt_template: "
|
|
152
|
-
estimate_template: "
|
|
153
|
-
job_card_template: "
|
|
151
|
+
receipt_template: "zoho_exact",
|
|
152
|
+
estimate_template: "zoho_exact",
|
|
153
|
+
job_card_template: "standard",
|
|
154
154
|
custom_doc_template: "modern",
|
|
155
155
|
zoho_books_enabled: true,
|
|
156
156
|
zoho_client_id: null,
|
|
@@ -200,6 +200,82 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
200
200
|
DocumentRecord: document_record_1.DocumentRecord,
|
|
201
201
|
DocumentLink: document_link_1.DocumentLink,
|
|
202
202
|
}) {
|
|
203
|
+
/**
|
|
204
|
+
* Helper to fetch repair_settings from module or directly via database
|
|
205
|
+
*/
|
|
206
|
+
async fetchRepairSettings(container) {
|
|
207
|
+
try {
|
|
208
|
+
const repMod = (container || this.__container__)?.resolve?.("repair", { allowUnregistered: true });
|
|
209
|
+
if (repMod) {
|
|
210
|
+
const [repSettings] = await repMod.listRepairSettings({});
|
|
211
|
+
if (repSettings)
|
|
212
|
+
return repSettings;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (_) { }
|
|
216
|
+
try {
|
|
217
|
+
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
218
|
+
if (conn) {
|
|
219
|
+
const row = await conn("repair_settings").whereNull("deleted_at").first();
|
|
220
|
+
if (row)
|
|
221
|
+
return row;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (_) { }
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Applies inherited settings from repair_settings into target document_settings
|
|
229
|
+
*/
|
|
230
|
+
applyInheritedRepairSettings(targetSettings, repSettings) {
|
|
231
|
+
if (!repSettings || !targetSettings)
|
|
232
|
+
return targetSettings;
|
|
233
|
+
if (!targetSettings.zoho_client_id && repSettings.zoho_client_id) {
|
|
234
|
+
targetSettings.zoho_books_enabled = Boolean(repSettings.zoho_books_enabled);
|
|
235
|
+
targetSettings.zoho_client_id = repSettings.zoho_client_id;
|
|
236
|
+
targetSettings.zoho_client_secret = repSettings.zoho_client_secret;
|
|
237
|
+
targetSettings.zoho_refresh_token = repSettings.zoho_refresh_token;
|
|
238
|
+
targetSettings.zoho_organization_id = repSettings.zoho_organization_id;
|
|
239
|
+
targetSettings.zoho_domain = repSettings.zoho_domain || targetSettings.zoho_domain || "com";
|
|
240
|
+
if (repSettings.zoho_tax_inclusive != null)
|
|
241
|
+
targetSettings.zoho_tax_inclusive = repSettings.zoho_tax_inclusive;
|
|
242
|
+
if (repSettings.zoho_invoice_notes && !targetSettings.zoho_invoice_notes)
|
|
243
|
+
targetSettings.zoho_invoice_notes = repSettings.zoho_invoice_notes;
|
|
244
|
+
if (repSettings.zoho_invoice_terms && !targetSettings.zoho_invoice_terms)
|
|
245
|
+
targetSettings.zoho_invoice_terms = repSettings.zoho_invoice_terms;
|
|
246
|
+
}
|
|
247
|
+
if (!targetSettings.pdf_logo_url && repSettings.pdf_logo_url)
|
|
248
|
+
targetSettings.pdf_logo_url = repSettings.pdf_logo_url;
|
|
249
|
+
if (!targetSettings.pdf_address && repSettings.pdf_address)
|
|
250
|
+
targetSettings.pdf_address = repSettings.pdf_address;
|
|
251
|
+
if (!targetSettings.pdf_phone && repSettings.pdf_phone)
|
|
252
|
+
targetSettings.pdf_phone = repSettings.pdf_phone;
|
|
253
|
+
if (!targetSettings.pdf_email && repSettings.pdf_email)
|
|
254
|
+
targetSettings.pdf_email = repSettings.pdf_email;
|
|
255
|
+
if (!targetSettings.pdf_website && repSettings.pdf_website)
|
|
256
|
+
targetSettings.pdf_website = repSettings.pdf_website;
|
|
257
|
+
if (!targetSettings.pdf_payment_details && repSettings.pdf_payment_details)
|
|
258
|
+
targetSettings.pdf_payment_details = repSettings.pdf_payment_details;
|
|
259
|
+
if (!targetSettings.pdf_terms && repSettings.pdf_terms)
|
|
260
|
+
targetSettings.pdf_terms = repSettings.pdf_terms;
|
|
261
|
+
if (!targetSettings.company_name || targetSettings.company_name === "Company Store" || targetSettings.company_name === "Store") {
|
|
262
|
+
if (repSettings.company_name)
|
|
263
|
+
targetSettings.company_name = repSettings.company_name;
|
|
264
|
+
}
|
|
265
|
+
if (repSettings.invoice_template && (!targetSettings.invoice_template || targetSettings.invoice_template === "modern")) {
|
|
266
|
+
targetSettings.invoice_template = repSettings.invoice_template;
|
|
267
|
+
}
|
|
268
|
+
if (repSettings.estimate_template && (!targetSettings.estimate_template || targetSettings.estimate_template === "modern")) {
|
|
269
|
+
targetSettings.estimate_template = repSettings.estimate_template;
|
|
270
|
+
}
|
|
271
|
+
if (repSettings.receipt_template && (!targetSettings.receipt_template || targetSettings.receipt_template === "modern")) {
|
|
272
|
+
targetSettings.receipt_template = repSettings.receipt_template;
|
|
273
|
+
}
|
|
274
|
+
if (repSettings.job_card_template && (!targetSettings.job_card_template || targetSettings.job_card_template === "modern")) {
|
|
275
|
+
targetSettings.job_card_template = repSettings.job_card_template;
|
|
276
|
+
}
|
|
277
|
+
return targetSettings;
|
|
278
|
+
}
|
|
203
279
|
/**
|
|
204
280
|
* Retrieves or initializes default plugin settings
|
|
205
281
|
*/
|
|
@@ -207,39 +283,29 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
207
283
|
try {
|
|
208
284
|
const [settings] = await this.listDocumentSettings({}, {}, sharedContext);
|
|
209
285
|
if (settings) {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const repMod = (container || this.__container__)?.resolve?.("repair", { allowUnregistered: true });
|
|
213
|
-
if (repMod) {
|
|
214
|
-
const [repSettings] = await repMod.listRepairSettings({});
|
|
215
|
-
if (repSettings?.zoho_client_id) {
|
|
216
|
-
settings.zoho_books_enabled = Boolean(repSettings.zoho_books_enabled);
|
|
217
|
-
settings.zoho_client_id = repSettings.zoho_client_id;
|
|
218
|
-
settings.zoho_client_secret = repSettings.zoho_client_secret;
|
|
219
|
-
settings.zoho_refresh_token = repSettings.zoho_refresh_token;
|
|
220
|
-
settings.zoho_organization_id = repSettings.zoho_organization_id;
|
|
221
|
-
settings.zoho_domain = repSettings.zoho_domain || settings.zoho_domain || "com";
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
catch (_) { }
|
|
226
|
-
}
|
|
286
|
+
const repSettings = await this.fetchRepairSettings(container);
|
|
287
|
+
this.applyInheritedRepairSettings(settings, repSettings);
|
|
227
288
|
return settings;
|
|
228
289
|
}
|
|
229
|
-
|
|
290
|
+
const created = await this.createDocumentSettings({
|
|
230
291
|
...exports.DEFAULT_DOCUMENT_SETTINGS,
|
|
231
292
|
}, sharedContext);
|
|
293
|
+
const repSettings = await this.fetchRepairSettings(container);
|
|
294
|
+
return this.applyInheritedRepairSettings(created, repSettings);
|
|
232
295
|
}
|
|
233
296
|
catch (err) {
|
|
234
297
|
if (isUndefinedTableError(err)) {
|
|
235
|
-
|
|
298
|
+
const repSettings = await this.fetchRepairSettings(container);
|
|
299
|
+
return this.applyInheritedRepairSettings({ ...exports.DEFAULT_DOCUMENT_SETTINGS }, repSettings);
|
|
236
300
|
}
|
|
237
301
|
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
238
302
|
if (conn) {
|
|
239
303
|
try {
|
|
240
304
|
let row = await conn("document_settings").whereNull("deleted_at").first();
|
|
241
|
-
if (row)
|
|
242
|
-
|
|
305
|
+
if (row) {
|
|
306
|
+
const repSettings = await this.fetchRepairSettings(container);
|
|
307
|
+
return this.applyInheritedRepairSettings(row, repSettings);
|
|
308
|
+
}
|
|
243
309
|
const { id: _ignoreId, ...restDefaults } = exports.DEFAULT_DOCUMENT_SETTINGS;
|
|
244
310
|
const createdResult = await conn("document_settings").insert({
|
|
245
311
|
...restDefaults,
|
|
@@ -247,11 +313,14 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
247
313
|
created_at: new Date(),
|
|
248
314
|
updated_at: new Date(),
|
|
249
315
|
}).returning("*");
|
|
250
|
-
|
|
316
|
+
const created = Array.isArray(createdResult) ? createdResult[0] : createdResult;
|
|
317
|
+
const repSettings = await this.fetchRepairSettings(container);
|
|
318
|
+
return this.applyInheritedRepairSettings(created, repSettings);
|
|
251
319
|
}
|
|
252
320
|
catch (knexErr) {
|
|
253
321
|
if (isUndefinedTableError(knexErr)) {
|
|
254
|
-
|
|
322
|
+
const repSettings = await this.fetchRepairSettings(container);
|
|
323
|
+
return this.applyInheritedRepairSettings({ ...exports.DEFAULT_DOCUMENT_SETTINGS }, repSettings);
|
|
255
324
|
}
|
|
256
325
|
throw knexErr;
|
|
257
326
|
}
|
|
@@ -291,6 +360,9 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
291
360
|
const sharedContext = manager ? { manager } : {};
|
|
292
361
|
const settings = await this.getSettings(sharedContext, container);
|
|
293
362
|
const storeUrl = (settings.storefront_url || process.env.STORE_URL || "http://localhost:3000").replace(/\/$/, "");
|
|
363
|
+
if (input.type === "quote") {
|
|
364
|
+
input.type = "estimate";
|
|
365
|
+
}
|
|
294
366
|
// 0. Auto-hydrate repair ticket data if needed
|
|
295
367
|
if (input.repair_ticket_id && (!input.customer || !input.items || input.items.length === 0)) {
|
|
296
368
|
try {
|
|
@@ -487,25 +559,52 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
487
559
|
quantity: it.quantity || 1,
|
|
488
560
|
}));
|
|
489
561
|
const customFields = [];
|
|
490
|
-
if (shortPaymentLink || input.payment_link) {
|
|
562
|
+
if (settings.zoho_custom_field_payment_link && settings.zoho_custom_field_payment_link.trim() !== "" && (shortPaymentLink || input.payment_link)) {
|
|
491
563
|
customFields.push({
|
|
492
|
-
label: settings.zoho_custom_field_payment_link
|
|
564
|
+
label: settings.zoho_custom_field_payment_link,
|
|
493
565
|
value: (shortPaymentLink || input.payment_link),
|
|
494
566
|
});
|
|
495
567
|
}
|
|
496
568
|
if (input.type === "invoice") {
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
569
|
+
let targetInvoiceId = null;
|
|
570
|
+
if (input.repair_ticket_id) {
|
|
571
|
+
const existingDocs = await this.listDocumentRecords({
|
|
572
|
+
repair_ticket_id: input.repair_ticket_id,
|
|
573
|
+
type: "invoice",
|
|
574
|
+
}).catch(() => []);
|
|
575
|
+
const inv = existingDocs.find((d) => d.zoho_document_id);
|
|
576
|
+
if (inv) {
|
|
577
|
+
targetInvoiceId = inv.zoho_document_id;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
if (!targetInvoiceId) {
|
|
581
|
+
let existingInZoho = await zoho.getInvoiceByNumber(displayId);
|
|
582
|
+
if (!existingInZoho && displayId.startsWith("RT-")) {
|
|
583
|
+
existingInZoho = await zoho.getInvoiceByNumber(displayId.replace(/^RT-/, ""));
|
|
584
|
+
}
|
|
585
|
+
if (!existingInZoho && !displayId.startsWith("RT-")) {
|
|
586
|
+
existingInZoho = await zoho.getInvoiceByNumber(`RT-${displayId}`);
|
|
587
|
+
}
|
|
588
|
+
if (existingInZoho) {
|
|
589
|
+
targetInvoiceId = existingInZoho.invoice_id;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
if (!targetInvoiceId) {
|
|
593
|
+
const res = await zoho.createInvoice(contactId, {
|
|
594
|
+
reference_number: displayId,
|
|
595
|
+
invoice_number: displayId,
|
|
596
|
+
line_items: zohoLineItems,
|
|
597
|
+
notes: zohoNotes,
|
|
598
|
+
terms: zohoTerms,
|
|
599
|
+
payment_terms: settings.zoho_payment_terms_days || 0,
|
|
600
|
+
is_inclusive_tax: settings.zoho_tax_inclusive ?? false,
|
|
601
|
+
custom_fields: customFields,
|
|
602
|
+
});
|
|
603
|
+
targetInvoiceId = res.invoice_id;
|
|
604
|
+
}
|
|
605
|
+
zohoDocumentId = targetInvoiceId;
|
|
507
606
|
source = "zoho";
|
|
508
|
-
const rawBuffer = await zoho.getDocumentPdf(
|
|
607
|
+
const rawBuffer = await zoho.getDocumentPdf(targetInvoiceId, "invoice");
|
|
509
608
|
const qrUrlToEmbed = settings.zoho_include_payment_qr !== false ? (shortPaymentLink || input.payment_link) : undefined;
|
|
510
609
|
pdfBuffer = await (0, pdf_post_processor_1.postProcessPdf)(Buffer.from(rawBuffer), {
|
|
511
610
|
qrUrl: qrUrlToEmbed,
|
|
@@ -513,16 +612,44 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
513
612
|
});
|
|
514
613
|
}
|
|
515
614
|
else if (input.type === "estimate") {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
615
|
+
let targetEstId = null;
|
|
616
|
+
if (input.repair_ticket_id) {
|
|
617
|
+
const existingDocs = await this.listDocumentRecords({
|
|
618
|
+
repair_ticket_id: input.repair_ticket_id,
|
|
619
|
+
type: "estimate",
|
|
620
|
+
}).catch(() => []);
|
|
621
|
+
const est = existingDocs.find((d) => d.zoho_document_id);
|
|
622
|
+
if (est) {
|
|
623
|
+
targetEstId = est.zoho_document_id;
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
if (!targetEstId) {
|
|
627
|
+
let existingInZoho = await zoho.getEstimateByNumber(displayId);
|
|
628
|
+
if (!existingInZoho && displayId.startsWith("EST-")) {
|
|
629
|
+
existingInZoho = await zoho.getEstimateByNumber(displayId.replace(/^EST-/, ""));
|
|
630
|
+
}
|
|
631
|
+
if (!existingInZoho && !displayId.startsWith("EST-")) {
|
|
632
|
+
existingInZoho = await zoho.getEstimateByNumber(`EST-${displayId}`);
|
|
633
|
+
}
|
|
634
|
+
if (existingInZoho) {
|
|
635
|
+
targetEstId = existingInZoho.estimate_id;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
if (!targetEstId) {
|
|
639
|
+
const res = await zoho.createEstimate(contactId, {
|
|
640
|
+
reference_number: displayId,
|
|
641
|
+
estimate_number: displayId,
|
|
642
|
+
line_items: zohoLineItems,
|
|
643
|
+
notes: zohoNotes,
|
|
644
|
+
terms: zohoTerms,
|
|
645
|
+
is_inclusive_tax: settings.zoho_tax_inclusive ?? false,
|
|
646
|
+
custom_fields: customFields,
|
|
647
|
+
});
|
|
648
|
+
targetEstId = res.estimate_id;
|
|
649
|
+
}
|
|
650
|
+
zohoDocumentId = targetEstId;
|
|
524
651
|
source = "zoho";
|
|
525
|
-
const rawBuffer = await zoho.getDocumentPdf(
|
|
652
|
+
const rawBuffer = await zoho.getDocumentPdf(targetEstId, "estimate");
|
|
526
653
|
pdfBuffer = await (0, pdf_post_processor_1.postProcessPdf)(Buffer.from(rawBuffer), {
|
|
527
654
|
qrUrl: shortPaymentLink || input.payment_link,
|
|
528
655
|
obscureZohoFooter: true,
|
|
@@ -551,10 +678,17 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
551
678
|
targetInvoiceId = inv.zoho_document_id;
|
|
552
679
|
}
|
|
553
680
|
}
|
|
554
|
-
// If no invoice was previously synchronized to Zoho, create one to attach the payment
|
|
681
|
+
// If no invoice was previously synchronized to Zoho, check if it exists in Zoho or create one to attach the payment
|
|
682
|
+
if (!targetInvoiceId) {
|
|
683
|
+
const existingInZoho = await zoho.getInvoiceByNumber(displayId);
|
|
684
|
+
if (existingInZoho) {
|
|
685
|
+
targetInvoiceId = existingInZoho.invoice_id;
|
|
686
|
+
}
|
|
687
|
+
}
|
|
555
688
|
if (!targetInvoiceId) {
|
|
556
689
|
const invRes = await zoho.createInvoice(contactId, {
|
|
557
690
|
reference_number: displayId,
|
|
691
|
+
invoice_number: displayId,
|
|
558
692
|
line_items: zohoLineItems,
|
|
559
693
|
notes: zohoNotes,
|
|
560
694
|
terms: zohoTerms,
|
|
@@ -587,15 +721,15 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
587
721
|
// -------------------------------------------------------------
|
|
588
722
|
if (!pdfBuffer) {
|
|
589
723
|
source = "pdfkit";
|
|
590
|
-
let templateName = settings.invoice_template || "
|
|
724
|
+
let templateName = settings.invoice_template || "zoho_exact";
|
|
591
725
|
if (input.type === "packing_slip")
|
|
592
726
|
templateName = settings.packing_slip_template || "modern";
|
|
593
727
|
else if (input.type === "receipt")
|
|
594
|
-
templateName = settings.receipt_template || "
|
|
728
|
+
templateName = settings.receipt_template || "zoho_exact";
|
|
595
729
|
else if (input.type === "estimate")
|
|
596
|
-
templateName = settings.estimate_template || "
|
|
730
|
+
templateName = settings.estimate_template || "zoho_exact";
|
|
597
731
|
else if (input.type === "job_card")
|
|
598
|
-
templateName = settings.job_card_template || "
|
|
732
|
+
templateName = settings.job_card_template || "standard";
|
|
599
733
|
else if (input.type === "custom")
|
|
600
734
|
templateName = settings.custom_doc_template || "modern";
|
|
601
735
|
const docData = {
|
|
@@ -638,62 +772,60 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
638
772
|
qrUrl: shortPaymentLink || input.payment_link,
|
|
639
773
|
});
|
|
640
774
|
}
|
|
641
|
-
// Save Record to Database
|
|
642
|
-
const initialPdfUrl = `${storeUrl}/api/admin/documents/temp/document`;
|
|
775
|
+
// Save Record to Database (update existing if present for repair ticket to avoid duplicates)
|
|
643
776
|
let record = null;
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
input.
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
customer_phone: input.customer.phone,
|
|
657
|
-
order_id: input.order_id,
|
|
658
|
-
repair_ticket_id: input.repair_ticket_id,
|
|
659
|
-
zoho_document_id: zohoDocumentId,
|
|
660
|
-
total_amount: input.total,
|
|
661
|
-
currency_code: input.currency_code,
|
|
662
|
-
payment_status: input.payment_status || "unpaid",
|
|
663
|
-
payment_link: input.payment_link,
|
|
664
|
-
short_payment_link: shortPaymentLink,
|
|
665
|
-
pdf_url: `${(process.env.MEDUSA_BACKEND_URL || process.env.BACKEND_URL || process.env.MEDUSA_URL || "http://localhost:9000").replace(/\/$/, "")}/documents/${displayId}/document`,
|
|
666
|
-
metadata: {
|
|
667
|
-
items: input.items,
|
|
668
|
-
notes: input.notes,
|
|
669
|
-
body_text: input.body_text,
|
|
670
|
-
custom_fields: input.custom_fields,
|
|
671
|
-
},
|
|
672
|
-
}, sharedContext);
|
|
777
|
+
let existingRecord = null;
|
|
778
|
+
if (input.repair_ticket_id) {
|
|
779
|
+
try {
|
|
780
|
+
const existingDocs = await this.listDocumentRecords({
|
|
781
|
+
repair_ticket_id: input.repair_ticket_id,
|
|
782
|
+
type: input.type,
|
|
783
|
+
}, {}, sharedContext).catch(() => []);
|
|
784
|
+
if (existingDocs && existingDocs.length > 0) {
|
|
785
|
+
existingRecord = existingDocs[0];
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
catch (_) { }
|
|
673
789
|
}
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
790
|
+
if (existingRecord) {
|
|
791
|
+
try {
|
|
792
|
+
record = await this.updateDocumentRecords({
|
|
793
|
+
id: existingRecord.id,
|
|
794
|
+
display_id: displayId,
|
|
795
|
+
title: input.title || existingRecord.title,
|
|
796
|
+
source: source,
|
|
797
|
+
status: input.payment_status === "paid" ? "paid" : "sent",
|
|
798
|
+
customer_name: input.customer.name,
|
|
799
|
+
customer_email: input.customer.email,
|
|
800
|
+
customer_phone: input.customer.phone,
|
|
801
|
+
zoho_document_id: zohoDocumentId || existingRecord.zoho_document_id,
|
|
802
|
+
total_amount: input.total,
|
|
803
|
+
currency_code: input.currency_code,
|
|
804
|
+
payment_status: input.payment_status || "unpaid",
|
|
805
|
+
payment_link: input.payment_link,
|
|
806
|
+
short_payment_link: shortPaymentLink,
|
|
807
|
+
pdf_url: `${(process.env.MEDUSA_BACKEND_URL || process.env.BACKEND_URL || process.env.MEDUSA_URL || "http://localhost:9000").replace(/\/$/, "")}/documents/${displayId}/document`,
|
|
808
|
+
metadata: {
|
|
809
|
+
...(existingRecord.metadata || {}),
|
|
810
|
+
items: input.items,
|
|
811
|
+
notes: input.notes,
|
|
812
|
+
body_text: input.body_text,
|
|
813
|
+
custom_fields: input.custom_fields,
|
|
814
|
+
},
|
|
815
|
+
}, sharedContext);
|
|
677
816
|
}
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
id: (0, utils_1.generateEntityId)(undefined, "doc"),
|
|
817
|
+
catch (upErr) {
|
|
818
|
+
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
819
|
+
if (conn) {
|
|
820
|
+
await conn("document_record").where({ id: existingRecord.id }).update({
|
|
683
821
|
display_id: displayId,
|
|
684
|
-
title: input.title ||
|
|
685
|
-
input.type === "receipt" ? "Payment Receipt" :
|
|
686
|
-
input.type === "packing_slip" ? "Packing Slip" :
|
|
687
|
-
input.type === "estimate" ? "Quotation" : "Document"),
|
|
688
|
-
type: input.type,
|
|
822
|
+
title: input.title || existingRecord.title,
|
|
689
823
|
source: source,
|
|
690
824
|
status: input.payment_status === "paid" ? "paid" : "sent",
|
|
691
825
|
customer_name: input.customer.name,
|
|
692
826
|
customer_email: input.customer.email,
|
|
693
827
|
customer_phone: input.customer.phone,
|
|
694
|
-
|
|
695
|
-
repair_ticket_id: input.repair_ticket_id,
|
|
696
|
-
zoho_document_id: zohoDocumentId,
|
|
828
|
+
zoho_document_id: zohoDocumentId || existingRecord.zoho_document_id,
|
|
697
829
|
total_amount: input.total,
|
|
698
830
|
currency_code: input.currency_code,
|
|
699
831
|
payment_status: input.payment_status || "unpaid",
|
|
@@ -706,20 +838,93 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
706
838
|
body_text: input.body_text,
|
|
707
839
|
custom_fields: input.custom_fields,
|
|
708
840
|
}),
|
|
709
|
-
created_at: new Date(),
|
|
710
841
|
updated_at: new Date(),
|
|
711
|
-
})
|
|
712
|
-
record =
|
|
842
|
+
});
|
|
843
|
+
record = await conn("document_record").where({ id: existingRecord.id }).first();
|
|
713
844
|
}
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
if (!record) {
|
|
848
|
+
try {
|
|
849
|
+
record = await this.createDocumentRecords({
|
|
850
|
+
display_id: displayId,
|
|
851
|
+
title: input.title || (input.type === "invoice" ? "Tax Invoice" :
|
|
852
|
+
input.type === "receipt" ? "Payment Receipt" :
|
|
853
|
+
input.type === "packing_slip" ? "Packing Slip" :
|
|
854
|
+
input.type === "estimate" ? "Quotation" : "Document"),
|
|
855
|
+
type: input.type,
|
|
856
|
+
source: source,
|
|
857
|
+
status: input.payment_status === "paid" ? "paid" : "sent",
|
|
858
|
+
customer_name: input.customer.name,
|
|
859
|
+
customer_email: input.customer.email,
|
|
860
|
+
customer_phone: input.customer.phone,
|
|
861
|
+
order_id: input.order_id,
|
|
862
|
+
repair_ticket_id: input.repair_ticket_id,
|
|
863
|
+
zoho_document_id: zohoDocumentId,
|
|
864
|
+
total_amount: input.total,
|
|
865
|
+
currency_code: input.currency_code,
|
|
866
|
+
payment_status: input.payment_status || "unpaid",
|
|
867
|
+
payment_link: input.payment_link,
|
|
868
|
+
short_payment_link: shortPaymentLink,
|
|
869
|
+
pdf_url: `${(process.env.MEDUSA_BACKEND_URL || process.env.BACKEND_URL || process.env.MEDUSA_URL || "http://localhost:9000").replace(/\/$/, "")}/documents/${displayId}/document`,
|
|
870
|
+
metadata: {
|
|
871
|
+
items: input.items,
|
|
872
|
+
notes: input.notes,
|
|
873
|
+
body_text: input.body_text,
|
|
874
|
+
custom_fields: input.custom_fields,
|
|
875
|
+
},
|
|
876
|
+
}, sharedContext);
|
|
877
|
+
}
|
|
878
|
+
catch (err) {
|
|
879
|
+
if (isUndefinedTableError(err)) {
|
|
880
|
+
throw new Error("Database table document_record does not exist. Please run npx medusa db:migrate.");
|
|
881
|
+
}
|
|
882
|
+
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
883
|
+
if (conn) {
|
|
884
|
+
try {
|
|
885
|
+
const [inserted] = await conn("document_record").insert({
|
|
886
|
+
id: (0, utils_1.generateEntityId)(undefined, "doc"),
|
|
887
|
+
display_id: displayId,
|
|
888
|
+
title: input.title || (input.type === "invoice" ? "Tax Invoice" :
|
|
889
|
+
input.type === "receipt" ? "Payment Receipt" :
|
|
890
|
+
input.type === "packing_slip" ? "Packing Slip" :
|
|
891
|
+
input.type === "estimate" ? "Quotation" : "Document"),
|
|
892
|
+
type: input.type,
|
|
893
|
+
source: source,
|
|
894
|
+
status: input.payment_status === "paid" ? "paid" : "sent",
|
|
895
|
+
customer_name: input.customer.name,
|
|
896
|
+
customer_email: input.customer.email,
|
|
897
|
+
customer_phone: input.customer.phone,
|
|
898
|
+
order_id: input.order_id,
|
|
899
|
+
repair_ticket_id: input.repair_ticket_id,
|
|
900
|
+
zoho_document_id: zohoDocumentId,
|
|
901
|
+
total_amount: input.total,
|
|
902
|
+
currency_code: input.currency_code,
|
|
903
|
+
payment_status: input.payment_status || "unpaid",
|
|
904
|
+
payment_link: input.payment_link,
|
|
905
|
+
short_payment_link: shortPaymentLink,
|
|
906
|
+
pdf_url: `${(process.env.MEDUSA_BACKEND_URL || process.env.BACKEND_URL || process.env.MEDUSA_URL || "http://localhost:9000").replace(/\/$/, "")}/documents/${displayId}/document`,
|
|
907
|
+
metadata: JSON.stringify({
|
|
908
|
+
items: input.items,
|
|
909
|
+
notes: input.notes,
|
|
910
|
+
body_text: input.body_text,
|
|
911
|
+
custom_fields: input.custom_fields,
|
|
912
|
+
}),
|
|
913
|
+
created_at: new Date(),
|
|
914
|
+
updated_at: new Date(),
|
|
915
|
+
}).returning("*");
|
|
916
|
+
record = inserted;
|
|
917
|
+
}
|
|
918
|
+
catch (knexErr) {
|
|
919
|
+
if (isUndefinedTableError(knexErr)) {
|
|
920
|
+
throw new Error("Database table document_record does not exist. Please run npx medusa db:migrate.");
|
|
921
|
+
}
|
|
922
|
+
throw knexErr;
|
|
717
923
|
}
|
|
718
|
-
throw knexErr;
|
|
719
924
|
}
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
925
|
+
else {
|
|
926
|
+
throw err;
|
|
927
|
+
}
|
|
723
928
|
}
|
|
724
929
|
}
|
|
725
930
|
// Update with real public URL and short URL for document
|
|
@@ -854,15 +1059,15 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
854
1059
|
}
|
|
855
1060
|
}
|
|
856
1061
|
// PDFKit Fallback Generation
|
|
857
|
-
let templateName = settings.invoice_template || "
|
|
1062
|
+
let templateName = settings.invoice_template || "zoho_exact";
|
|
858
1063
|
if (record.type === "packing_slip")
|
|
859
1064
|
templateName = settings.packing_slip_template || "modern";
|
|
860
1065
|
else if (record.type === "receipt")
|
|
861
|
-
templateName = settings.receipt_template || "
|
|
1066
|
+
templateName = settings.receipt_template || "zoho_exact";
|
|
862
1067
|
else if (record.type === "estimate")
|
|
863
|
-
templateName = settings.estimate_template || "
|
|
1068
|
+
templateName = settings.estimate_template || "zoho_exact";
|
|
864
1069
|
else if (record.type === "job_card")
|
|
865
|
-
templateName = settings.job_card_template || "
|
|
1070
|
+
templateName = settings.job_card_template || "standard";
|
|
866
1071
|
else if (record.type === "custom")
|
|
867
1072
|
templateName = settings.custom_doc_template || "modern";
|
|
868
1073
|
const meta = (record.metadata || {});
|
|
@@ -901,7 +1106,165 @@ class DocumentModuleService extends (0, utils_1.MedusaService)({
|
|
|
901
1106
|
qrUrl: record.short_payment_link || record.payment_link,
|
|
902
1107
|
});
|
|
903
1108
|
}
|
|
1109
|
+
/**
|
|
1110
|
+
* Deletes all generated documents (in database and in Zoho Books) for a repair ticket
|
|
1111
|
+
* so they can be regenerated cleanly with updated information.
|
|
1112
|
+
*/
|
|
1113
|
+
async deleteDocumentsForRepairTicket(repairTicketId, container) {
|
|
1114
|
+
const deletedInvoices = [];
|
|
1115
|
+
const deletedEstimates = [];
|
|
1116
|
+
const deletedPayments = [];
|
|
1117
|
+
const manager = container?.resolve?.("manager", { allowUnregistered: true });
|
|
1118
|
+
const sharedContext = manager ? { manager } : {};
|
|
1119
|
+
// 1. Fetch all documents for this repair ticket
|
|
1120
|
+
let records = [];
|
|
1121
|
+
try {
|
|
1122
|
+
records = await this.listDocumentRecords({ repair_ticket_id: repairTicketId }, {}, sharedContext);
|
|
1123
|
+
}
|
|
1124
|
+
catch (_) {
|
|
1125
|
+
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
1126
|
+
if (conn) {
|
|
1127
|
+
records = await conn("document_record").where({ repair_ticket_id: repairTicketId }).whereNull("deleted_at");
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
// 2. Resolve ZohoBooksService if credentials exist
|
|
1131
|
+
let zoho = null;
|
|
1132
|
+
try {
|
|
1133
|
+
const settings = await this.getSettings(sharedContext, container);
|
|
1134
|
+
if (settings?.zoho_books_enabled &&
|
|
1135
|
+
settings.zoho_client_id &&
|
|
1136
|
+
settings.zoho_client_secret &&
|
|
1137
|
+
settings.zoho_refresh_token &&
|
|
1138
|
+
settings.zoho_organization_id) {
|
|
1139
|
+
zoho = new zoho_books_1.ZohoBooksService({
|
|
1140
|
+
client_id: settings.zoho_client_id,
|
|
1141
|
+
client_secret: settings.zoho_client_secret,
|
|
1142
|
+
refresh_token: settings.zoho_refresh_token,
|
|
1143
|
+
organization_id: settings.zoho_organization_id,
|
|
1144
|
+
domain: settings.zoho_domain || "com",
|
|
1145
|
+
}, container?.resolve?.("logger", { allowUnregistered: true }));
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
catch (_) { }
|
|
1149
|
+
// 3. Delete each document in Zoho Books if zoho_document_id exists
|
|
1150
|
+
for (const record of records) {
|
|
1151
|
+
if (zoho && record.zoho_document_id) {
|
|
1152
|
+
try {
|
|
1153
|
+
if (record.type === "invoice") {
|
|
1154
|
+
await zoho.deleteInvoice(record.zoho_document_id);
|
|
1155
|
+
deletedInvoices.push(record.zoho_document_id);
|
|
1156
|
+
}
|
|
1157
|
+
else if (record.type === "estimate") {
|
|
1158
|
+
await zoho.deleteEstimate(record.zoho_document_id);
|
|
1159
|
+
deletedEstimates.push(record.zoho_document_id);
|
|
1160
|
+
}
|
|
1161
|
+
else if (record.type === "receipt") {
|
|
1162
|
+
await zoho.deletePayment(record.zoho_document_id);
|
|
1163
|
+
deletedPayments.push(record.zoho_document_id);
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
catch (e) {
|
|
1167
|
+
container?.resolve?.("logger", { allowUnregistered: true })?.warn?.(`[Documents-Module] Could not delete Zoho document ${record.zoho_document_id}: ${e.message}`);
|
|
1168
|
+
}
|
|
1169
|
+
}
|
|
1170
|
+
}
|
|
1171
|
+
// 4. Also check repair ticket metadata directly in case zoho_invoice_id or zoho_estimate_id was stored there
|
|
1172
|
+
try {
|
|
1173
|
+
const repairModule = container?.resolve?.("repair", { allowUnregistered: true });
|
|
1174
|
+
if (repairModule) {
|
|
1175
|
+
const ticket = await repairModule.retrieveRepairTicket(repairTicketId).catch(() => null);
|
|
1176
|
+
if (ticket && ticket.metadata && zoho) {
|
|
1177
|
+
const meta = ticket.metadata;
|
|
1178
|
+
if (meta.zoho_invoice_id && !deletedInvoices.includes(meta.zoho_invoice_id)) {
|
|
1179
|
+
await zoho.deleteInvoice(meta.zoho_invoice_id).catch(() => { });
|
|
1180
|
+
deletedInvoices.push(meta.zoho_invoice_id);
|
|
1181
|
+
}
|
|
1182
|
+
if (meta.zoho_estimate_id && !deletedEstimates.includes(meta.zoho_estimate_id)) {
|
|
1183
|
+
await zoho.deleteEstimate(meta.zoho_estimate_id).catch(() => { });
|
|
1184
|
+
deletedEstimates.push(meta.zoho_estimate_id);
|
|
1185
|
+
}
|
|
1186
|
+
if (meta.zoho_payment_id && !deletedPayments.includes(meta.zoho_payment_id)) {
|
|
1187
|
+
await zoho.deletePayment(meta.zoho_payment_id).catch(() => { });
|
|
1188
|
+
deletedPayments.push(meta.zoho_payment_id);
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
1191
|
+
// Clean ticket metadata
|
|
1192
|
+
if (ticket) {
|
|
1193
|
+
const cleanMeta = { ...(ticket.metadata || {}) };
|
|
1194
|
+
delete cleanMeta.document_id;
|
|
1195
|
+
delete cleanMeta.pdf_url;
|
|
1196
|
+
delete cleanMeta.short_pdf_link;
|
|
1197
|
+
delete cleanMeta.zoho_invoice_id;
|
|
1198
|
+
delete cleanMeta.zoho_estimate_id;
|
|
1199
|
+
delete cleanMeta.zoho_payment_id;
|
|
1200
|
+
delete cleanMeta.last_document_type;
|
|
1201
|
+
delete cleanMeta.last_document_title;
|
|
1202
|
+
await repairModule.updateRepairTickets({
|
|
1203
|
+
id: repairTicketId,
|
|
1204
|
+
metadata: cleanMeta,
|
|
1205
|
+
}).catch(() => { });
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
else {
|
|
1209
|
+
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
1210
|
+
if (conn) {
|
|
1211
|
+
const ticket = await conn("repair_ticket").where({ id: repairTicketId }).first();
|
|
1212
|
+
if (ticket) {
|
|
1213
|
+
const meta = typeof ticket.metadata === "string" ? JSON.parse(ticket.metadata || "{}") : (ticket.metadata || {});
|
|
1214
|
+
if (zoho) {
|
|
1215
|
+
if (meta.zoho_invoice_id && !deletedInvoices.includes(meta.zoho_invoice_id)) {
|
|
1216
|
+
await zoho.deleteInvoice(meta.zoho_invoice_id).catch(() => { });
|
|
1217
|
+
deletedInvoices.push(meta.zoho_invoice_id);
|
|
1218
|
+
}
|
|
1219
|
+
if (meta.zoho_estimate_id && !deletedEstimates.includes(meta.zoho_estimate_id)) {
|
|
1220
|
+
await zoho.deleteEstimate(meta.zoho_estimate_id).catch(() => { });
|
|
1221
|
+
deletedEstimates.push(meta.zoho_estimate_id);
|
|
1222
|
+
}
|
|
1223
|
+
if (meta.zoho_payment_id && !deletedPayments.includes(meta.zoho_payment_id)) {
|
|
1224
|
+
await zoho.deletePayment(meta.zoho_payment_id).catch(() => { });
|
|
1225
|
+
deletedPayments.push(meta.zoho_payment_id);
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1228
|
+
delete meta.document_id;
|
|
1229
|
+
delete meta.pdf_url;
|
|
1230
|
+
delete meta.short_pdf_link;
|
|
1231
|
+
delete meta.zoho_invoice_id;
|
|
1232
|
+
delete meta.zoho_estimate_id;
|
|
1233
|
+
delete meta.zoho_payment_id;
|
|
1234
|
+
delete meta.last_document_type;
|
|
1235
|
+
delete meta.last_document_title;
|
|
1236
|
+
await conn("repair_ticket").where({ id: repairTicketId }).update({
|
|
1237
|
+
metadata: JSON.stringify(meta),
|
|
1238
|
+
updated_at: new Date(),
|
|
1239
|
+
});
|
|
1240
|
+
}
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
catch (_) { }
|
|
1245
|
+
// 5. Delete document records in database
|
|
1246
|
+
let deletedCount = 0;
|
|
1247
|
+
for (const record of records) {
|
|
1248
|
+
try {
|
|
1249
|
+
await this.deleteDocumentRecords(record.id, sharedContext);
|
|
1250
|
+
deletedCount++;
|
|
1251
|
+
}
|
|
1252
|
+
catch (_) {
|
|
1253
|
+
const conn = getDatabaseConnection(container) || getDatabaseConnection(this.__container__);
|
|
1254
|
+
if (conn) {
|
|
1255
|
+
await conn("document_record").where({ id: record.id }).delete();
|
|
1256
|
+
deletedCount++;
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
return {
|
|
1261
|
+
deleted_records: deletedCount,
|
|
1262
|
+
deleted_zoho_invoices: deletedInvoices,
|
|
1263
|
+
deleted_zoho_estimates: deletedEstimates,
|
|
1264
|
+
deleted_zoho_payments: deletedPayments,
|
|
1265
|
+
};
|
|
1266
|
+
}
|
|
904
1267
|
}
|
|
905
1268
|
exports.DocumentModuleService = DocumentModuleService;
|
|
906
1269
|
exports.default = DocumentModuleService;
|
|
907
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RvY3VtZW50cy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThDQSxzREFpRkM7QUFLRCxzREFhQztBQWpKRCxxREFBdUc7QUFDdkcsa0VBQThEO0FBQzlELDhEQUEwRDtBQUMxRCwwREFBc0Q7QUFDdEQsMERBQTZEO0FBQzdELHNFQUEwRjtBQUMxRiwwRUFBbUU7QUFDbkUsNEVBQXdFO0FBa0N4RTs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsU0FBYztJQUNsRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQscUZBQXFGO0lBQ3JGLElBQUksQ0FBQztRQUNILElBQUksU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5RCxJQUFJLE1BQU07Z0JBQUUsT0FBTyxNQUFNLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLHdFQUF3RTtJQUN4RSxJQUFJLENBQUM7UUFDSCxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7SUFFZCxnSUFBZ0k7SUFDaEksSUFBSSxDQUFDO1FBQ0gsSUFBSSxPQUFPLFNBQVMsQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNILE1B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
|
|
1270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RvY3VtZW50cy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThDQSxzREFpRkM7QUFLRCxzREFhQztBQWpKRCxxREFBdUc7QUFDdkcsa0VBQThEO0FBQzlELDhEQUEwRDtBQUMxRCwwREFBc0Q7QUFDdEQsMERBQTZEO0FBQzdELHNFQUEwRjtBQUMxRiwwRUFBbUU7QUFDbkUsNEVBQXdFO0FBa0N4RTs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsU0FBYztJQUNsRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQscUZBQXFGO0lBQ3JGLElBQUksQ0FBQztRQUNILElBQUksU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM5RCxJQUFJLE1BQU07Z0JBQUUsT0FBTyxNQUFNLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQztJQUVkLHdFQUF3RTtJQUN4RSxJQUFJLENBQUM7UUFDSCxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7SUFFZCxnSUFBZ0k7SUFDaEksSUFBSSxDQUFDO1FBQ0gsSUFBSSxPQUFPLFNBQVMsQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNILE1B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
|