// This file is auto-generated by @hey-api/openapi-ts

export const $AudioWaveform = {
  properties: {
    data: {
      items: {
        type: "number",
      },
      type: "array",
      title: "Data",
    },
  },
  type: "object",
  required: ["data"],
  title: "AudioWaveform",
} as const;

export const $Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post =
  {
    properties: {
      chunk: {
        type: "string",
        format: "binary",
        title: "Chunk",
      },
    },
    type: "object",
    required: ["chunk"],
    title:
      "Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post",
  } as const;

export const $CreateParticipant = {
  properties: {
    speaker: {
      anyOf: [
        {
          type: "integer",
        },
        {
          type: "null",
        },
      ],
      title: "Speaker",
    },
    name: {
      type: "string",
      title: "Name",
    },
  },
  type: "object",
  required: ["name"],
  title: "CreateParticipant",
} as const;

export const $CreateRoom = {
  properties: {
    name: {
      type: "string",
      title: "Name",
    },
    zulip_auto_post: {
      type: "boolean",
      title: "Zulip Auto Post",
    },
    zulip_stream: {
      type: "string",
      title: "Zulip Stream",
    },
    zulip_topic: {
      type: "string",
      title: "Zulip Topic",
    },
    is_locked: {
      type: "boolean",
      title: "Is Locked",
    },
    room_mode: {
      type: "string",
      title: "Room Mode",
    },
    recording_type: {
      type: "string",
      title: "Recording Type",
    },
    recording_trigger: {
      type: "string",
      title: "Recording Trigger",
    },
  },
  type: "object",
  required: [
    "name",
    "zulip_auto_post",
    "zulip_stream",
    "zulip_topic",
    "is_locked",
    "room_mode",
    "recording_type",
    "recording_trigger",
  ],
  title: "CreateRoom",
} as const;

export const $CreateTranscript = {
  properties: {
    name: {
      type: "string",
      title: "Name",
    },
    source_language: {
      type: "string",
      title: "Source Language",
      default: "en",
    },
    target_language: {
      type: "string",
      title: "Target Language",
      default: "en",
    },
  },
  type: "object",
  required: ["name"],
  title: "CreateTranscript",
} as const;

export const $DeletionStatus = {
  properties: {
    status: {
      type: "string",
      title: "Status",
    },
  },
  type: "object",
  required: ["status"],
  title: "DeletionStatus",
} as const;

export const $GetTranscript = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    user_id: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "User Id",
    },
    name: {
      type: "string",
      title: "Name",
    },
    status: {
      type: "string",
      title: "Status",
    },
    locked: {
      type: "boolean",
      title: "Locked",
    },
    duration: {
      type: "number",
      title: "Duration",
    },
    title: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Title",
    },
    short_summary: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Short Summary",
    },
    long_summary: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Long Summary",
    },
    created_at: {
      type: "string",
      format: "date-time",
      title: "Created At",
    },
    share_mode: {
      type: "string",
      title: "Share Mode",
      default: "private",
    },
    source_language: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Source Language",
    },
    target_language: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Target Language",
    },
    participants: {
      anyOf: [
        {
          items: {
            $ref: "#/components/schemas/TranscriptParticipant",
          },
          type: "array",
        },
        {
          type: "null",
        },
      ],
      title: "Participants",
    },
    reviewed: {
      type: "boolean",
      title: "Reviewed",
    },
    meeting_id: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Meeting Id",
    },
  },
  type: "object",
  required: [
    "id",
    "user_id",
    "name",
    "status",
    "locked",
    "duration",
    "title",
    "short_summary",
    "long_summary",
    "created_at",
    "source_language",
    "target_language",
    "participants",
    "reviewed",
    "meeting_id",
  ],
  title: "GetTranscript",
} as const;

export const $GetTranscriptSegmentTopic = {
  properties: {
    text: {
      type: "string",
      title: "Text",
    },
    start: {
      type: "number",
      title: "Start",
    },
    speaker: {
      type: "integer",
      title: "Speaker",
    },
  },
  type: "object",
  required: ["text", "start", "speaker"],
  title: "GetTranscriptSegmentTopic",
} as const;

