{"version":3,"file":"C0SPu3Fy.js","sources":["../../../../src/components/meta/utils/pageSchema/getEventPageSchema.ts"],"sourcesContent":["import { ECourseType } from '~~/src/@types/course-type';\nimport { EEventStatus } from '~~/src/@types/event-status';\nimport dayjs from '~~/src/helpers/dayJs';\nimport type { EventPage } from '~~/src/server/transformers/page/eventPage';\n\nexport type TAdditionalDate = {\n date: Date;\n startTime: Date;\n endTime: Date;\n};\n\nexport default function getEventPageSchema(\n page: EventPage,\n options?: { url?: string },\n): any {\n //check for individual dates\n let endDate: string | null;\n if (page.event.date) {\n endDate =\n page.event.additionalDates.length > 0\n ? dayjs(\n page.event.additionalDates[page.event.additionalDates.length - 1]\n .date,\n )\n .add(\n dayjs(\n page.event.additionalDates[\n page.event.additionalDates.length - 1\n ].endTime ?? dayjs(),\n )\n .toDate()\n .getHours(),\n 'h',\n )\n .add(\n dayjs(\n page.event.additionalDates[\n page.event.additionalDates.length - 1\n ].endTime ?? dayjs(),\n )\n .toDate()\n .getMinutes(),\n 'm',\n )\n .format()\n : dayjs(page.event.date)\n .add(\n dayjs(page.event.endTime ?? dayjs())\n .toDate()\n .getHours(),\n 'h',\n )\n .add(\n dayjs(page.event.endTime ?? dayjs())\n .toDate()\n .getMinutes(),\n 'm',\n )\n .format();\n } else {\n endDate = null;\n }\n\n const attendanceMode = () => {\n switch (page.event.courseType) {\n case ECourseType.INHOUSE:\n return 'OfflineEventAttendanceMode';\n case ECourseType.ONLINE:\n return 'OnlineEventAttendanceMode';\n case ECourseType.HYBRID:\n return 'MixedEventAttendanceMode';\n default:\n return 'OfflineEventAttendanceMode';\n }\n };\n\n return [\n defineEvent({\n name: page.title,\n audience: page.event.targetGroup,\n description: page.event.shortDescription,\n keywords: page.event.tags?.map((x) => x.title)?.join(','),\n organizer: { name: 'van der ven' },\n eventAttendanceMode: attendanceMode(),\n eventStatus:\n page.event.status === EEventStatus.CANCELLED\n ? 'EventCancelled'\n : 'EventScheduled',\n isAccessibleForFree: (page.event.price ?? 0) == 0,\n startDate: page.event.date\n ? dayjs(page.event.date)\n .add(\n dayjs(page.event.startTime ?? dayjs())\n .toDate()\n .getHours(),\n 'h',\n )\n .add(\n dayjs(page.event.startTime ?? dayjs())\n .toDate()\n .getMinutes(),\n 'm',\n )\n .format()\n : dayjs(page.event.postDate).format(),\n endDate: endDate,\n potentialAction: 'RegisterAction',\n performer: {\n name: `${page.event.speakers[0]?.firstName} ${page.event.speakers[0]?.lastName}`,\n },\n offers: {\n price: page.event.price ?? 0,\n priceCurrency: 'EUR',\n validFrom: dayjs(page.postDate).format(),\n url: options.url,\n },\n image: [page.event.image?.mobile?.url],\n location: [\n {\n '@type': 'Place',\n name: page.event.location.title,\n address: {\n addressLocality: page.event.location.title,\n streetAddress: `${page.event.location.street} ${page.event.location.streetNumber}`,\n postalCode: page.event.location.zipCode,\n addressCountry: 'DE',\n url:\n (useRequestEvent()?.node?.req?.headers?.host ??\n import.meta.server)\n ? 'https://www.vanderven.de'\n : location?.host,\n },\n },\n ],\n }),\n ];\n}\n"],"names":["getEventPageSchema","page","options","dayjs"],"mappings":"wDAWwB,SAAAA,EACtBC,EACAC,EACK,CAGD,OAAAD,EAAK,MAAM,OAEXA,EAAK,MAAM,gBAAgB,OAAS,EAChCE,EACEF,EAAK,MAAM,gBAAgBA,EAAK,MAAM,gBAAgB,OAAS,CAAC,EAC7D,IAAA,EAEF,IACCE,EACEF,EAAK,MAAM,gBACTA,EAAK,MAAM,gBAAgB,OAAS,CACtC,EAAE,SAAWE,EAAM,CAAA,EAElB,OAAO,EACP,SAAS,EACZ,GAAA,EAED,IACCA,EACEF,EAAK,MAAM,gBACTA,EAAK,MAAM,gBAAgB,OAAS,CACtC,EAAE,SAAWE,EAAM,CAAA,EAElB,OAAO,EACP,WAAW,EACd,GAAA,EAED,OAAO,EACVA,EAAMF,EAAK,MAAM,IAAI,EAClB,IACCE,EAAMF,EAAK,MAAM,SAAWE,GAAO,EAChC,OAAO,EACP,SAAS,EACZ,GAAA,EAED,IACCA,EAAMF,EAAK,MAAM,SAAWE,GAAO,EAChC,OAAO,EACP,WAAW,EACd,KAED,OAAO,GAkBX,CAAA,EA0DJ,CAEL"}