# coding: utf-8

"""
    Spryngtime Usage Analytics & Billing API

    Spryngtime Usage Analytics & Billing API

    The version of the OpenAPI document: 1.0.0
    Generated by: https://konfigthis.com
"""

from datetime import datetime, date
import typing
from enum import Enum
from typing_extensions import TypedDict, Literal, TYPE_CHECKING
from pydantic import BaseModel, Field, RootModel

from spryngtime_analytics_sdk.pydantic.open_ai_response import OpenAiResponse
from spryngtime_analytics_sdk.pydantic.track_usage_request_custom_properties import TrackUsageRequestCustomProperties
from spryngtime_analytics_sdk.pydantic.usage_detail import UsageDetail

class TrackUsageRequest(BaseModel):
    user: str = Field(alias='user')

    query: typing.Optional[str] = Field(None, alias='query')

    conversation_id: typing.Optional[str] = Field(None, alias='conversationId')

    latency: typing.Optional[int] = Field(None, alias='latency')

    custom_properties: typing.Optional[TrackUsageRequestCustomProperties] = Field(None, alias='customProperties')

    open_ai_response: typing.Optional[OpenAiResponse] = Field(None, alias='openAiResponse')

    usage: typing.Optional[UsageDetail] = Field(None, alias='usage')