export const $GetTranscriptTopic = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    title: {
      type: "string",
      title: "Title",
    },
    summary: {
      type: "string",
      title: "Summary",
    },
    timestamp: {
      type: "number",
      title: "Timestamp",
    },
    duration: {
      anyOf: [
        {
          type: "number",
        },
        {
          type: "null",
        },
      ],
      title: "Duration",
    },
    transcript: {
      type: "string",
      title: "Transcript",
    },
    segments: {
      items: {
        $ref: "#/components/schemas/GetTranscriptSegmentTopic",
      },
      type: "array",
      title: "Segments",
      default: [],
    },
  },
  type: "object",
  required: ["id", "title", "summary", "timestamp", "duration", "transcript"],
  title: "GetTranscriptTopic",
} as const;

export const $GetTranscriptTopicWithWords = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    title: {
      type: "string",
      title: "Title",
    },
    summary: {
      type: "string",
      title: "Summary",
    },
    timestamp: {
      type: "number",
      title: "Timestamp",
    },
    duration: {
      anyOf: [
        {
          type: "number",
        },
        {
          type: "null",
        },
      ],
      title: "Duration",
    },
    transcript: {
      type: "string",
      title: "Transcript",
    },
    segments: {
      items: {
        $ref: "#/components/schemas/GetTranscriptSegmentTopic",
      },
      type: "array",
      title: "Segments",
      default: [],
    },
    words: {
      items: {
        $ref: "#/components/schemas/Word",
      },
      type: "array",
      title: "Words",
      default: [],
    },
  },
  type: "object",
  required: ["id", "title", "summary", "timestamp", "duration", "transcript"],
  title: "GetTranscriptTopicWithWords",
} as const;

export const $GetTranscriptTopicWithWordsPerSpeaker = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    title: {
      type: "string",
      title: "Title",
    },
    summary: {
      type: "string",
      title: "Summary",
    },
    timestamp: {
      type: "number",
      title: "Timestamp",
    },
    duration: {
      anyOf: [
        {
          type: "number",
        },
        {
          type: "null",
        },
      ],
      title: "Duration",
    },
    transcript: {
      type: "string",
      title: "Transcript",
    },
    segments: {
      items: {
        $ref: "#/components/schemas/GetTranscriptSegmentTopic",
      },
      type: "array",
      title: "Segments",
      default: [],
    },
    words_per_speaker: {
      items: {
        $ref: "#/components/schemas/SpeakerWords",
      },
      type: "array",
      title: "Words Per Speaker",
      default: [],
    },
  },
  type: "object",
  required: ["id", "title", "summary", "timestamp", "duration", "transcript"],
  title: "GetTranscriptTopicWithWordsPerSpeaker",
} as const;

export const $HTTPValidationError = {
  properties: {
    detail: {
      items: {
        $ref: "#/components/schemas/ValidationError",
      },
      type: "array",
      title: "Detail",
    },
  },
  type: "object",
  title: "HTTPValidationError",
} as const;

export const $Meeting = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    room_name: {
      type: "string",
      title: "Room Name",
    },
    room_url: {
      type: "string",
      title: "Room Url",
    },
    host_room_url: {
      type: "string",
      title: "Host Room Url",
    },
    viewer_room_url: {
      type: "string",
      title: "Viewer Room Url",
    },
    start_date: {
      type: "string",
      format: "date-time",
      title: "Start Date",
    },
    end_date: {
      type: "string",
      format: "date-time",
      title: "End Date",
    },
  },
  type: "object",
  required: [
    "id",
    "room_name",
    "room_url",
    "host_room_url",
    "viewer_room_url",
    "start_date",
    "end_date",
  ],
  title: "Meeting",
} as const;

export const $Page_GetTranscript_ = {
  properties: {
    items: {
      items: {
        $ref: "#/components/schemas/GetTranscript",
      },
      type: "array",
      title: "Items",
    },
    total: {
      type: "integer",
      minimum: 0,
      title: "Total",
    },
    page: {
      anyOf: [
        {
          type: "integer",
          minimum: 1,
        },
        {
          type: "null",
        },
      ],
      title: "Page",
    },
    size: {
      anyOf: [
        {
          type: "integer",
          minimum: 1,
        },
        {
          type: "null",
        },
      ],
      title: "Size",
    },
    pages: {
      anyOf: [
        {
          type: "integer",
          minimum: 0,
        },
        {
          type: "null",
        },
      ],
      title: "Pages",
    },
  },
  type: "object",
  required: ["items", "total", "page", "size"],
  title: "Page[GetTranscript]",
} as const;

