<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="21513" systemVersion="22A380" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
    <entity name="ChatGPT" representedClassName=".ChatGPT" syncable="YES">
        <attribute name="contextCount" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="model" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="temperature" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES"/>
    </entity>
    <entity name="Conversation" representedClassName=".Conversation" syncable="YES">
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="remark" optional="YES" attributeType="String"/>
        <attribute name="sesstionId" attributeType="String"/>
        <attribute name="updateData" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <relationship name="chatGPT" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="ChatGPT"/>
        <relationship name="lastMessage" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Message"/>
        <relationship name="plugin" optional="YES" toMany="YES" deletionRule="Nullify" ordered="YES" destinationEntity="PluginAPIInstall"/>
        <relationship name="prompt" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Prompt" inverseName="sesstion" inverseEntity="Prompt"/>
        <relationship name="search" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="GoogleSearch"/>
    </entity>
    <entity name="GoogleSearch" representedClassName=".GoogleSearch" syncable="YES">
        <attribute name="dateRestrict" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="id" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="maxSearchResult" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="open" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="search" optional="YES" attributeType="String"/>
        <attribute name="searched" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <relationship name="result" optional="YES" toMany="YES" deletionRule="Nullify" ordered="YES" destinationEntity="GoogleSearchResult"/>
    </entity>
    <entity name="GoogleSearchResult" representedClassName=".GoogleSearchResult" syncable="YES">
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="link" optional="YES" attributeType="String"/>
        <attribute name="result" optional="YES" attributeType="String"/>
        <attribute name="snippet" optional="YES" attributeType="String"/>
        <attribute name="title" optional="YES" attributeType="String"/>
    </entity>
    <entity name="Message" representedClassName=".Message" syncable="YES">
        <attribute name="createdDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="role" optional="YES" attributeType="String"/>
        <attribute name="sesstionId" attributeType="String"/>
        <attribute name="text" optional="YES" attributeType="String"/>
        <attribute name="textType" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="type" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <relationship name="textModel" optional="YES" toMany="YES" deletionRule="Nullify" ordered="YES" destinationEntity="MessageText"/>
    </entity>
    <entity name="MessageText" representedClassName=".MessageText" syncable="YES">
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="isFull" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="text" optional="YES" attributeType="String"/>
        <attribute name="type" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
    </entity>
    <entity name="PluginAPIInstall" representedClassName=".PluginAPIInstall" syncable="YES">
        <attribute name="apiJsonString" attributeType="String"/>
        <attribute name="description_for_human" optional="YES" attributeType="String"/>
        <attribute name="logo_url" optional="YES" attributeType="String"/>
        <attribute name="name_for_human" optional="YES" attributeType="String"/>
        <attribute name="schema_version" optional="YES" attributeType="String"/>
    </entity>
    <entity name="PluginManifest" representedClassName=".PluginManifest" syncable="YES">
        <attribute name="contact_email" optional="YES" attributeType="String"/>
        <attribute name="description_for_human" optional="YES" attributeType="String"/>
        <attribute name="description_for_model" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="legal_info_url" optional="YES" attributeType="String"/>
        <attribute name="logo_url" optional="YES" attributeType="String"/>
        <attribute name="name_for_human" optional="YES" attributeType="String"/>
        <attribute name="name_for_model" optional="YES" attributeType="String"/>
        <attribute name="schema_version" optional="YES" attributeType="String"/>
        <relationship name="api" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PluginManifestAPI"/>
        <relationship name="auth" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PluginManifestAuth"/>
        <relationship name="install" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="PluginAPIInstall"/>
    </entity>
    <entity name="PluginManifestAPI" representedClassName=".PluginManifestAPI" syncable="YES">
        <attribute name="has_user_authentication" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="type" optional="YES" attributeType="String"/>
        <attribute name="url" optional="YES" attributeType="String"/>
    </entity>
    <entity name="PluginManifestAuth" representedClassName=".PluginManifestAuth" syncable="YES">
        <attribute name="type" optional="YES" attributeType="String"/>
    </entity>
    <entity name="Prompt" representedClassName=".Prompt" syncable="YES">
        <attribute name="author" optional="YES" attributeType="String"/>
        <attribute name="cloudId" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="createdDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="hexColor" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="prompt" optional="YES" attributeType="String"/>
        <attribute name="serial" optional="YES" attributeType="Integer 64" defaultValueString="0.0" usesScalarValueType="YES"/>
        <attribute name="title" optional="YES" attributeType="String"/>
        <attribute name="type" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="YES"/>
        <relationship name="sesstion" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Conversation" inverseName="prompt" inverseEntity="Conversation"/>
    </entity>
</model>