/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

export type CurriculumSectionTitleContents = ContentBaseType & {
  type?: "sectionTitle";
  title: string;
  [k: string]: unknown;
};
export type CurriculumVideoContents = ContentBaseType & {
  type?: "video";
  title: string;
  url: string;
  icon?: string;
  [k: string]: unknown;
};
export type CurriculumReviewContents = ContentBaseType & {
  type?: "review";
  title: string;
  icon?: string;
  buttonTitle?: string;
  description: string;
  questions: (
    | CurriculumReviewQuestionText
    | CurriculumReviewQuestionRadio
    | CurriculumReviewQuestionSatisfactionText
    | CurriculumReviewQuestionSatisfactionOption
  )[];
  [k: string]: unknown;
};
export type CurriculumReviewQuestionText = ContentBaseType &
  QuestionBaseType & {
    type?: "question_text";
    minLength?: number;
    placeholder?: string;
    minLengthInfoMessage?: string;
    [k: string]: unknown;
  };
export type CurriculumReviewQuestionRadio = ContentBaseType &
  QuestionBaseType & {
    type?: "question_radio";
    options: {
      label?: string;
      value?: number;
      [k: string]: unknown;
    }[];
    correctAnswer: number;
    [k: string]: unknown;
  };
export type CurriculumReviewQuestionSatisfactionText = ContentBaseType & {
  type?: "question_satisfaction_text";
  minLength?: number;
  placeholder?: string;
  required: boolean;
  question?: string;
  title?: string;
  icon?: string;
  [k: string]: unknown;
};
export type CurriculumReviewQuestionSatisfactionOption = ContentBaseType & {
  type?: "question_satisfaction_option";
  options?: {
    label?: string;
    value?: number;
    [k: string]: unknown;
  }[];
  required: boolean;
  question?: string;
  title?: string;
  icon?: string;
  [k: string]: unknown;
};
export type CurriculumAiTrainingContents = ContentBaseType & {
  type: "aiTraining";
  title: string;
  description: string;
  aITrainingInfoId: string;
  aiDuration: number;
  buttonTitle?: string;
  [k: string]: unknown;
};

export interface CurriculumContents {
  version: number;
  list: (
    | CurriculumSectionTitleContents
    | CurriculumVideoContents
    | CurriculumReviewContents
    | CurriculumAiTrainingContents
  )[];
  satisfactionOptionMeta?: SatisfactionOptionMeta;
  satisfactionTextMeta?: SatisfactionTextMeta;
  reviewMeta?: {
    endReviewTopTitle?: string;
    endReviewDescription?: string;
    endReviewBackButtonTitle?: string;
    endReviewNextButtonTitle?: string;
  };
}
export interface ContentBaseType {
  uuid: string;
  type: string;
  duration?: number;
  [k: string]: unknown;
}
export interface QuestionBaseType {
  required: boolean;
  question: string;
  title: string;
  icon?: string;
  [k: string]: unknown;
}
export interface SatisfactionOptionMeta {
  options?: {
    label?: string;
    value?: number;
    [k: string]: unknown;
  }[];
  required?: boolean;
  question?: string;
  title?: string;
  icon?: string;
  [k: string]: unknown;
}
export interface SatisfactionTextMeta {
  minLength?: number;
  placeholder?: string;
  required?: boolean;
  question?: string;
  title?: string;
  icon?: string;
  [k: string]: unknown;
}