export const $Page_Room_ = {
  properties: {
    items: {
      items: {
        $ref: "#/components/schemas/Room",
      },
      type: "array",
      title: "Items",
    },
    total: {
      type: "integer",
      minimum: 0,
      title: "Total",
    },
    page: {
      anyOf: [
        {
          type: "integer",
          minimum: 1,
        },
        {
          type: "null",
        },
      ],
      title: "Page",
    },
    size: {
      anyOf: [
        {
          type: "integer",
          minimum: 1,
        },
        {
          type: "null",
        },
      ],
      title: "Size",
    },
    pages: {
      anyOf: [
        {
          type: "integer",
          minimum: 0,
        },
        {
          type: "null",
        },
      ],
      title: "Pages",
    },
  },
  type: "object",
  required: ["items", "total", "page", "size"],
  title: "Page[Room]",
} as const;

export const $Participant = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    speaker: {
      anyOf: [
        {
          type: "integer",
        },
        {
          type: "null",
        },
      ],
      title: "Speaker",
    },
    name: {
      type: "string",
      title: "Name",
    },
  },
  type: "object",
  required: ["id", "speaker", "name"],
  title: "Participant",
} as const;

export const $Room = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    name: {
      type: "string",
      title: "Name",
    },
    user_id: {
      type: "string",
      title: "User Id",
    },
    created_at: {
      type: "string",
      format: "date-time",
      title: "Created At",
    },
    zulip_auto_post: {
      type: "boolean",
      title: "Zulip Auto Post",
    },
    zulip_stream: {
      type: "string",
      title: "Zulip Stream",
    },
    zulip_topic: {
      type: "string",
      title: "Zulip Topic",
    },
    is_locked: {
      type: "boolean",
      title: "Is Locked",
    },
    room_mode: {
      type: "string",
      title: "Room Mode",
    },
    recording_type: {
      type: "string",
      title: "Recording Type",
    },
    recording_trigger: {
      type: "string",
      title: "Recording Trigger",
    },
  },
  type: "object",
  required: [
    "id",
    "name",
    "user_id",
    "created_at",
    "zulip_auto_post",
    "zulip_stream",
    "zulip_topic",
    "is_locked",
    "room_mode",
    "recording_type",
    "recording_trigger",
  ],
  title: "Room",
} as const;

export const $RtcOffer = {
  properties: {
    sdp: {
      type: "string",
      title: "Sdp",
    },
    type: {
      type: "string",
      title: "Type",
    },
  },
  type: "object",
  required: ["sdp", "type"],
  title: "RtcOffer",
} as const;

export const $SpeakerAssignment = {
  properties: {
    speaker: {
      anyOf: [
        {
          type: "integer",
          minimum: 0,
        },
        {
          type: "null",
        },
      ],
      title: "Speaker",
    },
    participant: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Participant",
    },
    timestamp_from: {
      type: "number",
      title: "Timestamp From",
    },
    timestamp_to: {
      type: "number",
      title: "Timestamp To",
    },
  },
  type: "object",
  required: ["timestamp_from", "timestamp_to"],
  title: "SpeakerAssignment",
} as const;

export const $SpeakerAssignmentStatus = {
  properties: {
    status: {
      type: "string",
      title: "Status",
    },
  },
  type: "object",
  required: ["status"],
  title: "SpeakerAssignmentStatus",
} as const;

export const $SpeakerMerge = {
  properties: {
    speaker_from: {
      type: "integer",
      title: "Speaker From",
    },
    speaker_to: {
      type: "integer",
      title: "Speaker To",
    },
  },
  type: "object",
  required: ["speaker_from", "speaker_to"],
  title: "SpeakerMerge",
} as const;

export const $SpeakerWords = {
  properties: {
    speaker: {
      type: "integer",
      title: "Speaker",
    },
    words: {
      items: {
        $ref: "#/components/schemas/Word",
      },
      type: "array",
      title: "Words",
    },
  },
  type: "object",
  required: ["speaker", "words"],
  title: "SpeakerWords",
} as const;

export const $Stream = {
  properties: {
    stream_id: {
      type: "integer",
      title: "Stream Id",
    },
    name: {
      type: "string",
      title: "Name",
    },
  },
  type: "object",
  required: ["stream_id", "name"],
  title: "Stream",
} as const;

