/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
import * as z from "zod";
import { remap as remap$ } from "../../lib/primitives.js";
import { safeParse } from "../../lib/schemas.js";
export const UpdateLessonPlanItemType = {
    Component: "component",
    Resource: "resource",
};
/** @internal */
export const UpdateLessonPlanItemType$inboundSchema = z.nativeEnum(UpdateLessonPlanItemType);
/** @internal */
export const UpdateLessonPlanItemType$outboundSchema = UpdateLessonPlanItemType$inboundSchema;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var UpdateLessonPlanItemType$;
(function (UpdateLessonPlanItemType$) {
    /** @deprecated use `UpdateLessonPlanItemType$inboundSchema` instead. */
    UpdateLessonPlanItemType$.inboundSchema = UpdateLessonPlanItemType$inboundSchema;
    /** @deprecated use `UpdateLessonPlanItemType$outboundSchema` instead. */
    UpdateLessonPlanItemType$.outboundSchema = UpdateLessonPlanItemType$outboundSchema;
})(UpdateLessonPlanItemType$ || (UpdateLessonPlanItemType$ = {}));
/** @internal */
export const UpdateLessonPlanItemRequestBody$inboundSchema = z.object({
    lessonPlanId: z.string().optional(),
    type: UpdateLessonPlanItemType$inboundSchema.optional(),
    componentId: z.nullable(z.string()).optional(),
    componentResourceId: z.nullable(z.string()).optional(),
    order: z.number().optional(),
    parentId: z.nullable(z.string()).optional(),
    skipped: z.boolean().default(false),
});
/** @internal */
export const UpdateLessonPlanItemRequestBody$outboundSchema = z.object({
    lessonPlanId: z.string().optional(),
    type: UpdateLessonPlanItemType$outboundSchema.optional(),
    componentId: z.nullable(z.string()).optional(),
    componentResourceId: z.nullable(z.string()).optional(),
    order: z.number().optional(),
    parentId: z.nullable(z.string()).optional(),
    skipped: z.boolean().default(false),
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var UpdateLessonPlanItemRequestBody$;
(function (UpdateLessonPlanItemRequestBody$) {
    /** @deprecated use `UpdateLessonPlanItemRequestBody$inboundSchema` instead. */
    UpdateLessonPlanItemRequestBody$.inboundSchema = UpdateLessonPlanItemRequestBody$inboundSchema;
    /** @deprecated use `UpdateLessonPlanItemRequestBody$outboundSchema` instead. */
    UpdateLessonPlanItemRequestBody$.outboundSchema = UpdateLessonPlanItemRequestBody$outboundSchema;
})(UpdateLessonPlanItemRequestBody$ || (UpdateLessonPlanItemRequestBody$ = {}));
export function updateLessonPlanItemRequestBodyToJSON(updateLessonPlanItemRequestBody) {
    return JSON.stringify(UpdateLessonPlanItemRequestBody$outboundSchema.parse(updateLessonPlanItemRequestBody));
}
export function updateLessonPlanItemRequestBodyFromJSON(jsonString) {
    return safeParse(jsonString, (x) => UpdateLessonPlanItemRequestBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'UpdateLessonPlanItemRequestBody' from JSON`);
}
/** @internal */
export const UpdateLessonPlanItemRequest$inboundSchema = z.object({
    lessonPlanItemId: z.string(),
    RequestBody: z.lazy(() => UpdateLessonPlanItemRequestBody$inboundSchema)
        .optional(),
}).transform((v) => {
    return remap$(v, {
        "RequestBody": "requestBody",
    });
});
/** @internal */
export const UpdateLessonPlanItemRequest$outboundSchema = z.object({
    lessonPlanItemId: z.string(),
    requestBody: z.lazy(() => UpdateLessonPlanItemRequestBody$outboundSchema)
        .optional(),
}).transform((v) => {
    return remap$(v, {
        requestBody: "RequestBody",
    });
});
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export var UpdateLessonPlanItemRequest$;
(function (UpdateLessonPlanItemRequest$) {
    /** @deprecated use `UpdateLessonPlanItemRequest$inboundSchema` instead. */
    UpdateLessonPlanItemRequest$.inboundSchema = UpdateLessonPlanItemRequest$inboundSchema;
    /** @deprecated use `UpdateLessonPlanItemRequest$outboundSchema` instead. */
    UpdateLessonPlanItemRequest$.outboundSchema = UpdateLessonPlanItemRequest$outboundSchema;
})(UpdateLessonPlanItemRequest$ || (UpdateLessonPlanItemRequest$ = {}));
export function updateLessonPlanItemRequestToJSON(updateLessonPlanItemRequest) {
    return JSON.stringify(UpdateLessonPlanItemRequest$outboundSchema.parse(updateLessonPlanItemRequest));
}
export function updateLessonPlanItemRequestFromJSON(jsonString) {
    return safeParse(jsonString, (x) => UpdateLessonPlanItemRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'UpdateLessonPlanItemRequest' from JSON`);
}
//# sourceMappingURL=updatelessonplanitem.js.map