<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="24299" systemVersion="25A362" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
    <entity name="APIServiceEntity" representedClassName="APIServiceEntity" syncable="YES" codeGenerationType="class">
        <attribute name="addedDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="contextSize" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="defaultAgent" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="editedDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="generateChatNames" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="imageUploadsAllowed" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="model" optional="YES" attributeType="String"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="selectedModels" optional="YES" attributeType="Transformable" valueTransformerName="NSSecureUnarchiveFromDataTransformer"/>
        <attribute name="tokenIdentifier" optional="YES" attributeType="String"/>
        <attribute name="type" optional="YES" attributeType="String"/>
        <attribute name="url" optional="YES" attributeType="URI"/>
        <attribute name="useStreamResponse" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <relationship name="defaultPersona" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PersonaEntity"/>
    </entity>
    <entity name="ChatEntity" representedClassName=".ChatEntity" syncable="YES">
        <attribute name="aiGeneratedSummary" optional="YES" attributeType="String"/>
        <attribute name="behavior" optional="YES" attributeType="String"/>
        <attribute name="branchRootID" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="branchSourceMessageID" optional="YES" attributeType="Integer 64" usesScalarValueType="YES"/>
        <attribute name="branchSourceRole" optional="YES" attributeType="String"/>
        <attribute name="codexThreadId" optional="YES" attributeType="String"/>
        <attribute name="createdDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="gptModel" optional="YES" attributeType="String" defaultValueString="gpt-3.5-turbo"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO" preserveAfterDeletion="YES"/>
        <attribute name="isPinned" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="newChat" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="newMessage" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="reasoningEffortRaw" optional="YES" attributeType="String"/>
        <attribute name="requestMessages" optional="YES" attributeType="Transformable" valueTransformerName="RequestMessagesTransformer"/>
        <attribute name="systemMessage" optional="YES" attributeType="String" defaultValueString=""/>
        <attribute name="systemMessageProcessed" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="temperature" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES"/>
        <attribute name="top_p" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES"/>
        <attribute name="updatedDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="waitingForResponse" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <relationship name="apiService" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="APIServiceEntity"/>
        <relationship name="childChats" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="ChatEntity" inverseName="parentChat" inverseEntity="ChatEntity"/>
        <relationship name="messages" optional="YES" toMany="YES" deletionRule="Nullify" ordered="YES" destinationEntity="MessageEntity" inverseName="chat" inverseEntity="MessageEntity"/>
        <relationship name="parentChat" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="ChatEntity" inverseName="childChats" inverseEntity="ChatEntity"/>
        <relationship name="persona" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PersonaEntity"/>
        <relationship name="project" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="ProjectEntity" inverseName="chats" inverseEntity="ProjectEntity"/>
    </entity>
    <entity name="FileEntity" representedClassName="FileEntity" syncable="YES" codeGenerationType="class">
        <attribute name="blobID" optional="YES" attributeType="String"/>
        <attribute name="fileName" optional="YES" attributeType="String"/>
        <attribute name="fileSize" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="fileType" optional="YES" attributeType="String"/>
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="imageData" optional="YES" attributeType="Binary"/>
        <attribute name="textContent" optional="YES" attributeType="String"/>
        <attribute name="thumbnailData" optional="YES" attributeType="Binary"/>
    </entity>
    <entity name="ImageEntity" representedClassName="ImageEntity" syncable="YES" codeGenerationType="class">
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="image" attributeType="Binary"/>
        <attribute name="imageFormat" optional="YES" attributeType="String" defaultValueString="jpeg"/>
        <attribute name="thumbnail" attributeType="Binary"/>
    </entity>
    <entity name="MessageEntity" representedClassName=".MessageEntity" syncable="YES">
        <attribute name="agentModel" optional="YES" attributeType="String"/>
        <attribute name="agentServiceName" optional="YES" attributeType="String"/>
        <attribute name="agentServiceType" optional="YES" attributeType="String"/>
        <attribute name="body" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="isMultiAgentResponse" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="multiAgentGroupId" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="own" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="searchMetadataJson" optional="YES" attributeType="String"/>
        <attribute name="timestamp" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="toolCallsJson" optional="YES" attributeType="String"/>
        <attribute name="waitingForResponse" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <relationship name="chat" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="ChatEntity" inverseName="messages" inverseEntity="ChatEntity"/>
    </entity>
    <entity name="PersonaEntity" representedClassName="PersonaEntity" syncable="YES" codeGenerationType="class">
        <attribute name="addedDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="color" optional="YES" attributeType="String"/>
        <attribute name="editedDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="order" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="systemMessage" optional="YES" attributeType="String"/>
        <attribute name="temperature" optional="YES" attributeType="Float" minValueString="0" maxValueString="1" defaultValueString="0.7" usesScalarValueType="YES"/>
        <relationship name="defaultApiService" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="APIServiceEntity"/>
    </entity>
    <entity name="ProjectEntity" representedClassName="ProjectEntity" syncable="YES" codeGenerationType="class">
        <attribute name="aiGeneratedSummary" optional="YES" attributeType="String"/>
        <attribute name="colorCode" optional="YES" attributeType="String" defaultValueString="#007AFF"/>
        <attribute name="createdAt" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="customInstructions" optional="YES" attributeType="String"/>
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="isArchived" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="lastSummarizedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="name" attributeType="String"/>
        <attribute name="projectDescription" optional="YES" attributeType="String"/>
        <attribute name="sortOrder" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="updatedAt" attributeType="Date" usesScalarValueType="NO"/>
        <relationship name="chats" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="ChatEntity" inverseName="project" inverseEntity="ChatEntity"/>
    </entity>
</model>
