@@ -42,6 +42,10 @@ const genderType = z.string()
4242// ])
4343const genderTypes = z . array ( genderType )
4444
45+ export const zBoolean = z
46+ . union ( [ z . boolean ( ) , z . string ( ) ] )
47+ . transform ( ( val ) => val === true || val === "true" ) ;
48+
4549export const baseProfilesSchema = z . object ( {
4650 // Required fields
4751 age : z . number ( ) . min ( 18 ) . max ( 100 ) . optional ( ) ,
@@ -51,7 +55,7 @@ export const baseProfilesSchema = z.object({
5155 pref_age_max : z . number ( ) . min ( 18 ) . max ( 100 ) . optional ( ) ,
5256 pref_relation_styles : z . array ( z . string ( ) ) ,
5357 wants_kids_strength : z . number ( ) ,
54- looking_for_matches : z . boolean ( ) ,
58+ looking_for_matches : zBoolean ,
5559 photo_urls : z . array ( z . string ( ) ) ,
5660 visibility : z . union ( [ z . literal ( 'public' ) , z . literal ( 'member' ) ] ) ,
5761
@@ -76,17 +80,17 @@ const optionalProfilesSchema = z.object({
7680 ethnicity : z . array ( z . string ( ) ) . optional ( ) ,
7781 born_in_location : z . string ( ) . optional ( ) ,
7882 height_in_inches : z . number ( ) . optional ( ) ,
79- has_pets : z . boolean ( ) . optional ( ) ,
83+ has_pets : zBoolean . optional ( ) . optional ( ) ,
8084 education_level : z . string ( ) . optional ( ) ,
81- is_smoker : z . boolean ( ) . optional ( ) ,
85+ is_smoker : zBoolean . optional ( ) . optional ( ) ,
8286 drinks_per_month : z . number ( ) . min ( 0 ) . optional ( ) ,
8387 diet : z . array ( z . string ( ) ) . optional ( ) ,
8488 has_kids : z . number ( ) . min ( 0 ) . optional ( ) ,
8589 university : z . string ( ) . optional ( ) ,
8690 occupation_title : z . string ( ) . optional ( ) ,
8791 occupation : z . string ( ) . optional ( ) ,
8892 company : z . string ( ) . optional ( ) ,
89- comments_enabled : z . boolean ( ) . optional ( ) ,
93+ comments_enabled : zBoolean . optional ( ) . optional ( ) ,
9094 website : z . string ( ) . optional ( ) ,
9195 bio : contentSchema . optional ( ) . nullable ( ) ,
9296 twitter : z . string ( ) . optional ( ) ,
0 commit comments