Sort zod types

This commit is contained in:
MartinBraquet
2025-10-27 00:39:48 +01:00
parent 0a41ebbcda
commit cdbce13c49

View File

@@ -47,60 +47,56 @@ export const zBoolean = z
.transform((val) => val === true || val === "true");
export const baseProfilesSchema = z.object({
// Required fields
age: z.number().min(18).max(100).optional(),
gender: genderType,
pref_gender: genderTypes,
pref_age_min: z.number().min(18).max(100).optional(),
pref_age_max: z.number().min(18).max(100).optional(),
pref_relation_styles: z.array(z.string()),
wants_kids_strength: z.number(),
looking_for_matches: zBoolean,
photo_urls: z.array(z.string()),
visibility: z.union([z.literal('public'), z.literal('member')]),
bio: contentSchema.optional().nullable(),
bio_length: z.number().optional().nullable(),
geodb_city_id: z.string().optional(),
city: z.string(),
region_code: z.string().optional(),
country: z.string().optional(),
city_latitude: z.number().optional(),
city_longitude: z.number().optional(),
country: z.string().optional(),
gender: genderType,
geodb_city_id: z.string().optional(),
looking_for_matches: zBoolean,
photo_urls: z.array(z.string()),
pinned_url: z.string(),
pref_age_max: z.number().min(18).max(100).optional(),
pref_age_min: z.number().min(18).max(100).optional(),
pref_gender: genderTypes,
pref_relation_styles: z.array(z.string()),
referred_by_username: z.string().optional(),
region_code: z.string().optional(),
visibility: z.union([z.literal('public'), z.literal('member')]),
wants_kids_strength: z.number(),
})
const optionalProfilesSchema = z.object({
avatar_url: z.string().optional(),
bio: contentSchema.optional().nullable(),
born_in_location: z.string().optional(),
comments_enabled: zBoolean.optional(),
company: z.string().optional(),
diet: z.array(z.string()).optional(),
disabled: zBoolean.optional(),
drinks_max: z.number().min(0).optional(),
drinks_min: z.number().min(0).optional(),
drinks_per_month: z.number().min(0).optional(),
education_level: z.string().optional(),
ethnicity: z.array(z.string()).optional(),
has_kids: z.number().min(0).optional(),
has_pets: zBoolean.optional(),
height_in_inches: z.number().optional(),
is_smoker: zBoolean.optional(),
occupation: z.string().optional(),
occupation_title: z.string().optional(),
political_beliefs: z.array(z.string()).optional(),
political_details: z.string().optional(),
pref_romantic_styles: z.array(z.string()),
religion: z.array(z.string()).optional(),
religious_belief_strength: z.number().optional(),
religious_beliefs: z.string().optional(),
political_details: z.string().optional(),
religion: z.array(z.string()).optional(),
ethnicity: z.array(z.string()).optional(),
born_in_location: z.string().optional(),
height_in_inches: z.number().optional(),
has_pets: zBoolean.optional(),
education_level: z.string().optional(),
is_smoker: zBoolean.optional(),
disabled: zBoolean.optional(),
drinks_per_month: z.number().min(0).optional(),
diet: z.array(z.string()).optional(),
has_kids: z.number().min(0).optional(),
university: z.string().optional(),
occupation_title: z.string().optional(),
occupation: z.string().optional(),
company: z.string().optional(),
comments_enabled: zBoolean.optional(),
website: z.string().optional(),
bio: contentSchema.optional().nullable(),
twitter: z.string().optional(),
avatar_url: z.string().optional(),
pref_romantic_styles: z.array(z.string()),
drinks_min: z.number().min(0).optional(),
drinks_max: z.number().min(0).optional(),
university: z.string().optional(),
website: z.string().optional(),
})
export const combinedProfileSchema =