/* tslint:disable */
/* eslint-disable */
/**
 * FastAPI
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 0.1.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { exists, mapValues } from "../runtime";
/**
 *
 * @export
 * @interface GetTranscript
 */
export interface GetTranscript {
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  id: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  userId: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  name: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  status: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  locked: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  duration: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  title: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  shortSummary: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  longSummary: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  createdAt: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  shareMode?: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  sourceLanguage: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  targetLanguage: any | null;
  /**
   *
   * @type {any}
   * @memberof GetTranscript
   */
  participants: any | null;
}

/**
 * Check if a given object implements the GetTranscript interface.
 */
export function instanceOfGetTranscript(value: object): boolean {
  let isInstance = true;
  isInstance = isInstance && "id" in value;
  isInstance = isInstance && "userId" in value;
  isInstance = isInstance && "name" in value;
  isInstance = isInstance && "status" in value;
  isInstance = isInstance && "locked" in value;
  isInstance = isInstance && "duration" in value;
  isInstance = isInstance && "title" in value;
  isInstance = isInstance && "shortSummary" in value;
  isInstance = isInstance && "longSummary" in value;
  isInstance = isInstance && "createdAt" in value;
  isInstance = isInstance && "sourceLanguage" in value;
  isInstance = isInstance && "targetLanguage" in value;
  isInstance = isInstance && "participants" in value;

  return isInstance;
}

export function GetTranscriptFromJSON(json: any): GetTranscript {
  return GetTranscriptFromJSONTyped(json, false);
}

export function GetTranscriptFromJSONTyped(
  json: any,
  ignoreDiscriminator: boolean,
): GetTranscript {
  if (json === undefined || json === null) {
    return json;
  }
  return {
    id: json["id"],
    userId: json["user_id"],
    name: json["name"],
    status: json["status"],
    locked: json["locked"],
    duration: json["duration"],
    title: json["title"],
    shortSummary: json["short_summary"],
    longSummary: json["long_summary"],
    createdAt: json["created_at"],
    shareMode: !exists(json, "share_mode") ? undefined : json["share_mode"],
    sourceLanguage: json["source_language"],
    targetLanguage: json["target_language"],
    participants: json["participants"],
  };
}

export function GetTranscriptToJSON(value?: GetTranscript | null): any {
  if (value === undefined) {
    return undefined;
  }
  if (value === null) {
    return null;
  }
  return {
    id: value.id,
    user_id: value.userId,
    name: value.name,
    status: value.status,
    locked: value.locked,
    duration: value.duration,
    title: value.title,
    short_summary: value.shortSummary,
    long_summary: value.longSummary,
    created_at: value.createdAt,
    share_mode: value.shareMode,
    source_language: value.sourceLanguage,
    target_language: value.targetLanguage,
    participants: value.participants,
  };
}
