@@ -22,7 +22,7 @@ const prepResourceSchema = z.object({
2222 url : z . string ( ) . trim ( ) . url ( ) . max ( 500 ) . optional ( ) ,
2323} ) ;
2424
25- export const createExperienceSchema = z . object ( {
25+ const createExperienceBaseSchema = z . object ( {
2626 companyId : z . coerce . number ( ) . int ( ) . positive ( ) . optional ( ) ,
2727 companyName : z . string ( ) . trim ( ) . min ( 1 ) . max ( 200 ) . optional ( ) ,
2828 role : z . string ( ) . trim ( ) . min ( 2 ) . max ( 120 ) ,
@@ -40,12 +40,14 @@ export const createExperienceSchema = z.object({
4040 tips : z . string ( ) . trim ( ) . max ( 4000 ) . optional ( ) ,
4141 prepResources : z . array ( prepResourceSchema ) . max ( 20 ) . default ( [ ] ) ,
4242 isAnonymous : z . boolean ( ) . default ( false ) ,
43- } ) . refine ( ( d ) => d . companyId !== undefined || ( d . companyName && d . companyName . length > 0 ) , {
44- message : "Either companyId or companyName is required" ,
45- path : [ "companyName" ] ,
4643} ) ;
4744
48- export const updateExperienceSchema = createExperienceSchema . unwrap ( ) . partial ( ) . extend ( {
45+ export const createExperienceSchema = createExperienceBaseSchema . refine (
46+ ( d ) => d . companyId !== undefined || ( d . companyName && d . companyName . length > 0 ) ,
47+ { message : "Either companyId or companyName is required" , path : [ "companyName" ] }
48+ ) ;
49+
50+ export const updateExperienceSchema = createExperienceBaseSchema . partial ( ) . extend ( {
4951 companyId : z . coerce . number ( ) . int ( ) . positive ( ) . optional ( ) ,
5052 companyName : z . string ( ) . trim ( ) . min ( 1 ) . max ( 200 ) . optional ( ) ,
5153 status : z . enum ( [ "PENDING" , "APPROVED" , "REJECTED" ] ) . optional ( ) ,
0 commit comments