"use strict";
/* tslint:disable */
/* eslint-disable */
/**
 * Montelo
 * Documentation for the Montelo API.
 *
 * The version of the OpenAPI document: 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.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogDtoToJSON = exports.LogDtoFromJSONTyped = exports.LogDtoFromJSON = exports.instanceOfLogDto = exports.LogDtoSourceEnum = void 0;
/**
 * @export
 */
exports.LogDtoSourceEnum = {
    Manual: 'MANUAL',
    Openai: 'OPENAI',
    Anthropic: 'ANTHROPIC',
    Mistral: 'MISTRAL',
    Cohere: 'COHERE',
    Llama: 'LLAMA'
};
/**
 * Check if a given object implements the LogDto interface.
 */
function instanceOfLogDto(value) {
    let isInstance = true;
    isInstance = isInstance && "id" in value;
    isInstance = isInstance && "traceId" in value;
    isInstance = isInstance && "envId" in value;
    isInstance = isInstance && "parentLogId" in value;
    isInstance = isInstance && "name" in value;
    isInstance = isInstance && "source" in value;
    isInstance = isInstance && "model" in value;
    isInstance = isInstance && "input" in value;
    isInstance = isInstance && "output" in value;
    isInstance = isInstance && "startTime" in value;
    isInstance = isInstance && "endTime" in value;
    isInstance = isInstance && "duration" in value;
    isInstance = isInstance && "inputTokens" in value;
    isInstance = isInstance && "outputTokens" in value;
    isInstance = isInstance && "totalTokens" in value;
    isInstance = isInstance && "inputCost" in value;
    isInstance = isInstance && "outputCost" in value;
    isInstance = isInstance && "totalCost" in value;
    isInstance = isInstance && "extra" in value;
    isInstance = isInstance && "createdAt" in value;
    return isInstance;
}
exports.instanceOfLogDto = instanceOfLogDto;
function LogDtoFromJSON(json) {
    return LogDtoFromJSONTyped(json, false);
}
exports.LogDtoFromJSON = LogDtoFromJSON;
function LogDtoFromJSONTyped(json, ignoreDiscriminator) {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        'id': json['id'],
        'traceId': json['traceId'],
        'envId': json['envId'],
        'parentLogId': json['parentLogId'],
        'name': json['name'],
        'source': json['source'],
        'model': json['model'],
        'input': json['input'],
        'output': json['output'],
        'startTime': json['startTime'],
        'endTime': json['endTime'],
        'duration': json['duration'],
        'inputTokens': json['inputTokens'],
        'outputTokens': json['outputTokens'],
        'totalTokens': json['totalTokens'],
        'inputCost': json['inputCost'],
        'outputCost': json['outputCost'],
        'totalCost': json['totalCost'],
        'extra': json['extra'],
        'createdAt': json['createdAt'],
    };
}
exports.LogDtoFromJSONTyped = LogDtoFromJSONTyped;
function LogDtoToJSON(value) {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        'id': value.id,
        'traceId': value.traceId,
        'envId': value.envId,
        'parentLogId': value.parentLogId,
        'name': value.name,
        'source': value.source,
        'model': value.model,
        'input': value.input,
        'output': value.output,
        'startTime': value.startTime,
        'endTime': value.endTime,
        'duration': value.duration,
        'inputTokens': value.inputTokens,
        'outputTokens': value.outputTokens,
        'totalTokens': value.totalTokens,
        'inputCost': value.inputCost,
        'outputCost': value.outputCost,
        'totalCost': value.totalCost,
        'extra': value.extra,
        'createdAt': value.createdAt,
    };
}
exports.LogDtoToJSON = LogDtoToJSON;
