import { z } from "zod"

import { ContentEnum } from "@/types/enums/content"

export const imageSchema = z.object({
  __typename: z.literal(ContentEnum.blocks.SysAsset),
  content_type: z.string(),
  description: z.string().nullable().optional(),
  dimension: z
    .object({
      height: z.number(),
      width: z.number(),
    })
    .nullable(),
  metadata: z.any(), // JSON
  // system for SysAssets is not the same type
  // as for all other types eventhough they have
  // the exact same structure, that's why systemSchema
  // is not used as that correlates to the
  // EntrySystemField type
  system: z.object({
    uid: z.string(),
  }),
  title: z.string().optional(),
  url: z.string().optional(),
})

export const imageRefsSchema = z.object({
  __typename: z.literal(ContentEnum.blocks.SysAsset),
})
