@dev.smartpricing/message-composer-utils 4.2.8 → 4.2.9-toast.1
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/types/brand.js +20 -0
- package/dist/types/brand.js.map +1 -1
- package/dist/types/emailblocks.v1.js +3 -3
- package/dist/types/emailblocks.v1.js.map +1 -1
- package/dist/types/message.js +2 -1
- package/dist/types/message.js.map +1 -1
- package/dist/utils/templates/brand-cascade.js +15 -1
- package/dist/utils/templates/brand-cascade.js.map +1 -1
- package/package.json +1 -1
- package/src/types/brand.ts +26 -0
- package/src/types/emailblocks.v1.ts +3 -3
- package/src/types/message.ts +2 -0
- package/src/utils/templates/brand-cascade.ts +28 -1
package/dist/types/brand.js
CHANGED
|
@@ -18,6 +18,25 @@ export const brandSocialsSchema = z
|
|
|
18
18
|
.record(z.string(), z.string())
|
|
19
19
|
.nullable()
|
|
20
20
|
.optional();
|
|
21
|
+
/** Brand contact/footer data. All fields optional — only set fields are used. */
|
|
22
|
+
export const brandDataSchema = z.object({
|
|
23
|
+
name: z.string().optional(),
|
|
24
|
+
address: z.string().optional(),
|
|
25
|
+
telephone: z.string().optional(),
|
|
26
|
+
email: z.string().optional(),
|
|
27
|
+
website: z.string().optional(),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Maps brand.data fields to the corresponding property_* variable names.
|
|
31
|
+
* Used at compile time to resolve brand_* fallbacks.
|
|
32
|
+
*/
|
|
33
|
+
export const BRAND_DATA_TO_PROPERTY_MAP = {
|
|
34
|
+
name: "property_name",
|
|
35
|
+
address: "property_address",
|
|
36
|
+
telephone: "property_telephone",
|
|
37
|
+
email: "property_email",
|
|
38
|
+
website: "property_website",
|
|
39
|
+
};
|
|
21
40
|
export const brandBodySchema = z.object({
|
|
22
41
|
name: z.string().min(1),
|
|
23
42
|
organization_id: z.uuid().nullable().optional(),
|
|
@@ -26,6 +45,7 @@ export const brandBodySchema = z.object({
|
|
|
26
45
|
default_email_settings: brandDefaultEmailSettingsSchema.optional(),
|
|
27
46
|
default_button_settings: brandDefaultButtonSettingsSchema.optional(),
|
|
28
47
|
default_socials: brandSocialsSchema,
|
|
48
|
+
data: brandDataSchema.optional(),
|
|
29
49
|
property_ids: z.array(z.uuid()).optional(),
|
|
30
50
|
});
|
|
31
51
|
export const brandUpdateSchema = brandBodySchema.partial();
|
package/dist/types/brand.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/types/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KAC9B,QAAQ,EAAE;KACV,QAAQ,EAAE,CAAC;AAId,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,sBAAsB,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IAClE,uBAAuB,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IACpE,eAAe,EAAE,kBAAkB;IACnC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/types/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KAC9B,QAAQ,EAAE;KACV,QAAQ,EAAE,CAAC;AAId,iFAAiF;AACjF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAoC;IACzE,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,kBAAkB;IAC3B,SAAS,EAAE,oBAAoB;IAC/B,KAAK,EAAE,gBAAgB;IACvB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,sBAAsB,EAAE,+BAA+B,CAAC,QAAQ,EAAE;IAClE,uBAAuB,EAAE,gCAAgC,CAAC,QAAQ,EAAE;IACpE,eAAe,EAAE,kBAAkB;IACnC,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC"}
|
|
@@ -187,14 +187,14 @@ export function emptyFooterBlock() {
|
|
|
187
187
|
{
|
|
188
188
|
type: "text",
|
|
189
189
|
marks: [{ type: "bold" }],
|
|
190
|
-
text: "{{
|
|
190
|
+
text: "{{brand_name}}",
|
|
191
191
|
},
|
|
192
192
|
],
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
type: "paragraph",
|
|
196
196
|
attrs: { textAlign: null },
|
|
197
|
-
content: [{ type: "text", text: "{{
|
|
197
|
+
content: [{ type: "text", text: "{{brand_address}}" }],
|
|
198
198
|
},
|
|
199
199
|
{
|
|
200
200
|
type: "paragraph",
|
|
@@ -202,7 +202,7 @@ export function emptyFooterBlock() {
|
|
|
202
202
|
content: [
|
|
203
203
|
{
|
|
204
204
|
type: "text",
|
|
205
|
-
text: "{{
|
|
205
|
+
text: "{{brand_telephone}} / {{brand_email}} / {{brand_website}}",
|
|
206
206
|
},
|
|
207
207
|
],
|
|
208
208
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailblocks.v1.js","sourceRoot":"","sources":["../../src/types/emailblocks.v1.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"emailblocks.v1.js","sourceRoot":"","sources":["../../src/types/emailblocks.v1.ts"],"names":[],"mappings":"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"}
|
package/dist/types/message.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { brandDefaultEmailSettingsSchema, brandDefaultButtonSettingsSchema, } from "./brand.js";
|
|
2
|
+
import { brandDefaultEmailSettingsSchema, brandDefaultButtonSettingsSchema, brandDataSchema, } from "./brand.js";
|
|
3
3
|
export const MESSAGE_RENDER_TYPES = ["whatsapp_v1", "email_v1"];
|
|
4
4
|
export const MESSAGE_STATUS = [
|
|
5
5
|
"pending",
|
|
@@ -18,6 +18,7 @@ export const brandCascadeDataSchema = z.object({
|
|
|
18
18
|
default_button_settings: brandDefaultButtonSettingsSchema,
|
|
19
19
|
default_socials: z.record(z.string(), z.string()).nullable(),
|
|
20
20
|
logo_url: z.string().nullable(),
|
|
21
|
+
data: brandDataSchema.optional().default({}),
|
|
21
22
|
});
|
|
22
23
|
/**
|
|
23
24
|
* Request body for previewing a message with inline data (no DB lookups).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAAa,EAAE,UAAU,CAAU,CAAC;AAGzE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,OAAO;IACP,UAAU;IACV,UAAU;CACF,CAAC;AAmDX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAU,CAAC;AA8DxE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,sBAAsB,EAAE,+BAA+B;IACvD,uBAAuB,EAAE,gCAAgC;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC5C,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;KACvD,CAAC;SACD,WAAW,EAAE;IAChB,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_EMAIL_GLOBAL_SETTINGS } from "../../types/index.js";
|
|
1
|
+
import { DEFAULT_EMAIL_GLOBAL_SETTINGS, BRAND_DATA_TO_PROPERTY_MAP, } from "../../types/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Resolves EmailGlobalSettings by cascading:
|
|
4
4
|
* generalSettings → brand → hardcoded defaults
|
|
@@ -113,4 +113,18 @@ export function resolveEmailBodyWithBrand(body, brand) {
|
|
|
113
113
|
settings: resolveEmailSettings(body.settings, brand),
|
|
114
114
|
};
|
|
115
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Merge brand_* variables into a parameters map.
|
|
118
|
+
* For each brand.data field, resolves brand_<field> as:
|
|
119
|
+
* brand.data[field] → corresponding property_* from params → ""
|
|
120
|
+
*/
|
|
121
|
+
export function mergeBrandDataParams(parameters, brand) {
|
|
122
|
+
const merged = { ...parameters };
|
|
123
|
+
for (const [field, propertyKey] of Object.entries(BRAND_DATA_TO_PROPERTY_MAP)) {
|
|
124
|
+
const brandKey = `brand_${field}`;
|
|
125
|
+
const brandValue = brand?.data?.[field];
|
|
126
|
+
merged[brandKey] = brandValue || merged[propertyKey] || "";
|
|
127
|
+
}
|
|
128
|
+
return merged;
|
|
129
|
+
}
|
|
116
130
|
//# sourceMappingURL=brand-cascade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-cascade.js","sourceRoot":"","sources":["../../../src/utils/templates/brand-cascade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"brand-cascade.js","sourceRoot":"","sources":["../../../src/utils/templates/brand-cascade.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/types/brand.ts
CHANGED
|
@@ -27,6 +27,29 @@ export const brandSocialsSchema = z
|
|
|
27
27
|
|
|
28
28
|
export type BrandSocials = Partial<Record<SocialPlatform, string>>;
|
|
29
29
|
|
|
30
|
+
/** Brand contact/footer data. All fields optional — only set fields are used. */
|
|
31
|
+
export const brandDataSchema = z.object({
|
|
32
|
+
name: z.string().optional(),
|
|
33
|
+
address: z.string().optional(),
|
|
34
|
+
telephone: z.string().optional(),
|
|
35
|
+
email: z.string().optional(),
|
|
36
|
+
website: z.string().optional(),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export type BrandData = z.infer<typeof brandDataSchema>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Maps brand.data fields to the corresponding property_* variable names.
|
|
43
|
+
* Used at compile time to resolve brand_* fallbacks.
|
|
44
|
+
*/
|
|
45
|
+
export const BRAND_DATA_TO_PROPERTY_MAP: Record<keyof BrandData, string> = {
|
|
46
|
+
name: "property_name",
|
|
47
|
+
address: "property_address",
|
|
48
|
+
telephone: "property_telephone",
|
|
49
|
+
email: "property_email",
|
|
50
|
+
website: "property_website",
|
|
51
|
+
};
|
|
52
|
+
|
|
30
53
|
export const brandBodySchema = z.object({
|
|
31
54
|
name: z.string().min(1),
|
|
32
55
|
organization_id: z.uuid().nullable().optional(),
|
|
@@ -35,6 +58,7 @@ export const brandBodySchema = z.object({
|
|
|
35
58
|
default_email_settings: brandDefaultEmailSettingsSchema.optional(),
|
|
36
59
|
default_button_settings: brandDefaultButtonSettingsSchema.optional(),
|
|
37
60
|
default_socials: brandSocialsSchema,
|
|
61
|
+
data: brandDataSchema.optional(),
|
|
38
62
|
property_ids: z.array(z.uuid()).optional(),
|
|
39
63
|
});
|
|
40
64
|
|
|
@@ -63,6 +87,7 @@ export interface Brand extends DbEntity {
|
|
|
63
87
|
default_email_settings: BrandDefaultEmailSettings;
|
|
64
88
|
default_button_settings: BrandDefaultButtonSettings;
|
|
65
89
|
default_socials: BrandSocials | null;
|
|
90
|
+
data: BrandData;
|
|
66
91
|
}
|
|
67
92
|
|
|
68
93
|
export type BrandFromDb = WithDbTimestamps<Brand> & {
|
|
@@ -77,4 +102,5 @@ export interface BrandProperty {
|
|
|
77
102
|
export interface Property {
|
|
78
103
|
id: string;
|
|
79
104
|
name: string;
|
|
105
|
+
hasAccess: boolean;
|
|
80
106
|
}
|
|
@@ -483,14 +483,14 @@ export function emptyFooterBlock(): FooterBlock {
|
|
|
483
483
|
{
|
|
484
484
|
type: "text",
|
|
485
485
|
marks: [{ type: "bold" }],
|
|
486
|
-
text: "{{
|
|
486
|
+
text: "{{brand_name}}",
|
|
487
487
|
},
|
|
488
488
|
],
|
|
489
489
|
},
|
|
490
490
|
{
|
|
491
491
|
type: "paragraph",
|
|
492
492
|
attrs: { textAlign: null },
|
|
493
|
-
content: [{ type: "text", text: "{{
|
|
493
|
+
content: [{ type: "text", text: "{{brand_address}}" }],
|
|
494
494
|
},
|
|
495
495
|
{
|
|
496
496
|
type: "paragraph",
|
|
@@ -498,7 +498,7 @@ export function emptyFooterBlock(): FooterBlock {
|
|
|
498
498
|
content: [
|
|
499
499
|
{
|
|
500
500
|
type: "text",
|
|
501
|
-
text: "{{
|
|
501
|
+
text: "{{brand_telephone}} / {{brand_email}} / {{brand_website}}",
|
|
502
502
|
},
|
|
503
503
|
],
|
|
504
504
|
},
|
package/src/types/message.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { EmailBlock, EmailGlobalSettings } from "./emailblocks.v1.js";
|
|
|
11
11
|
import {
|
|
12
12
|
brandDefaultEmailSettingsSchema,
|
|
13
13
|
brandDefaultButtonSettingsSchema,
|
|
14
|
+
brandDataSchema,
|
|
14
15
|
} from "./brand.js";
|
|
15
16
|
|
|
16
17
|
export const MESSAGE_RENDER_TYPES = ["whatsapp_v1", "email_v1"] as const;
|
|
@@ -146,6 +147,7 @@ export const brandCascadeDataSchema = z.object({
|
|
|
146
147
|
default_button_settings: brandDefaultButtonSettingsSchema,
|
|
147
148
|
default_socials: z.record(z.string(), z.string()).nullable(),
|
|
148
149
|
logo_url: z.string().nullable(),
|
|
150
|
+
data: brandDataSchema.optional().default({}),
|
|
149
151
|
});
|
|
150
152
|
|
|
151
153
|
/**
|
|
@@ -5,9 +5,13 @@ import type {
|
|
|
5
5
|
BrandDefaultEmailSettings,
|
|
6
6
|
BrandDefaultButtonSettings,
|
|
7
7
|
BrandSocials,
|
|
8
|
+
BrandData,
|
|
8
9
|
SocialPlatform,
|
|
9
10
|
} from "../../types/index.js";
|
|
10
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
DEFAULT_EMAIL_GLOBAL_SETTINGS,
|
|
13
|
+
BRAND_DATA_TO_PROPERTY_MAP,
|
|
14
|
+
} from "../../types/index.js";
|
|
11
15
|
|
|
12
16
|
/**
|
|
13
17
|
* Brand data needed for cascade resolution.
|
|
@@ -18,6 +22,7 @@ export interface BrandCascadeData {
|
|
|
18
22
|
default_button_settings: BrandDefaultButtonSettings;
|
|
19
23
|
default_socials: BrandSocials | null;
|
|
20
24
|
logo_url: string | null;
|
|
25
|
+
data: BrandData;
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
/**
|
|
@@ -154,3 +159,25 @@ export function resolveEmailBodyWithBrand(
|
|
|
154
159
|
settings: resolveEmailSettings(body.settings, brand),
|
|
155
160
|
};
|
|
156
161
|
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Merge brand_* variables into a parameters map.
|
|
165
|
+
* For each brand.data field, resolves brand_<field> as:
|
|
166
|
+
* brand.data[field] → corresponding property_* from params → ""
|
|
167
|
+
*/
|
|
168
|
+
export function mergeBrandDataParams(
|
|
169
|
+
parameters: Record<string, unknown>,
|
|
170
|
+
brand: BrandCascadeData | undefined,
|
|
171
|
+
): Record<string, unknown> {
|
|
172
|
+
const merged = { ...parameters };
|
|
173
|
+
|
|
174
|
+
for (const [field, propertyKey] of Object.entries(
|
|
175
|
+
BRAND_DATA_TO_PROPERTY_MAP,
|
|
176
|
+
)) {
|
|
177
|
+
const brandKey = `brand_${field}`;
|
|
178
|
+
const brandValue = brand?.data?.[field as keyof BrandData];
|
|
179
|
+
merged[brandKey] = brandValue || merged[propertyKey] || "";
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return merged;
|
|
183
|
+
}
|