<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="24512" systemVersion="25C56" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
    <entity name="AIConversation" representedClassName="AIConversation" syncable="YES" codeGenerationType="class">
        <attribute name="conversationID" optional="YES" attributeType="String"/>
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="fileScopeID" optional="YES" attributeType="String"/>
        <attribute name="fileScopeKind" optional="YES" attributeType="String"/>
        <attribute name="lastChatAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="title" optional="YES" attributeType="String"/>
        <attribute name="toolsData" optional="YES" attributeType="Binary"/>
        <attribute name="type" optional="YES" attributeType="String"/>
        <relationship name="messages" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="AIConversationMessage" inverseName="conversation" inverseEntity="AIConversationMessage"/>
    </entity>
    <entity name="AIConversationMessage" representedClassName="AIConversationMessage" syncable="YES" codeGenerationType="class">
        <attribute name="content" optional="YES" attributeType="String"/>
        <attribute name="filesData" optional="YES" attributeType="Binary"/>
        <attribute name="isCompactedOut" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="isCompactSummary" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="messageID" optional="YES" attributeType="String"/>
        <attribute name="messageType" optional="YES" attributeType="String"/>
        <attribute name="role" optional="YES" attributeType="String"/>
        <attribute name="stepNumber" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="stepType" optional="YES" attributeType="String"/>
        <attribute name="timeStamp" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="toolCallId" optional="YES" attributeType="String"/>
        <attribute name="toolCallsData" optional="YES" attributeType="Binary"/>
        <attribute name="usageConsumed" optional="YES" attributeType="Double" usesScalarValueType="YES"/>
        <attribute name="usageRemains" optional="YES" attributeType="Double" usesScalarValueType="YES"/>
        <relationship name="conversation" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="AIConversation" inverseName="messages" inverseEntity="AIConversation"/>
    </entity>
    <entity name="AIMessageCheckpointLink" representedClassName="AIMessageCheckpointLink" syncable="YES" codeGenerationType="class">
        <attribute name="checkpointID" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="checkpointKind" optional="YES" attributeType="String"/>
        <attribute name="conversationID" optional="YES" attributeType="String"/>
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="fileScopeID" optional="YES" attributeType="String"/>
        <attribute name="fileScopeKind" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="messageID" optional="YES" attributeType="String"/>
        <attribute name="role" optional="YES" attributeType="String"/>
    </entity>
    <entity name="CollaborationFile" representedClassName="CollaborationFile" syncable="YES" codeGenerationType="class">
        <attribute name="content" optional="YES" attributeType="Binary" allowsExternalBinaryDataStorage="YES"/>
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="filePath" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="inTrash" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="isOwner" optional="YES" attributeType="Boolean" usesScalarValueType="YES"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="presentationData" optional="YES" attributeType="Binary"/>
        <attribute name="rank" optional="YES" attributeType="Integer 64" usesScalarValueType="YES"/>
        <attribute name="roomID" optional="YES" attributeType="String"/>
        <attribute name="updatedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="visitedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <relationship name="checkpoints" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="FileCheckpoint" inverseName="collaborationFile" inverseEntity="FileCheckpoint"/>
        <relationship name="medias" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="MediaItem" inverseName="collaborationFile" inverseEntity="MediaItem"/>
    </entity>
    <entity name="File" representedClassName="File" syncable="YES" codeGenerationType="class" coreSpotlightDisplayNameExpression="name">
        <attribute name="content" optional="YES" attributeType="Binary" allowsExternalBinaryDataStorage="YES"/>
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="deletedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="filePath" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="inTrash" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
        <attribute name="name" optional="YES" attributeType="String" spotlightIndexingEnabled="YES"/>
        <attribute name="presentationData" optional="YES" attributeType="Binary"/>
        <attribute name="rank" optional="YES" attributeType="Integer 64" usesScalarValueType="YES"/>
        <attribute name="updatedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="visitedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <relationship name="checkpoints" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="FileCheckpoint" inverseName="file" inverseEntity="FileCheckpoint"/>
        <relationship name="group" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Group" inverseName="files" inverseEntity="Group"/>
        <relationship name="medias" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="MediaItem" inverseName="file" inverseEntity="MediaItem"/>
    </entity>
    <entity name="FileCheckpoint" representedClassName="FileCheckpoint" syncable="YES" codeGenerationType="class">
        <attribute name="content" optional="YES" attributeType="Binary" allowsExternalBinaryDataStorage="YES"/>
        <attribute name="filename" optional="YES" attributeType="String"/>
        <attribute name="filePath" optional="YES" attributeType="String"/>
        <attribute name="historyDescription" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="source" optional="YES" attributeType="String"/>
        <attribute name="updatedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <relationship name="collaborationFile" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="CollaborationFile" inverseName="checkpoints" inverseEntity="CollaborationFile"/>
        <relationship name="file" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="File" inverseName="checkpoints" inverseEntity="File"/>
    </entity>
    <entity name="Group" representedClassName="Group" syncable="YES" codeGenerationType="class">
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="icon" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="rank" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="type" optional="YES" attributeType="String" valueTransformerName="GroupTypeTransformer" defaultValueString="normal"/>
        <attribute name="updatedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <relationship name="children" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="Group" inverseName="parent" inverseEntity="Group"/>
        <relationship name="files" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="File" inverseName="group" inverseEntity="File"/>
        <relationship name="parent" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Group" inverseName="children" inverseEntity="Group"/>
    </entity>
    <entity name="Library" representedClassName="Library" syncable="YES" codeGenerationType="class">
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="rank" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="source" optional="YES" attributeType="String"/>
        <attribute name="type" optional="YES" attributeType="String"/>
        <attribute name="version" optional="YES" attributeType="Integer 32" defaultValueString="0" usesScalarValueType="YES"/>
        <relationship name="items" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="LibraryItem" inverseName="library" inverseEntity="LibraryItem"/>
    </entity>
    <entity name="LibraryItem" representedClassName="LibraryItem" syncable="YES" codeGenerationType="class">
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="elements" optional="YES" attributeType="Binary"/>
        <attribute name="id" optional="YES" attributeType="String"/>
        <attribute name="name" optional="YES" attributeType="String"/>
        <attribute name="rank" optional="YES" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
        <attribute name="status" optional="YES" attributeType="String"/>
        <relationship name="library" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Library" inverseName="items" inverseEntity="Library"/>
    </entity>
    <entity name="LocalFileCheckpoint" representedClassName="LocalFileCheckpoint" syncable="YES" codeGenerationType="class">
        <attribute name="content" optional="YES" attributeType="Binary" allowsExternalBinaryDataStorage="YES"/>
        <attribute name="historyDescription" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="UUID" usesScalarValueType="NO"/>
        <attribute name="source" optional="YES" attributeType="String"/>
        <attribute name="updatedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="url" optional="YES" attributeType="URI"/>
    </entity>
    <entity name="LocalFolder" representedClassName="LocalFolder" syncable="YES" codeGenerationType="class">
        <attribute name="bookmarkData" optional="YES" attributeType="Binary"/>
        <attribute name="filePath" optional="YES" attributeType="String"/>
        <attribute name="importedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="rank" optional="YES" attributeType="Integer 64" usesScalarValueType="YES"/>
        <attribute name="url" optional="YES" attributeType="URI"/>
        <relationship name="children" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="LocalFolder" inverseName="parent" inverseEntity="LocalFolder"/>
        <relationship name="parent" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="LocalFolder" inverseName="children" inverseEntity="LocalFolder"/>
    </entity>
    <entity name="MediaItem" representedClassName="MediaItem" syncable="YES" codeGenerationType="class">
        <attribute name="createdAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="dataURL" optional="YES" attributeType="String"/>
        <attribute name="filePath" optional="YES" attributeType="String"/>
        <attribute name="id" optional="YES" attributeType="String"/>
        <attribute name="lastRetrievedAt" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
        <attribute name="mimeType" optional="YES" attributeType="String"/>
        <relationship name="collaborationFile" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="CollaborationFile" inverseName="medias" inverseEntity="CollaborationFile"/>
        <relationship name="file" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="File" inverseName="medias" inverseEntity="File"/>
    </entity>
    <configuration name="Cloud" usedWithCloudKit="YES">
        <memberEntity name="File"/>
        <memberEntity name="FileCheckpoint"/>
        <memberEntity name="Group"/>
        <memberEntity name="Library"/>
        <memberEntity name="LibraryItem"/>
        <memberEntity name="MediaItem"/>
        <memberEntity name="CollaborationFile"/>
        <memberEntity name="AIConversation"/>
        <memberEntity name="AIConversationMessage"/>
        <memberEntity name="AIMessageCheckpointLink"/>
    </configuration>
    <configuration name="Local">
        <memberEntity name="LocalFileCheckpoint"/>
        <memberEntity name="LocalFolder"/>
    </configuration>
</model>