export const $Topic = {
  properties: {
    name: {
      type: "string",
      title: "Name",
    },
  },
  type: "object",
  required: ["name"],
  title: "Topic",
} as const;

export const $TranscriptParticipant = {
  properties: {
    id: {
      type: "string",
      title: "Id",
    },
    speaker: {
      anyOf: [
        {
          type: "integer",
        },
        {
          type: "null",
        },
      ],
      title: "Speaker",
    },
    name: {
      type: "string",
      title: "Name",
    },
  },
  type: "object",
  required: ["speaker", "name"],
  title: "TranscriptParticipant",
} as const;

export const $UpdateParticipant = {
  properties: {
    speaker: {
      anyOf: [
        {
          type: "integer",
        },
        {
          type: "null",
        },
      ],
      title: "Speaker",
    },
    name: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Name",
    },
  },
  type: "object",
  title: "UpdateParticipant",
} as const;

export const $UpdateRoom = {
  properties: {
    name: {
      type: "string",
      title: "Name",
    },
    zulip_auto_post: {
      type: "boolean",
      title: "Zulip Auto Post",
    },
    zulip_stream: {
      type: "string",
      title: "Zulip Stream",
    },
    zulip_topic: {
      type: "string",
      title: "Zulip Topic",
    },
    is_locked: {
      type: "boolean",
      title: "Is Locked",
    },
    room_mode: {
      type: "string",
      title: "Room Mode",
    },
    recording_type: {
      type: "string",
      title: "Recording Type",
    },
    recording_trigger: {
      type: "string",
      title: "Recording Trigger",
    },
  },
  type: "object",
  required: [
    "name",
    "zulip_auto_post",
    "zulip_stream",
    "zulip_topic",
    "is_locked",
    "room_mode",
    "recording_type",
    "recording_trigger",
  ],
  title: "UpdateRoom",
} as const;

export const $UpdateTranscript = {
  properties: {
    name: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Name",
    },
    locked: {
      anyOf: [
        {
          type: "boolean",
        },
        {
          type: "null",
        },
      ],
      title: "Locked",
    },
    title: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Title",
    },
    short_summary: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Short Summary",
    },
    long_summary: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Long Summary",
    },
    share_mode: {
      anyOf: [
        {
          type: "string",
          enum: ["public", "semi-private", "private"],
        },
        {
          type: "null",
        },
      ],
      title: "Share Mode",
    },
    participants: {
      anyOf: [
        {
          items: {
            $ref: "#/components/schemas/TranscriptParticipant",
          },
          type: "array",
        },
        {
          type: "null",
        },
      ],
      title: "Participants",
    },
    reviewed: {
      anyOf: [
        {
          type: "boolean",
        },
        {
          type: "null",
        },
      ],
      title: "Reviewed",
    },
  },
  type: "object",
  title: "UpdateTranscript",
} as const;

export const $UserInfo = {
  properties: {
    sub: {
      type: "string",
      title: "Sub",
    },
    email: {
      anyOf: [
        {
          type: "string",
        },
        {
          type: "null",
        },
      ],
      title: "Email",
    },
    email_verified: {
      anyOf: [
        {
          type: "boolean",
        },
        {
          type: "null",
        },
      ],
      title: "Email Verified",
    },
  },
  type: "object",
  required: ["sub", "email", "email_verified"],
  title: "UserInfo",
} as const;

export const $ValidationError = {
  properties: {
    loc: {
      items: {
        anyOf: [
          {
            type: "string",
          },
          {
            type: "integer",
          },
        ],
      },
      type: "array",
      title: "Location",
    },
    msg: {
      type: "string",
      title: "Message",
    },
    type: {
      type: "string",
      title: "Error Type",
    },
  },
  type: "object",
  required: ["loc", "msg", "type"],
  title: "ValidationError",
} as const;

export const $Word = {
  properties: {
    text: {
      type: "string",
      title: "Text",
    },
    start: {
      type: "number",
      title: "Start",
    },
    end: {
      type: "number",
      title: "End",
    },
    speaker: {
      type: "integer",
      title: "Speaker",
      default: 0,
    },
  },
  type: "object",
  required: ["text", "start", "end"],
  title: "Word",
} as const;
