@blackcode_sa/metaestetics-api 1.15.4 → 1.15.6
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/dist/admin/index.d.mts +5 -0
- package/dist/admin/index.d.ts +5 -0
- package/dist/admin/index.js +61 -49
- package/dist/admin/index.mjs +61 -49
- package/dist/backoffice/index.d.mts +4 -0
- package/dist/backoffice/index.d.ts +4 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -1
- package/dist/index.mjs +3 -1
- package/package.json +1 -1
- package/src/admin/mailing/appointment/appointment.mailing.service.ts +28 -16
- package/src/admin/mailing/clinicWelcome/clinicWelcome.mailing.ts +3 -3
- package/src/admin/mailing/clinicWelcome/templates/welcome.template.ts +8 -8
- package/src/admin/mailing/patientInvite/patientInvite.mailing.ts +3 -3
- package/src/admin/mailing/patientInvite/templates/invitation.template.ts +3 -3
- package/src/admin/mailing/practitionerInvite/existing-practitioner-invite.mailing.ts +1 -1
- package/src/admin/mailing/practitionerInvite/practitionerInvite.mailing.ts +2 -2
- package/src/admin/mailing/practitionerInvite/templates/existing-practitioner-invitation.template.ts +4 -4
- package/src/admin/mailing/practitionerInvite/templates/invite-accepted-notification.template.ts +4 -4
- package/src/admin/mailing/practitionerInvite/templates/invite-rejected-notification.template.ts +4 -4
- package/src/types/practitioner/index.ts +2 -0
- package/src/types/procedure/index.ts +2 -0
- package/src/validations/practitioner.schema.ts +2 -0
package/dist/admin/index.d.mts
CHANGED
|
@@ -843,6 +843,8 @@ interface ProcedureSummaryInfo {
|
|
|
843
843
|
brandName?: string;
|
|
844
844
|
productName?: string;
|
|
845
845
|
price: number;
|
|
846
|
+
priceMin?: number;
|
|
847
|
+
priceMax?: number;
|
|
846
848
|
pricingMeasure: PricingMeasure;
|
|
847
849
|
currency: Currency;
|
|
848
850
|
duration: number;
|
|
@@ -1323,6 +1325,8 @@ interface PractitionerCertification {
|
|
|
1323
1325
|
issueDate: Timestamp | Date;
|
|
1324
1326
|
expiryDate?: Timestamp | Date | null;
|
|
1325
1327
|
verificationStatus: "pending" | "verified" | "rejected";
|
|
1328
|
+
diploma?: string;
|
|
1329
|
+
diplomaNumber?: string;
|
|
1326
1330
|
}
|
|
1327
1331
|
/**
|
|
1328
1332
|
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
@@ -4813,6 +4817,7 @@ declare class AppointmentMailingService extends BaseMailingService {
|
|
|
4813
4817
|
* @returns User-friendly timezone name (e.g., "Clinic Time - Europe/Zurich")
|
|
4814
4818
|
*/
|
|
4815
4819
|
private getTimezoneDisplayName;
|
|
4820
|
+
private formatClinicAddress;
|
|
4816
4821
|
sendAppointmentConfirmedEmail(data: AppointmentConfirmationEmailData): Promise<any>;
|
|
4817
4822
|
sendAppointmentRequestedEmailToClinic(data: AppointmentRequestedEmailData): Promise<any>;
|
|
4818
4823
|
/**
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -843,6 +843,8 @@ interface ProcedureSummaryInfo {
|
|
|
843
843
|
brandName?: string;
|
|
844
844
|
productName?: string;
|
|
845
845
|
price: number;
|
|
846
|
+
priceMin?: number;
|
|
847
|
+
priceMax?: number;
|
|
846
848
|
pricingMeasure: PricingMeasure;
|
|
847
849
|
currency: Currency;
|
|
848
850
|
duration: number;
|
|
@@ -1323,6 +1325,8 @@ interface PractitionerCertification {
|
|
|
1323
1325
|
issueDate: Timestamp | Date;
|
|
1324
1326
|
expiryDate?: Timestamp | Date | null;
|
|
1325
1327
|
verificationStatus: "pending" | "verified" | "rejected";
|
|
1328
|
+
diploma?: string;
|
|
1329
|
+
diplomaNumber?: string;
|
|
1326
1330
|
}
|
|
1327
1331
|
/**
|
|
1328
1332
|
* Interfejs za radno vreme zdravstvenog radnika u klinici
|
|
@@ -4813,6 +4817,7 @@ declare class AppointmentMailingService extends BaseMailingService {
|
|
|
4813
4817
|
* @returns User-friendly timezone name (e.g., "Clinic Time - Europe/Zurich")
|
|
4814
4818
|
*/
|
|
4815
4819
|
private getTimezoneDisplayName;
|
|
4820
|
+
private formatClinicAddress;
|
|
4816
4821
|
sendAppointmentConfirmedEmail(data: AppointmentConfirmationEmailData): Promise<any>;
|
|
4817
4822
|
sendAppointmentRequestedEmailToClinic(data: AppointmentRequestedEmailData): Promise<any>;
|
|
4818
4823
|
/**
|
package/dist/admin/index.js
CHANGED
|
@@ -2080,7 +2080,7 @@ var patientAppointmentConfirmedTemplate = `
|
|
|
2080
2080
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
2081
2081
|
<tr>
|
|
2082
2082
|
<td>
|
|
2083
|
-
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">
|
|
2083
|
+
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">Metaesthetics</h1>
|
|
2084
2084
|
</td>
|
|
2085
2085
|
</tr>
|
|
2086
2086
|
</table>
|
|
@@ -2138,6 +2138,7 @@ var patientAppointmentConfirmedTemplate = `
|
|
|
2138
2138
|
<td>
|
|
2139
2139
|
<p style="margin: 0 0 2px 0; font-size: 11px; color: #868686; text-transform: uppercase; letter-spacing: 0.5px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Location</p>
|
|
2140
2140
|
<p style="margin: 0; font-size: 15px; color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">{{clinicName}}</p>
|
|
2141
|
+
<p style="margin: 4px 0 0 0; font-size: 13px; color: #555555; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">{{clinicAddress}}</p>
|
|
2141
2142
|
</td>
|
|
2142
2143
|
</tr>
|
|
2143
2144
|
</table>
|
|
@@ -2158,7 +2159,7 @@ var patientAppointmentConfirmedTemplate = `
|
|
|
2158
2159
|
<td style="padding: 20px 24px; background-color: #faf9f7; border-left: 3px solid #a48a76;">
|
|
2159
2160
|
<p style="margin: 0 0 8px 0; font-size: 13px; font-weight: 600; color: #67574A; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Before Your Visit</p>
|
|
2160
2161
|
<p style="margin: 0; font-size: 14px; color: #555555; line-height: 1.6; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
|
|
2161
|
-
Please arrive 15 minutes early. If you need to reschedule or cancel, contact us through the
|
|
2162
|
+
Please arrive 15 minutes early. If you need to reschedule or cancel, contact us through the Metaesthetics app.
|
|
2162
2163
|
</p>
|
|
2163
2164
|
</td>
|
|
2164
2165
|
</tr>
|
|
@@ -2180,7 +2181,7 @@ var patientAppointmentConfirmedTemplate = `
|
|
|
2180
2181
|
<td>
|
|
2181
2182
|
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #67574A; font-family: Georgia, 'Times New Roman', serif;">{{clinicName}}</p>
|
|
2182
2183
|
<p style="margin: 0 0 16px 0; font-size: 13px; color: #868686; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Premium Aesthetic Services</p>
|
|
2183
|
-
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from
|
|
2184
|
+
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from Metaesthetics. Please do not reply directly to this email.</p>
|
|
2184
2185
|
</td>
|
|
2185
2186
|
</tr>
|
|
2186
2187
|
</table>
|
|
@@ -2332,7 +2333,7 @@ var clinicAppointmentRequestedTemplate = `
|
|
|
2332
2333
|
<body>
|
|
2333
2334
|
<div class="email-container">
|
|
2334
2335
|
<div class="header">
|
|
2335
|
-
<div class="logo">
|
|
2336
|
+
<div class="logo">Metaesthetics</div>
|
|
2336
2337
|
<h1>New Appointment Request</h1>
|
|
2337
2338
|
<div class="subtitle">Requires Your Attention</div>
|
|
2338
2339
|
</div>
|
|
@@ -2385,7 +2386,7 @@ var clinicAppointmentRequestedTemplate = `
|
|
|
2385
2386
|
|
|
2386
2387
|
<div class="footer">
|
|
2387
2388
|
<p style="margin: 0 0 10px 0;">
|
|
2388
|
-
<strong>
|
|
2389
|
+
<strong>Metaesthetics</strong> - Premium Aesthetic Services
|
|
2389
2390
|
</p>
|
|
2390
2391
|
<p style="margin: 0; font-size: 12px; color: #999;">
|
|
2391
2392
|
This is an automated message. Please do not reply to this email.
|
|
@@ -2424,7 +2425,7 @@ var appointmentCancelledTemplate = `
|
|
|
2424
2425
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
2425
2426
|
<tr>
|
|
2426
2427
|
<td>
|
|
2427
|
-
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">
|
|
2428
|
+
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">Metaesthetics</h1>
|
|
2428
2429
|
</td>
|
|
2429
2430
|
</tr>
|
|
2430
2431
|
</table>
|
|
@@ -2508,6 +2509,7 @@ var appointmentCancelledTemplate = `
|
|
|
2508
2509
|
<td>
|
|
2509
2510
|
<p style="margin: 0 0 2px 0; font-size: 11px; color: #999999; text-transform: uppercase; letter-spacing: 0.5px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Location</p>
|
|
2510
2511
|
<p style="margin: 0; font-size: 15px; color: #888888; text-decoration: line-through; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">{{clinicName}}</p>
|
|
2512
|
+
<p style="margin: 4px 0 0 0; font-size: 13px; color: #999999; text-decoration: line-through; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">{{clinicAddress}}</p>
|
|
2511
2513
|
</td>
|
|
2512
2514
|
</tr>
|
|
2513
2515
|
</table>
|
|
@@ -2528,7 +2530,7 @@ var appointmentCancelledTemplate = `
|
|
|
2528
2530
|
<td style="padding: 24px;">
|
|
2529
2531
|
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 600; color: #00BB38; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Book a New Appointment</p>
|
|
2530
2532
|
<p style="margin: 0; font-size: 14px; color: #555555; line-height: 1.6; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
|
|
2531
|
-
We'd love to see you again. Open the
|
|
2533
|
+
We'd love to see you again. Open the Metaesthetics app to browse available times and book a new appointment.
|
|
2532
2534
|
</p>
|
|
2533
2535
|
</td>
|
|
2534
2536
|
</tr>
|
|
@@ -2536,7 +2538,7 @@ var appointmentCancelledTemplate = `
|
|
|
2536
2538
|
|
|
2537
2539
|
<!-- Support Info -->
|
|
2538
2540
|
<p style="margin: 0; font-size: 13px; color: #868686; line-height: 1.7; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
|
|
2539
|
-
If you have any questions about this cancellation, please contact {{clinicName}} through the
|
|
2541
|
+
If you have any questions about this cancellation, please contact {{clinicName}} through the Metaesthetics app.
|
|
2540
2542
|
</p>
|
|
2541
2543
|
|
|
2542
2544
|
</td>
|
|
@@ -2550,7 +2552,7 @@ var appointmentCancelledTemplate = `
|
|
|
2550
2552
|
<td>
|
|
2551
2553
|
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #67574A; font-family: Georgia, 'Times New Roman', serif;">{{clinicName}}</p>
|
|
2552
2554
|
<p style="margin: 0 0 16px 0; font-size: 13px; color: #868686; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Premium Aesthetic Services</p>
|
|
2553
|
-
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from
|
|
2555
|
+
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from Metaesthetics. Please do not reply directly to this email.</p>
|
|
2554
2556
|
</td>
|
|
2555
2557
|
</tr>
|
|
2556
2558
|
</table>
|
|
@@ -2593,7 +2595,7 @@ var appointmentRescheduledProposalTemplate = `
|
|
|
2593
2595
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
2594
2596
|
<tr>
|
|
2595
2597
|
<td>
|
|
2596
|
-
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">
|
|
2598
|
+
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">Metaesthetics</h1>
|
|
2597
2599
|
</td>
|
|
2598
2600
|
</tr>
|
|
2599
2601
|
</table>
|
|
@@ -2678,7 +2680,7 @@ var appointmentRescheduledProposalTemplate = `
|
|
|
2678
2680
|
<td style="padding: 28px;">
|
|
2679
2681
|
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 600; color: #67574A; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">How to Respond</p>
|
|
2680
2682
|
<p style="margin: 0; font-size: 14px; color: #555555; line-height: 1.6; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
|
|
2681
|
-
Open the
|
|
2683
|
+
Open the Metaesthetics app to accept or decline this reschedule request. Your appointment will remain pending until you respond.
|
|
2682
2684
|
</p>
|
|
2683
2685
|
</td>
|
|
2684
2686
|
</tr>
|
|
@@ -2700,7 +2702,7 @@ var appointmentRescheduledProposalTemplate = `
|
|
|
2700
2702
|
<td>
|
|
2701
2703
|
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #67574A; font-family: Georgia, 'Times New Roman', serif;">{{clinicName}}</p>
|
|
2702
2704
|
<p style="margin: 0 0 16px 0; font-size: 13px; color: #868686; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Premium Aesthetic Services</p>
|
|
2703
|
-
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from
|
|
2705
|
+
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from Metaesthetics. Please do not reply directly to this email.</p>
|
|
2704
2706
|
</td>
|
|
2705
2707
|
</tr>
|
|
2706
2708
|
</table>
|
|
@@ -2776,6 +2778,13 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
2776
2778
|
return `Clinic Time - ${timezone}`;
|
|
2777
2779
|
}
|
|
2778
2780
|
}
|
|
2781
|
+
formatClinicAddress(appointment) {
|
|
2782
|
+
var _a;
|
|
2783
|
+
const loc = (_a = appointment.clinicInfo) == null ? void 0 : _a.location;
|
|
2784
|
+
if (!loc) return "";
|
|
2785
|
+
const parts = [loc.address, loc.postalCode, loc.city, loc.country].filter(Boolean);
|
|
2786
|
+
return parts.join(", ");
|
|
2787
|
+
}
|
|
2779
2788
|
async sendAppointmentConfirmedEmail(data) {
|
|
2780
2789
|
var _a, _b, _c, _d, _e;
|
|
2781
2790
|
Logger.info(
|
|
@@ -2810,11 +2819,12 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
2810
2819
|
),
|
|
2811
2820
|
appointmentTime: `${formattedTime} (${timezoneName})`,
|
|
2812
2821
|
practitionerName: data.appointment.practitionerInfo.name,
|
|
2813
|
-
clinicName: data.appointment.clinicInfo.name
|
|
2822
|
+
clinicName: data.appointment.clinicInfo.name,
|
|
2823
|
+
clinicAddress: this.formatClinicAddress(data.appointment)
|
|
2814
2824
|
};
|
|
2815
2825
|
const html = this.renderTemplate(patientAppointmentConfirmedTemplate, templateVariables);
|
|
2816
2826
|
const subject = ((_a = data.options) == null ? void 0 : _a.customSubject) || "Your Appointment is Confirmed!";
|
|
2817
|
-
const fromAddress = ((_b = data.options) == null ? void 0 : _b.fromAddress) || `
|
|
2827
|
+
const fromAddress = ((_b = data.options) == null ? void 0 : _b.fromAddress) || `Metaesthetics <no-reply@${((_c = data.options) == null ? void 0 : _c.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
2818
2828
|
const domainToSendFrom = ((_d = data.options) == null ? void 0 : _d.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN;
|
|
2819
2829
|
const mailgunSendData = {
|
|
2820
2830
|
to: recipientEmail,
|
|
@@ -2880,7 +2890,7 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
2880
2890
|
};
|
|
2881
2891
|
const html = this.renderTemplate(clinicAppointmentRequestedTemplate, templateVariables);
|
|
2882
2892
|
const subject = ((_b = data.options) == null ? void 0 : _b.customSubject) || "New Appointment Request Received";
|
|
2883
|
-
const fromAddress = ((_c = data.options) == null ? void 0 : _c.fromAddress) || `
|
|
2893
|
+
const fromAddress = ((_c = data.options) == null ? void 0 : _c.fromAddress) || `Metaesthetics <no-reply@${((_d = data.options) == null ? void 0 : _d.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
2884
2894
|
const domainToSendFrom = ((_e = data.options) == null ? void 0 : _e.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN;
|
|
2885
2895
|
const mailgunSendData = {
|
|
2886
2896
|
to: clinicEmail,
|
|
@@ -2978,6 +2988,7 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
2978
2988
|
appointmentTime: `${formattedTime} (${timezoneName})`,
|
|
2979
2989
|
practitionerName: data.appointment.practitionerInfo.name,
|
|
2980
2990
|
clinicName: data.appointment.clinicInfo.name,
|
|
2991
|
+
clinicAddress: this.formatClinicAddress(data.appointment),
|
|
2981
2992
|
cancelledByDisplay
|
|
2982
2993
|
};
|
|
2983
2994
|
const cancellationReason = data.cancellationReason || data.appointment.cancellationReason;
|
|
@@ -2993,7 +3004,7 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
2993
3004
|
}
|
|
2994
3005
|
html = this.renderTemplate(html, templateVariables);
|
|
2995
3006
|
const subject = ((_a = data.options) == null ? void 0 : _a.customSubject) || `Appointment Cancelled: ${data.appointment.procedureInfo.name}`;
|
|
2996
|
-
const fromAddress = ((_b = data.options) == null ? void 0 : _b.fromAddress) || `
|
|
3007
|
+
const fromAddress = ((_b = data.options) == null ? void 0 : _b.fromAddress) || `Metaesthetics <no-reply@${((_c = data.options) == null ? void 0 : _c.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
2997
3008
|
const domainToSendFrom = ((_d = data.options) == null ? void 0 : _d.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN;
|
|
2998
3009
|
const mailgunSendData = {
|
|
2999
3010
|
to: recipientEmail,
|
|
@@ -3078,6 +3089,7 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
3078
3089
|
procedureName: data.appointment.procedureInfo.name,
|
|
3079
3090
|
practitionerName: data.appointment.practitionerInfo.name,
|
|
3080
3091
|
clinicName: data.appointment.clinicInfo.name,
|
|
3092
|
+
clinicAddress: this.formatClinicAddress(data.appointment),
|
|
3081
3093
|
previousDate: previousFormattedDate,
|
|
3082
3094
|
previousTime: `${previousFormattedTime} (${previousTimezoneName})`,
|
|
3083
3095
|
newDate: newFormattedDate,
|
|
@@ -3085,7 +3097,7 @@ var AppointmentMailingService = class extends BaseMailingService {
|
|
|
3085
3097
|
};
|
|
3086
3098
|
const html = this.renderTemplate(appointmentRescheduledProposalTemplate, templateVariables);
|
|
3087
3099
|
const subject = ((_a = data.options) == null ? void 0 : _a.customSubject) || `Action Required: Reschedule Proposal for Your ${data.appointment.procedureInfo.name} Appointment`;
|
|
3088
|
-
const fromAddress = ((_b = data.options) == null ? void 0 : _b.fromAddress) || `
|
|
3100
|
+
const fromAddress = ((_b = data.options) == null ? void 0 : _b.fromAddress) || `Metaesthetics <no-reply@${((_c = data.options) == null ? void 0 : _c.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
3089
3101
|
const domainToSendFrom = ((_d = data.options) == null ? void 0 : _d.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN;
|
|
3090
3102
|
const mailgunSendData = {
|
|
3091
3103
|
to: recipientEmail,
|
|
@@ -12570,7 +12582,7 @@ var PractitionerInviteMailingService = class extends BaseMailingService {
|
|
|
12570
12582
|
const contactName = data.clinic.contactName || "Clinic Administrator";
|
|
12571
12583
|
const contactEmail = data.clinic.contactEmail;
|
|
12572
12584
|
const subject = ((_b = data.options) == null ? void 0 : _b.customSubject) || this.DEFAULT_SUBJECT;
|
|
12573
|
-
const fromAddress = ((_c = data.options) == null ? void 0 : _c.fromAddress) || `
|
|
12585
|
+
const fromAddress = ((_c = data.options) == null ? void 0 : _c.fromAddress) || `Metaesthetics <no-reply@${((_d = data.options) == null ? void 0 : _d.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
12574
12586
|
const currentYear = (/* @__PURE__ */ new Date()).getFullYear().toString();
|
|
12575
12587
|
const practitionerName = `${data.practitioner.firstName} ${data.practitioner.lastName}`;
|
|
12576
12588
|
const templateVariables = {
|
|
@@ -12730,7 +12742,7 @@ var PractitionerInviteMailingService = class extends BaseMailingService {
|
|
|
12730
12742
|
Logger.warn(
|
|
12731
12743
|
"[PractitionerInviteMailingService] No fromAddress provided, using default"
|
|
12732
12744
|
);
|
|
12733
|
-
mailgunConfig.fromAddress = `
|
|
12745
|
+
mailgunConfig.fromAddress = `Metaesthetics <no-reply@${this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
12734
12746
|
}
|
|
12735
12747
|
const emailData = {
|
|
12736
12748
|
token: {
|
|
@@ -12876,7 +12888,7 @@ var existingPractitionerInvitationTemplate = `
|
|
|
12876
12888
|
<body>
|
|
12877
12889
|
<div class="container">
|
|
12878
12890
|
<div class="header">
|
|
12879
|
-
<div class="logo">
|
|
12891
|
+
<div class="logo">Metaesthetics</div>
|
|
12880
12892
|
<p>Professional Medical Network</p>
|
|
12881
12893
|
</div>
|
|
12882
12894
|
|
|
@@ -12920,12 +12932,12 @@ var existingPractitionerInvitationTemplate = `
|
|
|
12920
12932
|
|
|
12921
12933
|
<div class="footer">
|
|
12922
12934
|
<p>Best regards,<br>
|
|
12923
|
-
<strong>The
|
|
12935
|
+
<strong>The Metaesthetics Team</strong></p>
|
|
12924
12936
|
<p>This invitation will expire on {{expirationDate}}. Please respond before this date.</p>
|
|
12925
12937
|
<hr>
|
|
12926
12938
|
<p style="font-size: 12px; color: #999;">
|
|
12927
|
-
This is an automated message from
|
|
12928
|
-
<br>\xA9 {{currentYear}}
|
|
12939
|
+
This is an automated message from Metaesthetics. If you received this email in error, please ignore it.
|
|
12940
|
+
<br>\xA9 {{currentYear}} Metaesthetics. All rights reserved.
|
|
12929
12941
|
</p>
|
|
12930
12942
|
</div>
|
|
12931
12943
|
</div>
|
|
@@ -13080,7 +13092,7 @@ var inviteAcceptedNotificationTemplate = `
|
|
|
13080
13092
|
<body>
|
|
13081
13093
|
<div class="container">
|
|
13082
13094
|
<div class="header">
|
|
13083
|
-
<div class="logo">
|
|
13095
|
+
<div class="logo">Metaesthetics</div>
|
|
13084
13096
|
<p>Clinic Management System</p>
|
|
13085
13097
|
</div>
|
|
13086
13098
|
|
|
@@ -13147,11 +13159,11 @@ var inviteAcceptedNotificationTemplate = `
|
|
|
13147
13159
|
|
|
13148
13160
|
<div class="footer">
|
|
13149
13161
|
<p>Best regards,<br>
|
|
13150
|
-
<strong>The
|
|
13162
|
+
<strong>The Metaesthetics Team</strong></p>
|
|
13151
13163
|
<hr>
|
|
13152
13164
|
<p style="font-size: 12px; color: #999;">
|
|
13153
|
-
This is an automated notification from
|
|
13154
|
-
<br>\xA9 {{currentYear}}
|
|
13165
|
+
This is an automated notification from Metaesthetics.
|
|
13166
|
+
<br>\xA9 {{currentYear}} Metaesthetics. All rights reserved.
|
|
13155
13167
|
</p>
|
|
13156
13168
|
</div>
|
|
13157
13169
|
</div>
|
|
@@ -13316,7 +13328,7 @@ var inviteRejectedNotificationTemplate = `
|
|
|
13316
13328
|
<body>
|
|
13317
13329
|
<div class="container">
|
|
13318
13330
|
<div class="header">
|
|
13319
|
-
<div class="logo">
|
|
13331
|
+
<div class="logo">Metaesthetics</div>
|
|
13320
13332
|
<p>Clinic Management System</p>
|
|
13321
13333
|
</div>
|
|
13322
13334
|
|
|
@@ -13384,11 +13396,11 @@ var inviteRejectedNotificationTemplate = `
|
|
|
13384
13396
|
|
|
13385
13397
|
<div class="footer">
|
|
13386
13398
|
<p>Best regards,<br>
|
|
13387
|
-
<strong>The
|
|
13399
|
+
<strong>The Metaesthetics Team</strong></p>
|
|
13388
13400
|
<hr>
|
|
13389
13401
|
<p style="font-size: 12px; color: #999;">
|
|
13390
|
-
This is an automated notification from
|
|
13391
|
-
<br>\xA9 {{currentYear}}
|
|
13402
|
+
This is an automated notification from Metaesthetics.
|
|
13403
|
+
<br>\xA9 {{currentYear}} Metaesthetics. All rights reserved.
|
|
13392
13404
|
</p>
|
|
13393
13405
|
<p style="font-size: 12px; color: #999;">
|
|
13394
13406
|
<strong>Note:</strong> Practitioner contact information is not shared without their consent.
|
|
@@ -13409,7 +13421,7 @@ var ExistingPractitionerInviteMailingService = class extends BaseMailingService
|
|
|
13409
13421
|
constructor(firestore19, mailgunClient) {
|
|
13410
13422
|
super(firestore19, mailgunClient);
|
|
13411
13423
|
this.DEFAULT_MAILGUN_DOMAIN = "mg.metaesthetics.net";
|
|
13412
|
-
this.DEFAULT_FROM_ADDRESS = "
|
|
13424
|
+
this.DEFAULT_FROM_ADDRESS = "Metaesthetics <no-reply@mg.metaesthetics.net>";
|
|
13413
13425
|
}
|
|
13414
13426
|
/**
|
|
13415
13427
|
* Sends an invitation email to an existing practitioner
|
|
@@ -13838,7 +13850,7 @@ var patientInvitationTemplate = `
|
|
|
13838
13850
|
<body>
|
|
13839
13851
|
<div class="container">
|
|
13840
13852
|
<div class="header">
|
|
13841
|
-
<h1>Welcome to
|
|
13853
|
+
<h1>Welcome to Metaesthetics</h1>
|
|
13842
13854
|
</div>
|
|
13843
13855
|
<div class="content">
|
|
13844
13856
|
<p>Hello {{patientName}},</p>
|
|
@@ -13865,7 +13877,7 @@ var patientInvitationTemplate = `
|
|
|
13865
13877
|
|
|
13866
13878
|
<p>To create your account:</p>
|
|
13867
13879
|
<ol>
|
|
13868
|
-
<li>Download the <strong>
|
|
13880
|
+
<li>Download the <strong>Metaesthetics</strong> app from the App Store (iOS) or Google Play Store (Android)</li>
|
|
13869
13881
|
<li>Open the app and create an account using your email address</li>
|
|
13870
13882
|
<li>When prompted, enter the token shown above</li>
|
|
13871
13883
|
<li>Your profile will be automatically linked to your new account</li>
|
|
@@ -13875,7 +13887,7 @@ var patientInvitationTemplate = `
|
|
|
13875
13887
|
</div>
|
|
13876
13888
|
<div class="footer">
|
|
13877
13889
|
<p>This is an automated message from {{clinicName}}. Please do not reply to this email.</p>
|
|
13878
|
-
<p>© {{currentYear}}
|
|
13890
|
+
<p>© {{currentYear}} Metaesthetics. All rights reserved.</p>
|
|
13879
13891
|
</div>
|
|
13880
13892
|
</div>
|
|
13881
13893
|
</body>
|
|
@@ -13892,7 +13904,7 @@ var PatientInviteMailingService = class extends BaseMailingService {
|
|
|
13892
13904
|
constructor(firestore19, mailgunClient) {
|
|
13893
13905
|
super(firestore19, mailgunClient);
|
|
13894
13906
|
this.DEFAULT_REGISTRATION_URL = "https://metaesthetics.net/patient/register";
|
|
13895
|
-
this.DEFAULT_SUBJECT = "Claim Your Patient Profile -
|
|
13907
|
+
this.DEFAULT_SUBJECT = "Claim Your Patient Profile - Metaesthetics";
|
|
13896
13908
|
this.DEFAULT_MAILGUN_DOMAIN = "mg.metaesthetics.net";
|
|
13897
13909
|
}
|
|
13898
13910
|
/**
|
|
@@ -13917,7 +13929,7 @@ var PatientInviteMailingService = class extends BaseMailingService {
|
|
|
13917
13929
|
const contactName = data.clinic.contactName || "Clinic Administrator";
|
|
13918
13930
|
const contactEmail = data.clinic.contactEmail;
|
|
13919
13931
|
const subject = ((_b = data.options) == null ? void 0 : _b.customSubject) || this.DEFAULT_SUBJECT;
|
|
13920
|
-
const fromAddress = ((_c = data.options) == null ? void 0 : _c.fromAddress) || `
|
|
13932
|
+
const fromAddress = ((_c = data.options) == null ? void 0 : _c.fromAddress) || `Metaesthetics <no-reply@${((_d = data.options) == null ? void 0 : _d.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
13921
13933
|
const currentYear = (/* @__PURE__ */ new Date()).getFullYear().toString();
|
|
13922
13934
|
const patientName = `${data.patient.firstName} ${data.patient.lastName}`;
|
|
13923
13935
|
const templateVariables = {
|
|
@@ -14087,7 +14099,7 @@ var PatientInviteMailingService = class extends BaseMailingService {
|
|
|
14087
14099
|
Logger.warn(
|
|
14088
14100
|
"[PatientInviteMailingService] No fromAddress provided, using default"
|
|
14089
14101
|
);
|
|
14090
|
-
mailgunConfig.fromAddress = `
|
|
14102
|
+
mailgunConfig.fromAddress = `Metaesthetics <no-reply@${this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
14091
14103
|
}
|
|
14092
14104
|
const emailData = {
|
|
14093
14105
|
token: {
|
|
@@ -14143,7 +14155,7 @@ var clinicWelcomeTemplate = `
|
|
|
14143
14155
|
<head>
|
|
14144
14156
|
<meta charset="UTF-8">
|
|
14145
14157
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
14146
|
-
<title>Welcome to
|
|
14158
|
+
<title>Welcome to Metaesthetics</title>
|
|
14147
14159
|
<!--[if mso]>
|
|
14148
14160
|
<noscript>
|
|
14149
14161
|
<xml>
|
|
@@ -14166,7 +14178,7 @@ var clinicWelcomeTemplate = `
|
|
|
14166
14178
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
14167
14179
|
<tr>
|
|
14168
14180
|
<td>
|
|
14169
|
-
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">
|
|
14181
|
+
<h1 style="margin: 0; font-size: 24px; font-weight: 400; color: #67574A; letter-spacing: 2px; text-transform: uppercase; font-family: Georgia, 'Times New Roman', serif;">Metaesthetics</h1>
|
|
14170
14182
|
</td>
|
|
14171
14183
|
</tr>
|
|
14172
14184
|
</table>
|
|
@@ -14179,7 +14191,7 @@ var clinicWelcomeTemplate = `
|
|
|
14179
14191
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color: #00BB38;">
|
|
14180
14192
|
<tr>
|
|
14181
14193
|
<td style="padding: 20px 48px;">
|
|
14182
|
-
<p style="margin: 0; font-size: 13px; font-weight: 600; color: #ffffff; letter-spacing: 1.5px; text-transform: uppercase; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Welcome to
|
|
14194
|
+
<p style="margin: 0; font-size: 13px; font-weight: 600; color: #ffffff; letter-spacing: 1.5px; text-transform: uppercase; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Welcome to Metaesthetics</p>
|
|
14183
14195
|
</td>
|
|
14184
14196
|
</tr>
|
|
14185
14197
|
</table>
|
|
@@ -14196,7 +14208,7 @@ var clinicWelcomeTemplate = `
|
|
|
14196
14208
|
</p>
|
|
14197
14209
|
|
|
14198
14210
|
<p style="margin: 0 0 32px 0; font-size: 16px; color: #555555; line-height: 1.7; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
|
|
14199
|
-
Thank you for registering <strong style="color: #67574A;">{{clinicGroupName}}</strong> with
|
|
14211
|
+
Thank you for registering <strong style="color: #67574A;">{{clinicGroupName}}</strong> with Metaesthetics. Your account has been successfully created and you're now ready to start managing your aesthetic practice.
|
|
14200
14212
|
</p>
|
|
14201
14213
|
|
|
14202
14214
|
<!-- Account Details Card -->
|
|
@@ -14319,7 +14331,7 @@ var clinicWelcomeTemplate = `
|
|
|
14319
14331
|
|
|
14320
14332
|
<!-- Thank You -->
|
|
14321
14333
|
<p style="margin: 0; font-size: 14px; color: #868686; line-height: 1.7; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">
|
|
14322
|
-
Thank you for choosing
|
|
14334
|
+
Thank you for choosing Metaesthetics. We look forward to supporting your practice.
|
|
14323
14335
|
</p>
|
|
14324
14336
|
|
|
14325
14337
|
</td>
|
|
@@ -14331,9 +14343,9 @@ var clinicWelcomeTemplate = `
|
|
|
14331
14343
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
14332
14344
|
<tr>
|
|
14333
14345
|
<td>
|
|
14334
|
-
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #67574A; font-family: Georgia, 'Times New Roman', serif;">
|
|
14346
|
+
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #67574A; font-family: Georgia, 'Times New Roman', serif;">Metaesthetics</p>
|
|
14335
14347
|
<p style="margin: 0 0 16px 0; font-size: 13px; color: #868686; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">Premium Aesthetic Services Platform</p>
|
|
14336
|
-
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from
|
|
14348
|
+
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">This is an automated message from Metaesthetics. Please do not reply directly to this email.</p>
|
|
14337
14349
|
</td>
|
|
14338
14350
|
</tr>
|
|
14339
14351
|
</table>
|
|
@@ -14346,7 +14358,7 @@ var clinicWelcomeTemplate = `
|
|
|
14346
14358
|
<table role="presentation" width="600" cellspacing="0" cellpadding="0" border="0" style="max-width: 600px;">
|
|
14347
14359
|
<tr>
|
|
14348
14360
|
<td style="padding: 24px 48px; text-align: center;">
|
|
14349
|
-
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">© {{currentYear}}
|
|
14361
|
+
<p style="margin: 0; font-size: 11px; color: #aaaaaa; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">© {{currentYear}} Metaesthetics. All rights reserved.</p>
|
|
14350
14362
|
</td>
|
|
14351
14363
|
</tr>
|
|
14352
14364
|
</table>
|
|
@@ -14369,7 +14381,7 @@ var ClinicWelcomeMailingService = class extends BaseMailingService {
|
|
|
14369
14381
|
super(firestore19, mailgunClient);
|
|
14370
14382
|
this.DEFAULT_DASHBOARD_URL = "https://app.metaesthetics.net/dashboard";
|
|
14371
14383
|
this.DEFAULT_SUPPORT_EMAIL = "support@metaesthetics.net";
|
|
14372
|
-
this.DEFAULT_SUBJECT = "Welcome to
|
|
14384
|
+
this.DEFAULT_SUBJECT = "Welcome to Metaesthetics - Your Clinic Registration is Complete";
|
|
14373
14385
|
this.DEFAULT_MAILGUN_DOMAIN = "mg.metaesthetics.net";
|
|
14374
14386
|
}
|
|
14375
14387
|
/**
|
|
@@ -14393,7 +14405,7 @@ var ClinicWelcomeMailingService = class extends BaseMailingService {
|
|
|
14393
14405
|
const dashboardUrl = ((_a = data.options) == null ? void 0 : _a.dashboardUrl) || this.DEFAULT_DASHBOARD_URL;
|
|
14394
14406
|
const supportEmail = ((_b = data.options) == null ? void 0 : _b.supportEmail) || this.DEFAULT_SUPPORT_EMAIL;
|
|
14395
14407
|
const subject = ((_c = data.options) == null ? void 0 : _c.customSubject) || this.DEFAULT_SUBJECT;
|
|
14396
|
-
const fromAddress = ((_d = data.options) == null ? void 0 : _d.fromAddress) || `
|
|
14408
|
+
const fromAddress = ((_d = data.options) == null ? void 0 : _d.fromAddress) || `Metaesthetics <no-reply@${((_e = data.options) == null ? void 0 : _e.mailgunDomain) || this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
14397
14409
|
const currentYear = (/* @__PURE__ */ new Date()).getFullYear().toString();
|
|
14398
14410
|
const templateVariables = {
|
|
14399
14411
|
adminName: data.admin.name,
|
|
@@ -14494,7 +14506,7 @@ var ClinicWelcomeMailingService = class extends BaseMailingService {
|
|
|
14494
14506
|
Logger.warn(
|
|
14495
14507
|
"[ClinicWelcomeMailingService] No fromAddress provided, using default"
|
|
14496
14508
|
);
|
|
14497
|
-
mailgunConfig.fromAddress = `
|
|
14509
|
+
mailgunConfig.fromAddress = `Metaesthetics <no-reply@${this.DEFAULT_MAILGUN_DOMAIN}>`;
|
|
14498
14510
|
}
|
|
14499
14511
|
const emailData = {
|
|
14500
14512
|
admin: {
|