* Add offsetStart column to EventType * Update buildSlots to support offset start times * Add "Offset Start Time" to edit event types form * Fix offset events not appearing on availability selector * Guard against negative offsetStart values * Lock offsetStart field for managed event types * EventLimits UI tweaks for "Offset start times" * EventLimits UI: Fix offsetStart preview not always updating * Remove unnecessary ctx from getSchedule.test.ts --------- Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com>
107 lines
2.0 KiB
TypeScript
107 lines
2.0 KiB
TypeScript
import { Prisma } from "@prisma/client";
|
|
|
|
export const baseEventTypeSelect = Prisma.validator<Prisma.EventTypeSelect>()({
|
|
id: true,
|
|
title: true,
|
|
description: true,
|
|
length: true,
|
|
schedulingType: true,
|
|
recurringEvent: true,
|
|
slug: true,
|
|
hidden: true,
|
|
price: true,
|
|
currency: true,
|
|
requiresConfirmation: true,
|
|
});
|
|
|
|
export const bookEventTypeSelect = Prisma.validator<Prisma.EventTypeSelect>()({
|
|
id: true,
|
|
title: true,
|
|
slug: true,
|
|
description: true,
|
|
length: true,
|
|
locations: true,
|
|
customInputs: true,
|
|
periodType: true,
|
|
periodDays: true,
|
|
periodStartDate: true,
|
|
periodEndDate: true,
|
|
recurringEvent: true,
|
|
requiresConfirmation: true,
|
|
metadata: true,
|
|
periodCountCalendarDays: true,
|
|
price: true,
|
|
currency: true,
|
|
disableGuests: true,
|
|
userId: true,
|
|
seatsPerTimeSlot: true,
|
|
bookingFields: true,
|
|
workflows: {
|
|
include: {
|
|
workflow: {
|
|
include: {
|
|
steps: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
users: {
|
|
select: {
|
|
id: true,
|
|
username: true,
|
|
name: true,
|
|
email: true,
|
|
bio: true,
|
|
avatar: true,
|
|
theme: true,
|
|
},
|
|
},
|
|
successRedirectUrl: true,
|
|
});
|
|
|
|
export const availiblityPageEventTypeSelect = Prisma.validator<Prisma.EventTypeSelect>()({
|
|
id: true,
|
|
title: true,
|
|
availability: true,
|
|
description: true,
|
|
length: true,
|
|
offsetStart: true,
|
|
price: true,
|
|
currency: true,
|
|
periodType: true,
|
|
periodStartDate: true,
|
|
periodEndDate: true,
|
|
periodDays: true,
|
|
periodCountCalendarDays: true,
|
|
locations: true,
|
|
schedulingType: true,
|
|
recurringEvent: true,
|
|
requiresConfirmation: true,
|
|
schedule: {
|
|
select: {
|
|
availability: true,
|
|
timeZone: true,
|
|
},
|
|
},
|
|
hidden: true,
|
|
userId: true,
|
|
slug: true,
|
|
minimumBookingNotice: true,
|
|
beforeEventBuffer: true,
|
|
afterEventBuffer: true,
|
|
timeZone: true,
|
|
metadata: true,
|
|
slotInterval: true,
|
|
seatsPerTimeSlot: true,
|
|
users: {
|
|
select: {
|
|
id: true,
|
|
avatar: true,
|
|
name: true,
|
|
username: true,
|
|
hideBranding: true,
|
|
timeZone: true,
|
|
},
|
|
},
|
|
});
|