/*
 * Copyright (C) 2023 Amazon.com, Inc. or its affiliates.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import { z } from 'zod';

/**
 * The schema of a chapter in the video.
 */
const chapter = z.object({
  index: z
    .number()
    .describe('The index of the extracted chapter.'),
  start: z
    .string()
    .describe('The start time of the chapter in `00:00:00.000` format.'),
  end: z
    .string()
    .describe('The end time of the chapter in `00:00:00.000` format.'),
  title: z
    .string()
    .describe('The title of the chapter.'),
  description: z
    .string()
    .describe('The description of the chapter.')
});

/**
 * The schema of the chapters.
 */
export const schema = z.object({
  chapters: z
    .array(chapter)
    .max(10)
    .describe('The chapters extracted from the video.')
});
