@deallony/shared 1.2.82 → 1.2.83
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/cjs/constants/events/EventCustomization.d.ts +18 -0
- package/dist/cjs/constants/events/EventCustomization.js +21 -1
- package/dist/cjs/constants/events/EventTemplate.js +3 -3
- package/dist/cjs/constants/events/EventType.d.ts +21 -90
- package/dist/cjs/constants/events/EventType.js +15 -8
- package/dist/cjs/constants/events/EventWeddingReligion.d.ts +10 -5
- package/dist/cjs/constants/events/EventWeddingReligion.js +12 -27
- package/dist/cjs/constants/routes/app.d.ts +14 -0
- package/dist/cjs/constants/routes/app.js +4 -0
- package/dist/cjs/schema/communication/ai-conversation.schema.d.ts +2 -0
- package/dist/cjs/schema/events/Event.schema.d.ts +38 -0
- package/dist/cjs/schema/events/Event.schema.js +27 -0
- package/dist/cjs/types/ad/Ad.d.ts +2 -0
- package/dist/cjs/types/communication/Notification.d.ts +4 -0
- package/dist/cjs/types/communication/Notification.js +6 -0
- package/dist/cjs/types/events/Event.d.ts +4 -0
- package/dist/cjs/types/events/EventCustomization.d.ts +11 -0
- package/dist/cjs/types/events/EventDay.d.ts +89 -0
- package/dist/cjs/types/events/EventDay.js +2 -0
- package/dist/cjs/types/events/EventInvited.d.ts +25 -0
- package/dist/cjs/types/events/EventInvited.js +2 -0
- package/dist/cjs/types/events/EventRsvp.d.ts +12 -1
- package/dist/cjs/types/events/index.d.ts +2 -0
- package/dist/cjs/types/events/index.js +2 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +4 -2
- package/dist/cjs/utils/adSeoTitle.d.ts +35 -0
- package/dist/cjs/utils/adSeoTitle.js +26 -0
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +1 -0
- package/dist/esm/constants/events/EventCustomization.js +20 -0
- package/dist/esm/constants/events/EventTemplate.js +3 -3
- package/dist/esm/constants/events/EventType.js +14 -7
- package/dist/esm/constants/events/EventWeddingReligion.js +11 -26
- package/dist/esm/constants/routes/app.js +4 -0
- package/dist/esm/schema/events/Event.schema.js +28 -1
- package/dist/esm/types/communication/Notification.js +6 -0
- package/dist/esm/types/events/EventDay.js +1 -0
- package/dist/esm/types/events/EventInvited.js +1 -0
- package/dist/esm/types/events/index.js +2 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/utils/adSeoTitle.js +23 -0
- package/dist/esm/utils/index.js +1 -0
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { saveEventWeddingSchema } from "./EventWedding.schema.js";
|
|
|
4
4
|
import { saveEventBirthdaySchema } from "./EventBirthday.schema.js";
|
|
5
5
|
import { saveEventOccasionSchema } from "./EventOccasion.schema.js";
|
|
6
6
|
import { eventPersonInputSchema } from "./EventHost.schema.js";
|
|
7
|
-
import { EVENT_CUSTOMIZATION_TEXT_MAX, EVENT_DRESS_CODE_NOTE_MAX, EVENT_EXPECTED_GUESTS_MAX, EVENT_EXPECTED_GUESTS_MIN, EventDressCodeColorModeValues, EventDressCodeColorValues, EventDressCodeStyleValues, EventCustomizationFontValues, EventCustomizationOpeningValues, EventCustomizationPaletteValues, EventCustomizationSectionValues, EventCustomizationTrackValues, EventInvitationScanTypeValues, EventPublishPaymentMethodValues, EventVisibilityValues, } from "../../constants/events/index.js";
|
|
7
|
+
import { EVENT_CUSTOMIZATION_TEXT_MAX, EVENT_ATTENDANCE_TEXT_MAX, EVENT_COVER_VIDEO_MAX_BYTES, EVENT_COVER_VIDEO_MAX_SECONDS, EVENT_DRESS_CODE_NOTE_MAX, EVENT_EXPECTED_GUESTS_MAX, EVENT_EXPECTED_GUESTS_MIN, EventDressCodeColorModeValues, EventDressCodeColorValues, EventDressCodeStyleValues, EventCustomizationFontValues, EventCustomizationOpeningValues, EventCustomizationPaletteValues, EventCustomizationSectionValues, EventCustomizationTrackValues, EventInvitationScanTypeValues, EventPublishPaymentMethodValues, EventVisibilityValues, } from "../../constants/events/index.js";
|
|
8
8
|
import { BLOCKED_RELIGIOUS_TEXT_MESSAGE, hasBlockedReligiousText } from "../../constants/events/EventTextPolicy.js";
|
|
9
9
|
const customizationText = z
|
|
10
10
|
.string()
|
|
@@ -14,6 +14,15 @@ const customizationText = z
|
|
|
14
14
|
.transform((v) => (v.length ? v : null))
|
|
15
15
|
.nullable()
|
|
16
16
|
.optional();
|
|
17
|
+
/** Owner's own wording for the children / food line on the invitation; empty keeps the default */
|
|
18
|
+
const attendanceText = z
|
|
19
|
+
.string()
|
|
20
|
+
.trim()
|
|
21
|
+
.max(EVENT_ATTENDANCE_TEXT_MAX)
|
|
22
|
+
.refine((v) => !hasBlockedReligiousText(v), { message: BLOCKED_RELIGIOUS_TEXT_MESSAGE.ar })
|
|
23
|
+
.transform((v) => (v.length ? v : null))
|
|
24
|
+
.nullable()
|
|
25
|
+
.optional();
|
|
17
26
|
export const eventCustomizationSchema = z.object({
|
|
18
27
|
palette: z.enum(EventCustomizationPaletteValues).nullable().optional(),
|
|
19
28
|
font: z.enum(EventCustomizationFontValues).nullable().optional(),
|
|
@@ -23,9 +32,23 @@ export const eventCustomizationSchema = z.object({
|
|
|
23
32
|
.optional(),
|
|
24
33
|
welcome_message: customizationText,
|
|
25
34
|
rsvp_message: customizationText,
|
|
35
|
+
children_message: attendanceText,
|
|
36
|
+
food_message: attendanceText,
|
|
26
37
|
music: z.enum(EventCustomizationTrackValues).nullable().optional(),
|
|
27
38
|
opening: z.enum(EventCustomizationOpeningValues).nullable().optional(),
|
|
28
39
|
auto_scroll: z.boolean().nullable().optional(),
|
|
40
|
+
cover_video: z
|
|
41
|
+
.record(z.string(), z.any())
|
|
42
|
+
.refine((v) => typeof v.url === "string" && v.url.length > 0, { message: "Video URL is missing" })
|
|
43
|
+
.refine((v) => !(Number(v.size) > EVENT_COVER_VIDEO_MAX_BYTES), {
|
|
44
|
+
message: "حجم الفيديو أكبر من 100 ميغابايت",
|
|
45
|
+
})
|
|
46
|
+
.refine((v) => !(Number(v.durationSeconds) > EVENT_COVER_VIDEO_MAX_SECONDS + 1), {
|
|
47
|
+
message: "الفيديو أطول من 60 ثانية",
|
|
48
|
+
})
|
|
49
|
+
.nullable()
|
|
50
|
+
.optional(),
|
|
51
|
+
cover_video_muted: z.boolean().nullable().optional(),
|
|
29
52
|
});
|
|
30
53
|
export const eventDressCodeSchema = z.object({
|
|
31
54
|
style: z.enum(EventDressCodeStyleValues).nullable().optional(),
|
|
@@ -74,6 +97,10 @@ export const eventBaseSchema = z.object({
|
|
|
74
97
|
invitation_scan_type: z.enum(EventInvitationScanTypeValues).optional(),
|
|
75
98
|
customization: eventCustomizationSchema.nullable().optional(),
|
|
76
99
|
dress_code: eventDressCodeSchema.nullable().optional(),
|
|
100
|
+
/** Children may come; null for events created before it was asked */
|
|
101
|
+
children_allowed: z.boolean().nullable().optional(),
|
|
102
|
+
/** Food is served; null for events created before it was asked */
|
|
103
|
+
food_included: z.boolean().nullable().optional(),
|
|
77
104
|
visibility: z.enum(EventVisibilityValues).optional(),
|
|
78
105
|
/** «من أنت في هذه المناسبة؟»: a slot key of the type, "company" or "other" */
|
|
79
106
|
creator_role: z.string().trim().max(40).nullable().optional(),
|
|
@@ -23,6 +23,10 @@ export var NotificationTypeEnum;
|
|
|
23
23
|
NotificationTypeEnum["EVENT_HOST_JOINED"] = "event_host_joined";
|
|
24
24
|
/** The user no longer has access to an event */
|
|
25
25
|
NotificationTypeEnum["EVENT_HOST_REMOVED"] = "event_host_removed";
|
|
26
|
+
/** The user is on an event's guest list («دعواتي») */
|
|
27
|
+
NotificationTypeEnum["EVENT_INVITED"] = "event_invited";
|
|
28
|
+
/** A guest's invitation is tomorrow or today («دعواتي») */
|
|
29
|
+
NotificationTypeEnum["EVENT_REMINDER"] = "event_reminder";
|
|
26
30
|
/** New ads match one of the user's saved searches */
|
|
27
31
|
NotificationTypeEnum["SAVED_SEARCH"] = "saved_search";
|
|
28
32
|
})(NotificationTypeEnum || (NotificationTypeEnum = {}));
|
|
@@ -50,5 +54,7 @@ export const NOTIFICATION_CATEGORY = {
|
|
|
50
54
|
[NotificationTypeEnum.EVENT_HOST_ADDED]: NotificationCategoryEnum.EVENTS,
|
|
51
55
|
[NotificationTypeEnum.EVENT_HOST_JOINED]: NotificationCategoryEnum.EVENTS,
|
|
52
56
|
[NotificationTypeEnum.EVENT_HOST_REMOVED]: NotificationCategoryEnum.EVENTS,
|
|
57
|
+
[NotificationTypeEnum.EVENT_INVITED]: NotificationCategoryEnum.EVENTS,
|
|
58
|
+
[NotificationTypeEnum.EVENT_REMINDER]: NotificationCategoryEnum.EVENTS,
|
|
53
59
|
[NotificationTypeEnum.SAVED_SEARCH]: NotificationCategoryEnum.SAVED_SEARCHES,
|
|
54
60
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/esm/types/index.js
CHANGED
|
@@ -54,6 +54,8 @@ export * as EventBirthday from './events/EventBirthday.js';
|
|
|
54
54
|
export * as EventOccasion from './events/EventOccasion.js';
|
|
55
55
|
export * as EventVenue from './events/EventVenue.js';
|
|
56
56
|
export * as EventHost from './events/EventHost.js';
|
|
57
|
+
export * as EventDay from './events/EventDay.js';
|
|
58
|
+
export * as EventInvited from './events/EventInvited.js';
|
|
57
59
|
// user
|
|
58
60
|
export * as User from "./user/User.js";
|
|
59
61
|
export * as Role from "./user/Role.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const rtl = (text) => `${text}`;
|
|
2
|
+
const ltr = (text) => `${text}`;
|
|
3
|
+
export function buildAdSeoTitle(ad) {
|
|
4
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
5
|
+
if (!ad)
|
|
6
|
+
return "Deallony";
|
|
7
|
+
const categoryName = (_b = (_a = ad.category) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : undefined;
|
|
8
|
+
let title = ((_c = ad.title) === null || _c === void 0 ? void 0 : _c.trim()) || categoryName;
|
|
9
|
+
if (ad.subject_type === "properties") {
|
|
10
|
+
const offer = (_f = (_e = (_d = ad.property) === null || _d === void 0 ? void 0 : _d.offerType) === null || _e === void 0 ? void 0 : _e.name) === null || _f === void 0 ? void 0 : _f.ar;
|
|
11
|
+
if (offer && categoryName) {
|
|
12
|
+
title = offer + " " + categoryName + " في " + ((_g = ad.adminBoundary) === null || _g === void 0 ? void 0 : _g.name);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (ad.subject_type === "motors") {
|
|
16
|
+
const offer = (_k = (_j = (_h = ad.motor) === null || _h === void 0 ? void 0 : _h.offerType) === null || _j === void 0 ? void 0 : _j.name) === null || _k === void 0 ? void 0 : _k.ar;
|
|
17
|
+
if (offer && categoryName) {
|
|
18
|
+
const arabicMain = rtl(`${offer} سيارة في ${(_l = ad.adminBoundary) === null || _l === void 0 ? void 0 : _l.name}`);
|
|
19
|
+
title = `${ltr(categoryName)} | ${arabicMain}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return title || "Deallony";
|
|
23
|
+
}
|
package/dist/esm/utils/index.js
CHANGED