Prisma zod enum validation

I have this prisma schema:

enum RealEstateType {
  house
  apartment
  office
  garage
  land
  store
  industry
  other
}
...
model RealEstate {
  id            Int                 @id @default(autoincrement())
  status        RealEstateStatus
  title         String
  description   String
  availableFrom DateTime
  createdAt     DateTime            @default(now())
  updatedAt     DateTime            @updatedAt
  userId        String
  user          UserData            @relation(fields: [userId], references: [userId])
  type          RealEstateType
  contactId     String?
  contact       UserData?           @relation(name: "RealEstateContact", fields: [contactId], references: [userId])
  favorites     Favorite[]
  Message       Message[]
  documents     Document[]
  energy        EnergyEfficiency[]
  location      RealEstateLocation?
  features      RealEstateFeatures?
  pricing       RealEstatePricing?

  @@index([userId])
  @@index([contactId])
}


And this zod validation:

const apartmentTypes = [
    'house',
    'apartment',
    'office',
    'garage',
    'land',
    'store',
    'industry',
    'other'
] as const;

export const createRealEstateSchema = z.object({
    type: z.enum(apartmentTypes),
    title: z.string().min(3).max(30),
    description: z.string().min(3).max(30),
    availableFrom: z.date(),
    contactId: z.string().optional(),
    location: locationSchema.optional(),
    features: featuresSchema.optional(),
    pricing: pricingSchema.optional(),
    documents: z.array(createDocumentSchema),
});
Was this page helpful?