mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 07:31:13 -05:00
Refactor code structure and remove redundant changes
This commit is contained in:
78
src-old/lib/locationValidation.ts
Normal file
78
src-old/lib/locationValidation.ts
Normal file
@@ -0,0 +1,78 @@
|
||||
import { z } from 'zod';
|
||||
import { personalLocationSchema, preferredPronounsSchema } from '@/lib/validation';
|
||||
import type { AccessibilityOptions } from '@/types/location';
|
||||
|
||||
/**
|
||||
* Schema for accessibility options
|
||||
*/
|
||||
export const accessibilityOptionsSchema = z.object({
|
||||
font_size: z.enum(['small', 'medium', 'large'] as const),
|
||||
high_contrast: z.boolean(),
|
||||
reduced_motion: z.boolean()
|
||||
});
|
||||
|
||||
/**
|
||||
* Schema for location form data
|
||||
*/
|
||||
export const locationFormSchema = z.object({
|
||||
personal_location: personalLocationSchema,
|
||||
home_park_id: z.string().uuid('Invalid park ID').optional().nullable(),
|
||||
timezone: z.string().min(1, 'Timezone is required'),
|
||||
preferred_language: z.string().min(2, 'Language code must be at least 2 characters').max(10),
|
||||
preferred_pronouns: preferredPronounsSchema
|
||||
});
|
||||
|
||||
/**
|
||||
* Default accessibility options for new users
|
||||
*/
|
||||
export const DEFAULT_ACCESSIBILITY_OPTIONS: AccessibilityOptions = {
|
||||
font_size: 'medium',
|
||||
high_contrast: false,
|
||||
reduced_motion: false
|
||||
};
|
||||
|
||||
/**
|
||||
* Common timezones for selection
|
||||
*/
|
||||
export const COMMON_TIMEZONES = [
|
||||
'UTC',
|
||||
'America/New_York',
|
||||
'America/Chicago',
|
||||
'America/Denver',
|
||||
'America/Los_Angeles',
|
||||
'America/Anchorage',
|
||||
'America/Toronto',
|
||||
'America/Vancouver',
|
||||
'America/Mexico_City',
|
||||
'America/Sao_Paulo',
|
||||
'Europe/London',
|
||||
'Europe/Paris',
|
||||
'Europe/Berlin',
|
||||
'Europe/Madrid',
|
||||
'Europe/Rome',
|
||||
'Europe/Stockholm',
|
||||
'Europe/Moscow',
|
||||
'Asia/Dubai',
|
||||
'Asia/Kolkata',
|
||||
'Asia/Bangkok',
|
||||
'Asia/Singapore',
|
||||
'Asia/Shanghai',
|
||||
'Asia/Tokyo',
|
||||
'Asia/Seoul',
|
||||
'Australia/Sydney',
|
||||
'Australia/Melbourne',
|
||||
'Pacific/Auckland'
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* Validate park option data
|
||||
*/
|
||||
export const parkOptionSchema = z.object({
|
||||
id: z.string().uuid(),
|
||||
name: z.string(),
|
||||
location: z.object({
|
||||
city: z.string().optional(),
|
||||
state_province: z.string().optional(),
|
||||
country: z.string()
|
||||
}).optional()
|
||||
});
|
||||
Reference in New Issue
Block a user