@@ -924,8 +924,8 @@ export class InputValidator<Schema extends SchemaDef> {
924924 }
925925
926926 private makeUpdateDataSchema ( model : string , withoutFields : string [ ] = [ ] , withoutRelationFields = false ) {
927- const regularAndFkFields : any = { } ;
928- const regularAndRelationFields : any = { } ;
927+ const uncheckedVariantFields : Record < string , ZodType > = { } ;
928+ const checkedVariantFields : Record < string , ZodType > = { } ;
929929 const modelDef = requireModel ( this . schema , model ) ;
930930 const hasRelation = Object . entries ( modelDef . fields ) . some (
931931 ( [ key , value ] ) => value . relation && ! withoutFields . includes ( key ) ,
@@ -957,7 +957,11 @@ export class InputValidator<Schema extends SchemaDef> {
957957 if ( fieldDef . optional && ! fieldDef . array ) {
958958 fieldSchema = fieldSchema . nullable ( ) ;
959959 }
960- regularAndRelationFields [ field ] = fieldSchema ;
960+ checkedVariantFields [ field ] = fieldSchema ;
961+ if ( fieldDef . array || ! fieldDef . relation . references ) {
962+ // non-owned relation
963+ uncheckedVariantFields [ field ] = fieldSchema ;
964+ }
961965 } else {
962966 let fieldSchema : ZodType = this . makePrimitiveSchema ( fieldDef . type ) . optional ( ) ;
963967
@@ -1000,17 +1004,18 @@ export class InputValidator<Schema extends SchemaDef> {
10001004 fieldSchema = fieldSchema . nullable ( ) ;
10011005 }
10021006
1003- regularAndFkFields [ field ] = fieldSchema ;
1007+ uncheckedVariantFields [ field ] = fieldSchema ;
10041008 if ( ! fieldDef . foreignKeyFor ) {
1005- regularAndRelationFields [ field ] = fieldSchema ;
1009+ // non-fk field
1010+ checkedVariantFields [ field ] = fieldSchema ;
10061011 }
10071012 }
10081013 } ) ;
10091014
10101015 if ( ! hasRelation ) {
1011- return z . object ( regularAndFkFields ) . strict ( ) ;
1016+ return z . object ( uncheckedVariantFields ) . strict ( ) ;
10121017 } else {
1013- return z . union ( [ z . object ( regularAndFkFields ) . strict ( ) , z . object ( regularAndRelationFields ) . strict ( ) ] ) ;
1018+ return z . union ( [ z . object ( uncheckedVariantFields ) . strict ( ) , z . object ( checkedVariantFields ) . strict ( ) ] ) ;
10141019 }
10151020 }
10161021
0 commit comments