@getmicdrop/svelte-components 5.17.3 → 5.17.4
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/calendar/AboutShow/AboutShow.svelte +187 -187
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte +780 -782
- package/dist/calendar/Calendar/MiniMonthCalendar.svelte.d.ts.map +1 -1
- package/dist/calendar/FAQs/FAQs.svelte +77 -77
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte +125 -126
- package/dist/calendar/MonthSwitcher/MonthSwitcher.svelte.d.ts.map +1 -1
- package/dist/calendar/OrderSummary/OrderSummary.svelte +457 -457
- package/dist/calendar/PublicCard/PublicCard.svelte +155 -146
- package/dist/calendar/PublicCard/PublicCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowCard/ShowCard.spec.js +1 -7
- package/dist/calendar/ShowCard/ShowCard.svelte +166 -157
- package/dist/calendar/ShowCard/ShowCard.svelte.d.ts.map +1 -1
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte +72 -61
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts +2 -0
- package/dist/calendar/ShowTimeCard/ShowTimeCard.svelte.d.ts.map +1 -1
- package/dist/components/Heading.svelte +60 -60
- package/dist/components/Layout/AppShell.svelte +104 -104
- package/dist/components/Layout/ContentSection.svelte +80 -80
- package/dist/components/Layout/Grid.svelte +4 -4
- package/dist/components/Layout/Heading.svelte +81 -81
- package/dist/components/Layout/PageContainer.svelte +69 -69
- package/dist/components/Layout/Responsive.svelte +75 -75
- package/dist/components/Layout/Section.svelte +80 -80
- package/dist/components/Layout/ShowOnDesktop.svelte +37 -37
- package/dist/components/Layout/ShowOnMobile.svelte +37 -37
- package/dist/components/Layout/Sidebar.svelte +108 -108
- package/dist/components/Layout/Stack.spec.js +1 -1
- package/dist/components/Layout/Stack.svelte +6 -6
- package/dist/components/Layout/Text.svelte +87 -87
- package/dist/components/Layout/TwoColumn.svelte +108 -108
- package/dist/components/Text.svelte +53 -53
- package/dist/config.d.ts +102 -0
- package/dist/config.js +147 -1
- package/dist/constants/validation.js +91 -91
- package/dist/constants/validation.spec.js +64 -64
- package/dist/datetime/README.md +323 -0
- package/dist/datetime/__tests__/format.test.js +1 -1
- package/dist/datetime/__tests__/parse.test.js +1 -1
- package/dist/datetime/__tests__/timezone.test.js +1 -1
- package/dist/datetime/parse.js +1 -1
- package/dist/forms/createFormStore.svelte.js +0 -1
- package/dist/forms/createFormStore.svelte.spec.js +0 -1
- package/dist/index.js +57 -57
- package/dist/index.spec.js +369 -369
- package/dist/messages.d.ts +43 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +57 -0
- package/dist/patterns/chat/ChatActivityNotice.svelte +41 -41
- package/dist/patterns/chat/ChatBubble.svelte +95 -95
- package/dist/patterns/chat/ChatContainer.svelte +46 -46
- package/dist/patterns/chat/ChatDateDivider.svelte +27 -27
- package/dist/patterns/chat/ChatInvitationBubble.svelte +37 -37
- package/dist/patterns/chat/ChatInvitationNotice.svelte +27 -27
- package/dist/patterns/chat/ChatMessageGroup.svelte +57 -57
- package/dist/patterns/chat/ChatSlotUpdate.svelte +46 -46
- package/dist/patterns/chat/ChatStatusBadge.svelte +91 -91
- package/dist/patterns/chat/ChatStatusTransition.svelte +64 -64
- package/dist/patterns/chat/ChatTextBubble.svelte +41 -41
- package/dist/patterns/chat/index.js +22 -22
- package/dist/patterns/data/DataGrid.svelte +45 -45
- package/dist/patterns/data/DataList.svelte +24 -24
- package/dist/patterns/data/DataTable.svelte +36 -36
- package/dist/patterns/forms/FormActions.spec.js +95 -95
- package/dist/patterns/forms/FormActions.stories.svelte +97 -97
- package/dist/patterns/forms/FormActions.svelte +46 -46
- package/dist/patterns/forms/FormGrid.svelte +33 -33
- package/dist/patterns/forms/FormSection.svelte +32 -32
- package/dist/patterns/forms/FormValidationSummary.stories.svelte +83 -83
- package/dist/patterns/forms/FormValidationSummary.svelte +74 -74
- package/dist/patterns/index.js +21 -21
- package/dist/patterns/layout/Sidebar.svelte +39 -39
- package/dist/patterns/layout/index.js +29 -29
- package/dist/patterns/navigation/BottomNav.stories.svelte +117 -117
- package/dist/patterns/navigation/BottomNav.svelte +74 -74
- package/dist/patterns/navigation/Header.stories.svelte +77 -77
- package/dist/patterns/navigation/Header.svelte +251 -251
- package/dist/patterns/page/PageHeader.svelte +18 -18
- package/dist/patterns/page/PageLayout.svelte +40 -40
- package/dist/patterns/page/PageLoader.spec.js +57 -57
- package/dist/patterns/page/PageLoader.stories.svelte +137 -137
- package/dist/patterns/page/PageLoader.svelte +24 -24
- package/dist/patterns/page/SectionHeader.svelte +29 -29
- package/dist/presets/badges.js +112 -112
- package/dist/presets/buttons.js +76 -76
- package/dist/presets/index.js +9 -9
- package/dist/primitives/Accordion/Accordion.stories.svelte +75 -75
- package/dist/primitives/Accordion/Accordion.svelte +42 -42
- package/dist/primitives/Accordion/AccordionItem.svelte +95 -95
- package/dist/primitives/Alert/Alert.spec.js +173 -173
- package/dist/primitives/Alert/Alert.stories.svelte +88 -88
- package/dist/primitives/Alert/Alert.svelte +27 -27
- package/dist/primitives/Avatar/Avatar.stories.svelte +94 -94
- package/dist/primitives/Avatar/Avatar.svelte +66 -66
- package/dist/primitives/AvatarButton/AvatarButton.svelte +57 -57
- package/dist/primitives/Badges/Badge.spec.js +144 -144
- package/dist/primitives/Badges/Badge.stories.svelte +86 -86
- package/dist/primitives/Badges/Badge.svelte +99 -99
- package/dist/primitives/BottomSheet/BottomSheet.spec.js +238 -238
- package/dist/primitives/BottomSheet/BottomSheet.stories.svelte +83 -83
- package/dist/primitives/BottomSheet/BottomSheet.svelte +115 -115
- package/dist/primitives/Breadcrumb/Breadcrumb.spec.js +123 -123
- package/dist/primitives/Breadcrumb/Breadcrumb.stories.svelte +23 -23
- package/dist/primitives/Breadcrumb/Breadcrumb.svelte +99 -99
- package/dist/primitives/Button/Button.spec.js +225 -225
- package/dist/primitives/Button/Button.stories.svelte +76 -76
- package/dist/primitives/Button/Button.svelte +278 -278
- package/dist/primitives/Button/ButtonGroup.svelte +50 -50
- package/dist/primitives/Button/ButtonSaveDemo.spec.js +146 -146
- package/dist/primitives/Button/ButtonSaveDemo.svelte +25 -25
- package/dist/primitives/Button/ButtonVariantShowcase.svelte +129 -129
- package/dist/primitives/Card.spec.js +49 -49
- package/dist/primitives/Card.stories.svelte +22 -22
- package/dist/primitives/Card.svelte +28 -28
- package/dist/primitives/CardAction/CardAction.svelte +68 -68
- package/dist/primitives/Checkbox/Checkbox.stories.svelte +84 -84
- package/dist/primitives/Checkbox/Checkbox.svelte +88 -88
- package/dist/primitives/DarkModeToggle.spec.js +390 -390
- package/dist/primitives/DarkModeToggle.stories.svelte +57 -57
- package/dist/primitives/DarkModeToggle.svelte +136 -136
- package/dist/primitives/Drawer/Drawer.stories.svelte +80 -80
- package/dist/primitives/Drawer/Drawer.svelte +224 -224
- package/dist/primitives/Dropdown/Dropdown.stories.svelte +137 -137
- package/dist/primitives/Dropdown/Dropdown.svelte +170 -170
- package/dist/primitives/Dropdown/DropdownDivider.svelte +9 -9
- package/dist/primitives/Dropdown/DropdownItem.svelte +80 -80
- package/dist/primitives/Helper/Helper.svelte +33 -33
- package/dist/primitives/Icons/ArrowLeft.svelte +8 -8
- package/dist/primitives/Icons/ArrowRight.svelte +8 -8
- package/dist/primitives/Icons/Availability.svelte +14 -14
- package/dist/primitives/Icons/Back.svelte +14 -14
- package/dist/primitives/Icons/CheckCircle.svelte +6 -6
- package/dist/primitives/Icons/CheckCircleOutline.svelte +15 -15
- package/dist/primitives/Icons/ChevronLeft.svelte +4 -4
- package/dist/primitives/Icons/ChevronRight.svelte +4 -4
- package/dist/primitives/Icons/Copy.svelte +15 -15
- package/dist/primitives/Icons/Cross.svelte +5 -5
- package/dist/primitives/Icons/DownArrow.svelte +8 -8
- package/dist/primitives/Icons/ErrorCircle.svelte +6 -6
- package/dist/primitives/Icons/FacebookIcon.svelte +2 -2
- package/dist/primitives/Icons/Home.svelte +15 -15
- package/dist/primitives/Icons/Icon.spec.js +169 -169
- package/dist/primitives/Icons/Icon.stories.svelte +100 -100
- package/dist/primitives/Icons/Icon.svelte +52 -52
- package/dist/primitives/Icons/IconGallery.stories.svelte +235 -235
- package/dist/primitives/Icons/Info.svelte +7 -7
- package/dist/primitives/Icons/InstagramIcon.svelte +4 -4
- package/dist/primitives/Icons/LogoInstagram.svelte +2 -2
- package/dist/primitives/Icons/Message.svelte +15 -15
- package/dist/primitives/Icons/MoonIcon.svelte +5 -5
- package/dist/primitives/Icons/More.svelte +21 -21
- package/dist/primitives/Icons/MoreHori.spec.js +61 -61
- package/dist/primitives/Icons/MoreHori.svelte +22 -22
- package/dist/primitives/Icons/Notification.svelte +14 -14
- package/dist/primitives/Icons/Payment.svelte +14 -14
- package/dist/primitives/Icons/Profile.svelte +21 -21
- package/dist/primitives/Icons/Reload.svelte +29 -29
- package/dist/primitives/Icons/Shows.svelte +21 -21
- package/dist/primitives/Icons/Signout.svelte +21 -21
- package/dist/primitives/Icons/SunIcon.svelte +8 -8
- package/dist/primitives/Icons/TiktokIcon.svelte +2 -2
- package/dist/primitives/Icons/TwitterIcon.svelte +2 -2
- package/dist/primitives/Icons/WarningIcon.spec.js +18 -18
- package/dist/primitives/Icons/WarningIcon.svelte +5 -5
- package/dist/primitives/Input/Input.spec.js +1237 -1235
- package/dist/primitives/Input/Input.stories.svelte +139 -139
- package/dist/primitives/Input/Input.svelte +431 -423
- package/dist/primitives/Input/Input.svelte.d.ts.map +1 -1
- package/dist/primitives/Input/Select.spec.js +632 -632
- package/dist/primitives/Input/Select.stories.svelte +112 -112
- package/dist/primitives/Input/Select.svelte +252 -252
- package/dist/primitives/Input/Textarea.stories.svelte +137 -137
- package/dist/primitives/Input/Textarea.svelte +105 -105
- package/dist/primitives/Label/Label.svelte +37 -37
- package/dist/primitives/LandingButton/LandingButton.svelte +92 -92
- package/dist/primitives/MenuItem/MenuItem.svelte +85 -85
- package/dist/primitives/Modal/Modal.spec.js +314 -314
- package/dist/primitives/Modal/Modal.stories.svelte +86 -86
- package/dist/primitives/Modal/Modal.svelte +181 -181
- package/dist/primitives/NavItem/NavItem.svelte +75 -75
- package/dist/primitives/Pagination/Pagination.stories.svelte +76 -76
- package/dist/primitives/Pagination/Pagination.svelte +261 -261
- package/dist/primitives/Radio/Radio.stories.svelte +80 -80
- package/dist/primitives/Radio/Radio.svelte +67 -67
- package/dist/primitives/SearchResultItem/SearchResultItem.svelte +109 -109
- package/dist/primitives/SidebarToggle/SidebarToggle.svelte +55 -55
- package/dist/primitives/Skeleton/CardPlaceholder.svelte +87 -87
- package/dist/primitives/Skeleton/ImagePlaceholder.svelte +59 -59
- package/dist/primitives/Skeleton/ListPlaceholder.svelte +76 -76
- package/dist/primitives/Skeleton/Skeleton.stories.svelte +151 -151
- package/dist/primitives/Skeleton/Skeleton.svelte +26 -26
- package/dist/primitives/Spinner/Spinner.spec.js +84 -84
- package/dist/primitives/Spinner/Spinner.stories.svelte +29 -29
- package/dist/primitives/Spinner/Spinner.svelte +20 -20
- package/dist/primitives/Tabs/TabItem.svelte +49 -49
- package/dist/primitives/Tabs/Tabs.stories.svelte +112 -112
- package/dist/primitives/Tabs/Tabs.svelte +137 -137
- package/dist/primitives/Toggle.spec.js +221 -221
- package/dist/primitives/Toggle.stories.svelte +92 -92
- package/dist/primitives/Toggle.svelte +141 -141
- package/dist/primitives/Tooltip/Tooltip.svelte +83 -83
- package/dist/primitives/Typography/Typography.svelte +53 -53
- package/dist/primitives/ValidationError.spec.js +103 -103
- package/dist/primitives/ValidationError.stories.svelte +69 -69
- package/dist/primitives/ValidationError.svelte +29 -29
- package/dist/primitives/index.js +113 -113
- package/dist/recipes/CropImage/CropImage.spec.js +208 -208
- package/dist/recipes/CropImage/CropImage.stories.svelte +104 -104
- package/dist/recipes/CropImage/CropImage.svelte +241 -241
- package/dist/recipes/ImageUploader/ImageUploader.stories.svelte +125 -125
- package/dist/recipes/ImageUploader/ImageUploader.svelte +992 -992
- package/dist/recipes/SuperLogin/SuperLogin.spec.js +2 -2
- package/dist/recipes/SuperLogin/SuperLogin.svelte +1 -1
- package/dist/recipes/Toaster/Toaster.stories.svelte +62 -62
- package/dist/recipes/feedback/EmptyState/EmptyState.svelte +1 -1
- package/dist/recipes/feedback/ErrorDisplay.spec.js +69 -69
- package/dist/recipes/feedback/ErrorDisplay.stories.svelte +101 -101
- package/dist/recipes/feedback/ErrorDisplay.svelte +1 -1
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.spec.js +133 -133
- package/dist/recipes/feedback/StatusIndicator/StatusIndicator.svelte +157 -157
- package/dist/recipes/fields/CheckboxField.svelte +85 -85
- package/dist/recipes/fields/FormField.svelte +58 -58
- package/dist/recipes/fields/RadioGroup.svelte +95 -95
- package/dist/recipes/fields/SelectField.svelte +82 -82
- package/dist/recipes/fields/TextareaField.svelte +97 -97
- package/dist/recipes/fields/ToggleField.svelte +60 -60
- package/dist/recipes/fields/index.js +7 -7
- package/dist/recipes/inputs/MultiSelect.spec.js +263 -263
- package/dist/recipes/inputs/MultiSelect.stories.svelte +133 -133
- package/dist/recipes/inputs/MultiSelect.svelte +283 -283
- package/dist/recipes/inputs/OTPInput.spec.js +251 -251
- package/dist/recipes/inputs/OTPInput.stories.svelte +162 -162
- package/dist/recipes/inputs/OTPInput.svelte +117 -117
- package/dist/recipes/inputs/PasswordInput.svelte +22 -22
- package/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte +131 -131
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.stories.svelte +123 -123
- package/dist/recipes/inputs/PlaceAutocomplete/PlaceAutocomplete.svelte +336 -336
- package/dist/recipes/inputs/Search.svelte +102 -102
- package/dist/recipes/inputs/index.js +7 -7
- package/dist/recipes/modals/AlertModal.svelte +130 -130
- package/dist/recipes/modals/ConfirmationModal.spec.js +396 -396
- package/dist/recipes/modals/ConfirmationModal.stories.svelte +119 -119
- package/dist/recipes/modals/ConfirmationModal.svelte +162 -162
- package/dist/recipes/modals/InputModal.svelte +182 -182
- package/dist/recipes/modals/ModalStateManager.spec.js +100 -100
- package/dist/recipes/modals/ModalStateManager.svelte +77 -77
- package/dist/recipes/modals/ModalTestWrapper.svelte +65 -65
- package/dist/recipes/modals/StatusModal.svelte +206 -206
- package/dist/schemas/__tests__/auth.test.d.ts +2 -0
- package/dist/schemas/__tests__/auth.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/auth.test.js +210 -0
- package/dist/schemas/__tests__/common.test.d.ts +2 -0
- package/dist/schemas/__tests__/common.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/common.test.js +340 -0
- package/dist/schemas/__tests__/domain.test.d.ts +2 -0
- package/dist/schemas/__tests__/domain.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/domain.test.js +293 -0
- package/dist/schemas/__tests__/order.test.d.ts +2 -0
- package/dist/schemas/__tests__/order.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/order.test.js +349 -0
- package/dist/schemas/__tests__/user.test.d.ts +2 -0
- package/dist/schemas/__tests__/user.test.d.ts.map +1 -0
- package/dist/schemas/__tests__/user.test.js +325 -0
- package/dist/schemas/auth.d.ts +41 -0
- package/dist/schemas/auth.d.ts.map +1 -0
- package/dist/schemas/auth.js +69 -0
- package/dist/schemas/common.d.ts +43 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +157 -0
- package/dist/schemas/event.d.ts +82 -0
- package/dist/schemas/event.d.ts.map +1 -0
- package/dist/schemas/event.js +58 -0
- package/dist/schemas/index.d.ts +10 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/order.d.ts +111 -0
- package/dist/schemas/order.d.ts.map +1 -0
- package/dist/schemas/order.js +73 -0
- package/dist/schemas/performer.d.ts +133 -0
- package/dist/schemas/performer.d.ts.map +1 -0
- package/dist/schemas/performer.js +73 -0
- package/dist/schemas/promo.d.ts +87 -0
- package/dist/schemas/promo.d.ts.map +1 -0
- package/dist/schemas/promo.js +98 -0
- package/dist/schemas/ticket.d.ts +104 -0
- package/dist/schemas/ticket.d.ts.map +1 -0
- package/dist/schemas/ticket.js +82 -0
- package/dist/schemas/user.d.ts +92 -0
- package/dist/schemas/user.d.ts.map +1 -0
- package/dist/schemas/user.js +53 -0
- package/dist/schemas/venue.d.ts +95 -0
- package/dist/schemas/venue.d.ts.map +1 -0
- package/dist/schemas/venue.js +52 -0
- package/dist/services/EventService.js +79 -79
- package/dist/services/EventService.spec.js +217 -217
- package/dist/services/ShowService.js +144 -144
- package/dist/services/ShowService.spec.js +345 -345
- package/dist/stores/auth.svelte.spec.js +1 -1
- package/dist/stores/toaster.js +13 -13
- package/dist/stories/ButtonAuditReview.stories.svelte +14 -14
- package/dist/stories/ButtonAuditReview.svelte +427 -427
- package/dist/stories/PatternsGallery.stories.svelte +19 -19
- package/dist/stories/PatternsGallery.svelte +206 -206
- package/dist/stories/PrimitivesGallery.stories.svelte +19 -19
- package/dist/stories/PrimitivesGallery.svelte +756 -756
- package/dist/stories/RecipesGallery.stories.svelte +19 -19
- package/dist/stories/RecipesGallery.svelte +454 -454
- package/dist/stories/button-audit-manifest.json +11186 -11186
- package/dist/tailwind/preset.cjs +82 -82
- package/dist/telemetry.js +402 -402
- package/dist/telemetry.server.js +212 -212
- package/dist/telemetry.server.spec.js +437 -437
- package/dist/telemetry.spec.js +1173 -1168
- package/dist/tokens/__tests__/sizing.test.js +2 -2
- package/dist/tokens/sizing.d.ts +5 -0
- package/dist/tokens/sizing.d.ts.map +1 -1
- package/dist/tokens/sizing.js +6 -0
- package/dist/tokens/tokens.css +87 -87
- package/dist/tokens/typography-base.css +163 -163
- package/dist/tokens/utilities.css +353 -353
- package/dist/utils/apiConfig.js +117 -117
- package/dist/utils/apiConfig.spec.js +219 -219
- package/dist/utils/greetings.js +187 -187
- package/dist/utils/haptic.spec.js +1 -1
- package/dist/utils/imageValidation.js +121 -121
- package/dist/utils/transitions.js +4 -4
- package/dist/utils/utils.js +693 -693
- package/package.json +292 -292
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ORDER, STRING_LIMITS } from '../config';
|
|
3
|
+
import { VALIDATION_MESSAGES } from '../messages';
|
|
4
|
+
import { nonNegativeIntSchema, optionalDateSchema, optionalString, positiveIntSchema, priceSchema, requiredString, uuidSchema, } from './common';
|
|
5
|
+
export const ticketPriceTypeSchema = z.enum(['free', 'paid', 'donation']);
|
|
6
|
+
export const ticketVisibilitySchema = z.enum([
|
|
7
|
+
'visible',
|
|
8
|
+
'hidden',
|
|
9
|
+
'promoOnly',
|
|
10
|
+
]);
|
|
11
|
+
export const salesChannelSchema = z.enum([
|
|
12
|
+
'everywhere',
|
|
13
|
+
'onlineOnly',
|
|
14
|
+
'boxOfficeOnly',
|
|
15
|
+
]);
|
|
16
|
+
export const ticketSectionSchema = z.object({
|
|
17
|
+
name: requiredString(100, 'Section name'),
|
|
18
|
+
capacity: positiveIntSchema,
|
|
19
|
+
description: optionalString(500, 'Description'),
|
|
20
|
+
sortOrder: nonNegativeIntSchema.default(0),
|
|
21
|
+
});
|
|
22
|
+
const ticketTypeBaseSchema = z.object({
|
|
23
|
+
name: requiredString(STRING_LIMITS.TICKET_NAME_MAX, 'Ticket name'),
|
|
24
|
+
description: optionalString(STRING_LIMITS.TICKET_DESCRIPTION_MAX, 'Description'),
|
|
25
|
+
sectionId: z.number().int().optional(),
|
|
26
|
+
ticketType: ticketPriceTypeSchema.default('paid'),
|
|
27
|
+
price: priceSchema.optional().nullable(),
|
|
28
|
+
quantity: positiveIntSchema.optional(),
|
|
29
|
+
minimumTickets: z
|
|
30
|
+
.number()
|
|
31
|
+
.int()
|
|
32
|
+
.min(ORDER.MIN_TICKETS, VALIDATION_MESSAGES.tooSmall('Minimum', ORDER.MIN_TICKETS))
|
|
33
|
+
.max(ORDER.MAX_TICKETS, VALIDATION_MESSAGES.tooLarge('Minimum', ORDER.MAX_TICKETS))
|
|
34
|
+
.default(1),
|
|
35
|
+
maximumTickets: z
|
|
36
|
+
.number()
|
|
37
|
+
.int()
|
|
38
|
+
.min(ORDER.MIN_TICKETS, VALIDATION_MESSAGES.tooSmall('Maximum', ORDER.MIN_TICKETS))
|
|
39
|
+
.max(ORDER.MAX_TICKETS, VALIDATION_MESSAGES.tooLarge('Maximum', ORDER.MAX_TICKETS))
|
|
40
|
+
.default(ORDER.DEFAULT_MAX_TICKETS),
|
|
41
|
+
salesStartDateTime: optionalDateSchema,
|
|
42
|
+
salesEndDateTime: optionalDateSchema,
|
|
43
|
+
visibility: ticketVisibilitySchema.default('visible'),
|
|
44
|
+
salesChannel: salesChannelSchema.default('everywhere'),
|
|
45
|
+
sortOrder: nonNegativeIntSchema.default(0),
|
|
46
|
+
isActive: z.boolean().default(true),
|
|
47
|
+
});
|
|
48
|
+
export const ticketTypeSchema = ticketTypeBaseSchema
|
|
49
|
+
.refine(data => data.minimumTickets <= data.maximumTickets, {
|
|
50
|
+
message: VALIDATION_MESSAGES.MIN_EXCEEDS_MAX,
|
|
51
|
+
path: ['minimumTickets'],
|
|
52
|
+
})
|
|
53
|
+
.refine(data => {
|
|
54
|
+
if (data.salesStartDateTime && data.salesEndDateTime) {
|
|
55
|
+
return data.salesEndDateTime > data.salesStartDateTime;
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}, {
|
|
59
|
+
message: VALIDATION_MESSAGES.END_DATE_AFTER_START,
|
|
60
|
+
path: ['salesEndDateTime'],
|
|
61
|
+
});
|
|
62
|
+
export const ticketTypeUpdateSchema = ticketTypeBaseSchema.partial();
|
|
63
|
+
export const cartItemSchema = z.object({
|
|
64
|
+
ticketTypeId: z.union([uuidSchema, z.number().int().positive()]),
|
|
65
|
+
quantity: z
|
|
66
|
+
.number()
|
|
67
|
+
.int()
|
|
68
|
+
.min(1)
|
|
69
|
+
.max(ORDER.MAX_TICKETS, VALIDATION_MESSAGES.tooLarge('Quantity', ORDER.MAX_TICKETS)),
|
|
70
|
+
});
|
|
71
|
+
export const cartSchema = z.object({
|
|
72
|
+
items: z.array(cartItemSchema).min(1, 'Cart must have at least one item'),
|
|
73
|
+
promoCode: z.string().optional(),
|
|
74
|
+
});
|
|
75
|
+
export const ticketTransferSchema = z.object({
|
|
76
|
+
ticketId: uuidSchema,
|
|
77
|
+
recipientEmail: z
|
|
78
|
+
.string()
|
|
79
|
+
.min(1, VALIDATION_MESSAGES.REQUIRED)
|
|
80
|
+
.email(VALIDATION_MESSAGES.INVALID_EMAIL),
|
|
81
|
+
recipientName: requiredString(100, 'Recipient name'),
|
|
82
|
+
});
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const userRoleSchema: z.ZodEnum<{
|
|
3
|
+
admin: "admin";
|
|
4
|
+
owner: "owner";
|
|
5
|
+
manager: "manager";
|
|
6
|
+
staff: "staff";
|
|
7
|
+
viewer: "viewer";
|
|
8
|
+
}>;
|
|
9
|
+
export type UserRole = z.infer<typeof userRoleSchema>;
|
|
10
|
+
export declare const userProfileSchema: z.ZodObject<{
|
|
11
|
+
firstName: z.ZodString;
|
|
12
|
+
lastName: z.ZodString;
|
|
13
|
+
email: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
14
|
+
phone: z.ZodPipe<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>, z.ZodTransform<string | undefined, string | undefined>>;
|
|
15
|
+
bio: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
16
|
+
profileImageUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<File, File>, z.ZodNull]>>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type UserProfileInput = z.infer<typeof userProfileSchema>;
|
|
19
|
+
export declare const userProfileUpdateSchema: z.ZodObject<{
|
|
20
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
21
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
22
|
+
phone: z.ZodOptional<z.ZodPipe<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>, z.ZodTransform<string | undefined, string | undefined>>>;
|
|
23
|
+
bio: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
24
|
+
profileImageUrl: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<File, File>, z.ZodNull]>>>;
|
|
25
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
export type UserProfileUpdateInput = z.infer<typeof userProfileUpdateSchema>;
|
|
28
|
+
export declare const userPreferencesSchema: z.ZodObject<{
|
|
29
|
+
emailNotifications: z.ZodDefault<z.ZodBoolean>;
|
|
30
|
+
smsNotifications: z.ZodDefault<z.ZodBoolean>;
|
|
31
|
+
marketingEmails: z.ZodDefault<z.ZodBoolean>;
|
|
32
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
33
|
+
language: z.ZodDefault<z.ZodString>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
export type UserPreferencesInput = z.infer<typeof userPreferencesSchema>;
|
|
36
|
+
export declare const teamMemberSchema: z.ZodObject<{
|
|
37
|
+
email: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
38
|
+
firstName: z.ZodString;
|
|
39
|
+
lastName: z.ZodString;
|
|
40
|
+
role: z.ZodEnum<{
|
|
41
|
+
admin: "admin";
|
|
42
|
+
owner: "owner";
|
|
43
|
+
manager: "manager";
|
|
44
|
+
staff: "staff";
|
|
45
|
+
viewer: "viewer";
|
|
46
|
+
}>;
|
|
47
|
+
venueIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export type TeamMemberInput = z.infer<typeof teamMemberSchema>;
|
|
50
|
+
export declare const teamMemberUpdateSchema: z.ZodObject<{
|
|
51
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
52
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
53
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
54
|
+
admin: "admin";
|
|
55
|
+
owner: "owner";
|
|
56
|
+
manager: "manager";
|
|
57
|
+
staff: "staff";
|
|
58
|
+
viewer: "viewer";
|
|
59
|
+
}>>;
|
|
60
|
+
venueIds: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
|
|
61
|
+
email: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
export type TeamMemberUpdateInput = z.infer<typeof teamMemberUpdateSchema>;
|
|
64
|
+
export declare const teamInviteSchema: z.ZodObject<{
|
|
65
|
+
email: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>;
|
|
66
|
+
role: z.ZodEnum<{
|
|
67
|
+
admin: "admin";
|
|
68
|
+
owner: "owner";
|
|
69
|
+
manager: "manager";
|
|
70
|
+
staff: "staff";
|
|
71
|
+
viewer: "viewer";
|
|
72
|
+
}>;
|
|
73
|
+
venueIds: z.ZodArray<z.ZodNumber>;
|
|
74
|
+
message: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export type TeamInviteInput = z.infer<typeof teamInviteSchema>;
|
|
77
|
+
export declare const userFilterSchema: z.ZodObject<{
|
|
78
|
+
search: z.ZodOptional<z.ZodString>;
|
|
79
|
+
role: z.ZodOptional<z.ZodEnum<{
|
|
80
|
+
admin: "admin";
|
|
81
|
+
owner: "owner";
|
|
82
|
+
manager: "manager";
|
|
83
|
+
staff: "staff";
|
|
84
|
+
viewer: "viewer";
|
|
85
|
+
}>>;
|
|
86
|
+
venueId: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
88
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
export type UserFilter = z.infer<typeof userFilterSchema>;
|
|
92
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/lib/schemas/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,cAAc;;;;;;EAMzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,iBAAiB;;;;;;;iBAO5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,uBAAuB;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAM3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAEjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E,eAAO,MAAM,gBAAgB;;;;;;;;;;;iBAO3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAO3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { emailSchema, imageSchema, optionalString, phoneSchema, requiredString, } from './common';
|
|
3
|
+
export const userRoleSchema = z.enum([
|
|
4
|
+
'owner',
|
|
5
|
+
'admin',
|
|
6
|
+
'manager',
|
|
7
|
+
'staff',
|
|
8
|
+
'viewer',
|
|
9
|
+
]);
|
|
10
|
+
export const userProfileSchema = z.object({
|
|
11
|
+
firstName: requiredString(50, 'First name'),
|
|
12
|
+
lastName: requiredString(50, 'Last name'),
|
|
13
|
+
email: emailSchema,
|
|
14
|
+
phone: phoneSchema,
|
|
15
|
+
bio: optionalString(500, 'Bio'),
|
|
16
|
+
profileImageUrl: imageSchema,
|
|
17
|
+
});
|
|
18
|
+
export const userProfileUpdateSchema = userProfileSchema.partial().extend({
|
|
19
|
+
email: emailSchema.optional(),
|
|
20
|
+
});
|
|
21
|
+
export const userPreferencesSchema = z.object({
|
|
22
|
+
emailNotifications: z.boolean().default(true),
|
|
23
|
+
smsNotifications: z.boolean().default(false),
|
|
24
|
+
marketingEmails: z.boolean().default(false),
|
|
25
|
+
timezone: z.string().optional(),
|
|
26
|
+
language: z.string().default('en'),
|
|
27
|
+
});
|
|
28
|
+
export const teamMemberSchema = z.object({
|
|
29
|
+
email: emailSchema,
|
|
30
|
+
firstName: requiredString(50, 'First name'),
|
|
31
|
+
lastName: requiredString(50, 'Last name'),
|
|
32
|
+
role: userRoleSchema,
|
|
33
|
+
venueIds: z.array(z.number().int().positive()).optional(),
|
|
34
|
+
});
|
|
35
|
+
export const teamMemberUpdateSchema = teamMemberSchema.partial().extend({
|
|
36
|
+
email: emailSchema.optional(),
|
|
37
|
+
});
|
|
38
|
+
export const teamInviteSchema = z.object({
|
|
39
|
+
email: emailSchema,
|
|
40
|
+
role: userRoleSchema,
|
|
41
|
+
venueIds: z
|
|
42
|
+
.array(z.number().int().positive())
|
|
43
|
+
.min(1, 'At least one venue must be selected'),
|
|
44
|
+
message: optionalString(500, 'Message'),
|
|
45
|
+
});
|
|
46
|
+
export const userFilterSchema = z.object({
|
|
47
|
+
search: z.string().optional(),
|
|
48
|
+
role: userRoleSchema.optional(),
|
|
49
|
+
venueId: z.number().int().positive().optional(),
|
|
50
|
+
isActive: z.boolean().optional(),
|
|
51
|
+
limit: z.number().int().positive().optional(),
|
|
52
|
+
offset: z.number().int().min(0).optional(),
|
|
53
|
+
});
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const venueSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
description: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
5
|
+
address: z.ZodObject<{
|
|
6
|
+
street: z.ZodString;
|
|
7
|
+
street2: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
8
|
+
city: z.ZodString;
|
|
9
|
+
state: z.ZodString;
|
|
10
|
+
zipCode: z.ZodString;
|
|
11
|
+
country: z.ZodDefault<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
phone: z.ZodPipe<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>, z.ZodTransform<string | undefined, string | undefined>>;
|
|
14
|
+
email: z.ZodUnion<[z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>, z.ZodLiteral<"">]>;
|
|
15
|
+
website: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
16
|
+
timezone: z.ZodString;
|
|
17
|
+
capacity: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
imageUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<File, File>, z.ZodNull]>>;
|
|
19
|
+
logoUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<File, File>, z.ZodNull]>>;
|
|
20
|
+
socialLinks: z.ZodOptional<z.ZodObject<{
|
|
21
|
+
facebook: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
22
|
+
instagram: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
23
|
+
twitter: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
24
|
+
tiktok: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
25
|
+
youtube: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
26
|
+
website: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
27
|
+
}, z.core.$strip>>;
|
|
28
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type VenueInput = z.infer<typeof venueSchema>;
|
|
31
|
+
export declare const venueUpdateSchema: z.ZodObject<{
|
|
32
|
+
name: z.ZodOptional<z.ZodString>;
|
|
33
|
+
description: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
34
|
+
address: z.ZodOptional<z.ZodObject<{
|
|
35
|
+
street: z.ZodString;
|
|
36
|
+
street2: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
37
|
+
city: z.ZodString;
|
|
38
|
+
state: z.ZodString;
|
|
39
|
+
zipCode: z.ZodString;
|
|
40
|
+
country: z.ZodDefault<z.ZodString>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
phone: z.ZodOptional<z.ZodPipe<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>, z.ZodTransform<string | undefined, string | undefined>>>;
|
|
43
|
+
email: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodString>>, z.ZodLiteral<"">]>>;
|
|
44
|
+
website: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
45
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
46
|
+
capacity: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
|
|
47
|
+
imageUrl: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<File, File>, z.ZodNull]>>>;
|
|
48
|
+
logoUrl: z.ZodOptional<z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<File, File>, z.ZodNull]>>>;
|
|
49
|
+
socialLinks: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
50
|
+
facebook: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
51
|
+
instagram: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
52
|
+
twitter: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
53
|
+
tiktok: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
54
|
+
youtube: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
55
|
+
website: z.ZodOptional<z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>>;
|
|
56
|
+
}, z.core.$strip>>>;
|
|
57
|
+
isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type VenueUpdateInput = z.infer<typeof venueUpdateSchema>;
|
|
60
|
+
export declare const stageSchema: z.ZodObject<{
|
|
61
|
+
name: z.ZodString;
|
|
62
|
+
description: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
63
|
+
capacity: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
sortOrder: z.ZodDefault<z.ZodNumber>;
|
|
65
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
66
|
+
}, z.core.$strip>;
|
|
67
|
+
export type StageInput = z.infer<typeof stageSchema>;
|
|
68
|
+
export declare const venueSettingsSchema: z.ZodObject<{
|
|
69
|
+
serviceFeePercentage: z.ZodDefault<z.ZodNumber>;
|
|
70
|
+
serviceFeeFixed: z.ZodDefault<z.ZodNumber>;
|
|
71
|
+
absorbServiceFee: z.ZodDefault<z.ZodBoolean>;
|
|
72
|
+
allowRefunds: z.ZodDefault<z.ZodBoolean>;
|
|
73
|
+
refundCutoffDays: z.ZodDefault<z.ZodNumber>;
|
|
74
|
+
requireApproval: z.ZodDefault<z.ZodBoolean>;
|
|
75
|
+
ticketTransfersEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
76
|
+
waitlistEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
export type VenueSettingsInput = z.infer<typeof venueSettingsSchema>;
|
|
79
|
+
export declare const venueFaqSchema: z.ZodObject<{
|
|
80
|
+
question: z.ZodString;
|
|
81
|
+
answer: z.ZodString;
|
|
82
|
+
sortOrder: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
84
|
+
}, z.core.$strip>;
|
|
85
|
+
export type VenueFaqInput = z.infer<typeof venueFaqSchema>;
|
|
86
|
+
export declare const venueFilterSchema: z.ZodObject<{
|
|
87
|
+
search: z.ZodOptional<z.ZodString>;
|
|
88
|
+
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
city: z.ZodOptional<z.ZodString>;
|
|
90
|
+
state: z.ZodOptional<z.ZodString>;
|
|
91
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
92
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
export type VenueFilter = z.infer<typeof venueFilterSchema>;
|
|
95
|
+
//# sourceMappingURL=venue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venue.d.ts","sourceRoot":"","sources":["../../src/lib/schemas/venue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBtB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAErD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwB,CAAC;AACvD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,WAAW;;;;;;iBAMtB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAErD,eAAO,MAAM,mBAAmB;;;;;;;;;iBAS9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;;;;iBAO5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { CAPACITY, STRING_LIMITS } from '../config';
|
|
3
|
+
import { VALIDATION_MESSAGES } from '../messages';
|
|
4
|
+
import { addressSchema, emailSchema, imageSchema, optionalString, phoneSchema, positiveIntSchema, requiredString, socialLinksSchema, timezoneSchema, urlSchema, } from './common';
|
|
5
|
+
export const venueSchema = z.object({
|
|
6
|
+
name: requiredString(STRING_LIMITS.VENUE_NAME_MAX, 'Venue name'),
|
|
7
|
+
description: optionalString(STRING_LIMITS.VENUE_DESCRIPTION_MAX, 'Description'),
|
|
8
|
+
address: addressSchema,
|
|
9
|
+
phone: phoneSchema,
|
|
10
|
+
email: emailSchema.optional().or(z.literal('')),
|
|
11
|
+
website: urlSchema,
|
|
12
|
+
timezone: timezoneSchema,
|
|
13
|
+
capacity: positiveIntSchema
|
|
14
|
+
.max(CAPACITY.MAX_CAPACITY, VALIDATION_MESSAGES.tooLarge('Capacity', CAPACITY.MAX_CAPACITY))
|
|
15
|
+
.optional(),
|
|
16
|
+
imageUrl: imageSchema,
|
|
17
|
+
logoUrl: imageSchema,
|
|
18
|
+
socialLinks: socialLinksSchema.optional(),
|
|
19
|
+
isActive: z.boolean().default(true),
|
|
20
|
+
});
|
|
21
|
+
export const venueUpdateSchema = venueSchema.partial();
|
|
22
|
+
export const stageSchema = z.object({
|
|
23
|
+
name: requiredString(100, 'Stage name'),
|
|
24
|
+
description: optionalString(500, 'Description'),
|
|
25
|
+
capacity: positiveIntSchema.optional(),
|
|
26
|
+
sortOrder: z.number().int().min(0).default(0),
|
|
27
|
+
isActive: z.boolean().default(true),
|
|
28
|
+
});
|
|
29
|
+
export const venueSettingsSchema = z.object({
|
|
30
|
+
serviceFeePercentage: z.number().min(0).max(0.15).default(0.03),
|
|
31
|
+
serviceFeeFixed: z.number().min(0).max(10).default(1.29),
|
|
32
|
+
absorbServiceFee: z.boolean().default(false),
|
|
33
|
+
allowRefunds: z.boolean().default(true),
|
|
34
|
+
refundCutoffDays: z.number().int().min(0).max(30).default(7),
|
|
35
|
+
requireApproval: z.boolean().default(false),
|
|
36
|
+
ticketTransfersEnabled: z.boolean().default(true),
|
|
37
|
+
waitlistEnabled: z.boolean().default(false),
|
|
38
|
+
});
|
|
39
|
+
export const venueFaqSchema = z.object({
|
|
40
|
+
question: requiredString(200, 'Question'),
|
|
41
|
+
answer: requiredString(2000, 'Answer'),
|
|
42
|
+
sortOrder: z.number().int().min(0).default(0),
|
|
43
|
+
isActive: z.boolean().default(true),
|
|
44
|
+
});
|
|
45
|
+
export const venueFilterSchema = z.object({
|
|
46
|
+
search: z.string().optional(),
|
|
47
|
+
isActive: z.boolean().optional(),
|
|
48
|
+
city: z.string().optional(),
|
|
49
|
+
state: z.string().optional(),
|
|
50
|
+
limit: z.number().int().positive().optional(),
|
|
51
|
+
offset: z.number().int().min(0).optional(),
|
|
52
|
+
});
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
import { addDays, startOfWeek } from "date-fns";
|
|
2
|
-
import { buildApiUrl } from "../utils/apiConfig";
|
|
3
|
-
|
|
4
|
-
let mockEvents = [];
|
|
5
|
-
|
|
6
|
-
export async function fetchEventsFromAPI(venueId) {
|
|
7
|
-
try {
|
|
8
|
-
const url = venueId
|
|
9
|
-
? buildApiUrl(`/api/v2/public/events/venue/${venueId}`)
|
|
10
|
-
: buildApiUrl("/api/v2/public/events/venue");
|
|
11
|
-
const response = await fetch(url);
|
|
12
|
-
if (response.ok) {
|
|
13
|
-
const events = await response.json();
|
|
14
|
-
return events.map((event) => ({
|
|
15
|
-
id: event.ID,
|
|
16
|
-
date: event.startDateTime,
|
|
17
|
-
title: event.title,
|
|
18
|
-
}));
|
|
19
|
-
} else {
|
|
20
|
-
console.error("Failed to load events:", response.status);
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
} catch (error) {
|
|
24
|
-
console.error("Error fetching events:", error);
|
|
25
|
-
return [];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export async function fetchEventsForMonth(year, month) {
|
|
30
|
-
mockEvents = await fetchEventsFromAPI();
|
|
31
|
-
|
|
32
|
-
return new Promise((resolve) => {
|
|
33
|
-
setTimeout(() => {
|
|
34
|
-
resolve(
|
|
35
|
-
mockEvents.filter((event) =>
|
|
36
|
-
event.date.startsWith(`${year}-${String(month).padStart(2, "0")}`)
|
|
37
|
-
)
|
|
38
|
-
);
|
|
39
|
-
}, 500);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export async function fetchEventsForWeek(date) {
|
|
44
|
-
mockEvents = await fetchEventsFromAPI();
|
|
45
|
-
|
|
46
|
-
const startOfWeekDate = startOfWeek(date, { weekStartsOn: 1 });
|
|
47
|
-
const endOfWeekDate = addDays(startOfWeekDate, 6);
|
|
48
|
-
|
|
49
|
-
return new Promise((resolve) => {
|
|
50
|
-
setTimeout(() => {
|
|
51
|
-
const filteredEvents = mockEvents.filter((event) => {
|
|
52
|
-
const eventDate = new Date(event.date).getTime();
|
|
53
|
-
return (
|
|
54
|
-
eventDate >= startOfWeekDate.getTime() &&
|
|
55
|
-
eventDate <= endOfWeekDate.getTime()
|
|
56
|
-
);
|
|
57
|
-
});
|
|
58
|
-
resolve(filteredEvents);
|
|
59
|
-
}, 500);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export async function fetchEventsForDay(date) {
|
|
64
|
-
mockEvents = await fetchEventsFromAPI();
|
|
65
|
-
|
|
66
|
-
return new Promise((resolve) => {
|
|
67
|
-
setTimeout(() => {
|
|
68
|
-
const filteredEvents = mockEvents.filter((event) => {
|
|
69
|
-
const eventDate = new Date(event.date);
|
|
70
|
-
return (
|
|
71
|
-
eventDate.getUTCDate() === date.getUTCDate() &&
|
|
72
|
-
eventDate.getUTCMonth() === date.getUTCMonth() &&
|
|
73
|
-
eventDate.getUTCFullYear() === date.getUTCFullYear()
|
|
74
|
-
);
|
|
75
|
-
});
|
|
76
|
-
resolve(filteredEvents);
|
|
77
|
-
}, 500);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
1
|
+
import { addDays, startOfWeek } from "date-fns";
|
|
2
|
+
import { buildApiUrl } from "../utils/apiConfig";
|
|
3
|
+
|
|
4
|
+
let mockEvents = [];
|
|
5
|
+
|
|
6
|
+
export async function fetchEventsFromAPI(venueId) {
|
|
7
|
+
try {
|
|
8
|
+
const url = venueId
|
|
9
|
+
? buildApiUrl(`/api/v2/public/events/venue/${venueId}`)
|
|
10
|
+
: buildApiUrl("/api/v2/public/events/venue");
|
|
11
|
+
const response = await fetch(url);
|
|
12
|
+
if (response.ok) {
|
|
13
|
+
const events = await response.json();
|
|
14
|
+
return events.map((event) => ({
|
|
15
|
+
id: event.ID,
|
|
16
|
+
date: event.startDateTime,
|
|
17
|
+
title: event.title,
|
|
18
|
+
}));
|
|
19
|
+
} else {
|
|
20
|
+
console.error("Failed to load events:", response.status);
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
} catch (error) {
|
|
24
|
+
console.error("Error fetching events:", error);
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export async function fetchEventsForMonth(year, month) {
|
|
30
|
+
mockEvents = await fetchEventsFromAPI();
|
|
31
|
+
|
|
32
|
+
return new Promise((resolve) => {
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
resolve(
|
|
35
|
+
mockEvents.filter((event) =>
|
|
36
|
+
event.date.startsWith(`${year}-${String(month).padStart(2, "0")}`)
|
|
37
|
+
)
|
|
38
|
+
);
|
|
39
|
+
}, 500);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export async function fetchEventsForWeek(date) {
|
|
44
|
+
mockEvents = await fetchEventsFromAPI();
|
|
45
|
+
|
|
46
|
+
const startOfWeekDate = startOfWeek(date, { weekStartsOn: 1 });
|
|
47
|
+
const endOfWeekDate = addDays(startOfWeekDate, 6);
|
|
48
|
+
|
|
49
|
+
return new Promise((resolve) => {
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
const filteredEvents = mockEvents.filter((event) => {
|
|
52
|
+
const eventDate = new Date(event.date).getTime();
|
|
53
|
+
return (
|
|
54
|
+
eventDate >= startOfWeekDate.getTime() &&
|
|
55
|
+
eventDate <= endOfWeekDate.getTime()
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
resolve(filteredEvents);
|
|
59
|
+
}, 500);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export async function fetchEventsForDay(date) {
|
|
64
|
+
mockEvents = await fetchEventsFromAPI();
|
|
65
|
+
|
|
66
|
+
return new Promise((resolve) => {
|
|
67
|
+
setTimeout(() => {
|
|
68
|
+
const filteredEvents = mockEvents.filter((event) => {
|
|
69
|
+
const eventDate = new Date(event.date);
|
|
70
|
+
return (
|
|
71
|
+
eventDate.getUTCDate() === date.getUTCDate() &&
|
|
72
|
+
eventDate.getUTCMonth() === date.getUTCMonth() &&
|
|
73
|
+
eventDate.getUTCFullYear() === date.getUTCFullYear()
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
resolve(filteredEvents);
|
|
77
|
+
}, 500);
|
|
78
|
+
});
|
|
79
|
+
}
|