refactor: update landing page metadata schema
This commit is contained in:
@@ -7,7 +7,7 @@ import {
|
|||||||
} from '@cio/ai-assistant/tools';
|
} from '@cio/ai-assistant/tools';
|
||||||
import { QUESTION_TYPE_REGISTRY } from '@cio/question-types';
|
import { QUESTION_TYPE_REGISTRY } from '@cio/question-types';
|
||||||
import { ZExerciseSectionAfterBehavior } from '@cio/utils/validation/exercise';
|
import { ZExerciseSectionAfterBehavior } from '@cio/utils/validation/exercise';
|
||||||
import { ZCourseLandingPageUpdate, ZCourseLandingPageMetadataUpdate } from '@cio/utils/validation/course';
|
import { ZCourseLandingPageUpdate, ZCourseLandingPageMetadataUpdateFields } from '@cio/utils/validation/course';
|
||||||
|
|
||||||
// courseId is NOT a parameter — it's injected from the authenticated request context.
|
// courseId is NOT a parameter — it's injected from the authenticated request context.
|
||||||
// This prevents prompt injection from tricking the LLM into targeting another course.
|
// This prevents prompt injection from tricking the LLM into targeting another course.
|
||||||
@@ -251,7 +251,7 @@ export const agentLessonTabsOrder = z.array(
|
|||||||
name: z.string()
|
name: z.string()
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
export const agentLandingPageMetadataUpdate = ZCourseLandingPageMetadataUpdate.extend({
|
export const agentLandingPageMetadataUpdate = ZCourseLandingPageMetadataUpdateFields.extend({
|
||||||
lessonTabsOrder: agentLessonTabsOrder.optional(),
|
lessonTabsOrder: agentLessonTabsOrder.optional(),
|
||||||
requirements: z.string().optional().describe(LANDING_PAGE_SECTION_HTML_AGENT_HINT),
|
requirements: z.string().optional().describe(LANDING_PAGE_SECTION_HTML_AGENT_HINT),
|
||||||
description: z.string().optional().describe(LANDING_PAGE_METADATA_DESCRIPTION_SECTION_HINT),
|
description: z.string().optional().describe(LANDING_PAGE_METADATA_DESCRIPTION_SECTION_HINT),
|
||||||
|
|||||||
@@ -357,14 +357,16 @@ const ZCourseMetadataFields = z.object({
|
|||||||
export const ZCourseMetadata = z.preprocess(preprocessCourseMetadata, ZCourseMetadataFields);
|
export const ZCourseMetadata = z.preprocess(preprocessCourseMetadata, ZCourseMetadataFields);
|
||||||
export type TCourseMetadata = z.infer<typeof ZCourseMetadata>;
|
export type TCourseMetadata = z.infer<typeof ZCourseMetadata>;
|
||||||
|
|
||||||
|
export const ZCourseLandingPageMetadataUpdateFields = ZCourseMetadataFields.omit({ allowNewStudent: true }).extend({
|
||||||
|
allowNewStudent: z.boolean().optional(),
|
||||||
|
reward: ZCourseReward.partial().optional(),
|
||||||
|
instructor: ZCourseInstructor.partial().optional(),
|
||||||
|
certificate: ZCourseCertificate.partial().optional()
|
||||||
|
});
|
||||||
|
|
||||||
export const ZCourseLandingPageMetadataUpdate = z.preprocess(
|
export const ZCourseLandingPageMetadataUpdate = z.preprocess(
|
||||||
preprocessCourseMetadata,
|
preprocessCourseMetadata,
|
||||||
ZCourseMetadataFields.omit({ allowNewStudent: true }).extend({
|
ZCourseLandingPageMetadataUpdateFields
|
||||||
allowNewStudent: z.boolean().optional(),
|
|
||||||
reward: ZCourseReward.partial().optional(),
|
|
||||||
instructor: ZCourseInstructor.partial().optional(),
|
|
||||||
certificate: ZCourseCertificate.partial().optional()
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
export type TCourseLandingPageMetadataUpdate = z.infer<typeof ZCourseLandingPageMetadataUpdate>;
|
export type TCourseLandingPageMetadataUpdate = z.infer<typeof ZCourseLandingPageMetadataUpdate>;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user