UNPKG

appwrite-utils

Version:

`appwrite-utils` is a comprehensive TypeScript library designed to streamline the development process for Appwrite projects. It provides a suite of utilities and helper functions that facilitate data manipulation, schema management, and seamless integrati

56 lines (55 loc) 2.13 kB
import { z } from "zod"; export const relationshipAttributeSchema = z.object({ key: z.string().describe("The key of the attribute"), type: z .literal("relationship") .describe("The type of the attribute") .default("relationship"), error: z .string() .default("Invalid String Attribute Schema") .optional() .describe("The error message if the attribute is invalid"), required: z .boolean() .default(false) .optional() .describe("Whether the attribute is required or not"), array: z .boolean() .default(false) .optional() .describe("Whether the attribute is an array or not"), relatedCollection: z .string() .describe("The collection ID of the related collection"), relationType: z .enum(["oneToMany", "manyToOne", "oneToOne", "manyToMany"]) .describe("The relation type of the relationship attribute"), twoWay: z.boolean().describe("Whether the relationship is two way or not"), twoWayKey: z .string() .describe("The ID of the foreign key in the other collection"), onDelete: z .enum(["setNull", "cascade", "restrict"]) .describe("The action to take when the related document is deleted") .default("setNull"), side: z.enum(["parent", "child"]).describe("The side of the relationship"), importMapping: z .object({ originalIdField: z .string() .describe("The field in the import data representing the original ID to match"), targetField: z .string() .optional() .describe("The field in the target collection that matches the original ID. Optional, defaults to the same as originalIdField if not provided"), }) .optional() .describe("Configuration for mapping and resolving relationships during data import"), description: z .string() .or(z.record(z.string())) .nullish() .describe("The description of the attribute, also used for OpenApi Generation"), });