import { z } from "zod"; import type { SuperForm } from "sveltekit-superforms"; import { __ } from "@wordpress/i18n"; import { Formality, Language, Tone } from "$lib/utils/schemas"; // Page: Dashboard (Home) export const dashboardFormSchema = z.object({ selected_org_id: z.string().optional(), api_key: z.string().optional(), webhook_secret: z.string().optional(), telemetry_opt_out: z.boolean().optional().default(false), }); // Page: General Settings (extends Dashboard) export const generalSettingsFormSchema = dashboardFormSchema.extend({ tone: z.nativeEnum(Tone), formality: z.nativeEnum(Formality), language: z.nativeEnum(Language), telemetry_opt_out: z.boolean().optional().default(false), }); // Page: Onboarding export const onboardingFormSchema = z.object({ api_key: z.string().min(1, __("API key is required", "productbird")), webhook_secret: z .string() .min(1, __("Webhook secret is required", "productbird")), telemetry_opt_out: z.boolean().optional().default(false), }); export const adminSettingsFormSchema = generalSettingsFormSchema; export type AdminSettingsFormSchema = z.infer; export type OnboardingFormSchema = z.infer; type SuperformAdminSettingsForm = SuperForm; export type AdminSettingsFormComponenProps = { form: SuperformAdminSettingsForm; }; export type AdminSettingsFormPageProps = { form: SuperForm>; };