// // Item.swift // ChatMasterMind // // Created by Oleksandr Kozachuk on 2023-06-24. // import Foundation import SwiftData @Model final class ChatPair { var timestamp: Date var question: String var answer: String? var disabled: Bool init(question: String, answer: String? = nil, timestamp: Date = Date(), disabled: Bool = false) { self.question = question self.answer = answer self.timestamp = timestamp self.disabled = disabled } } @Model final class ChatHistory { var name: String var chatPairs: [ChatPair] init(name: String, chatPairs: [ChatPair] = []) { self.name = name self.chatPairs = chatPairs } func addChatPair(question: String, answer: String? = nil, timestamp: Date = Date()) { let newPair = ChatPair(question: question, answer: answer, timestamp: timestamp) chatPairs.append(newPair) } func editChatPair(withId id: PersistentIdentifier, question: String? = nil, answer: String? = nil) { guard let index = chatPairs.firstIndex(where: { $0.id == id }) else { return } let newChatPair = chatPairs[index] newChatPair.previousVersions.append(chatPairs[index]) if let question = question { newChatPair.question = question } if let answer = answer { newChatPair.answer = answer } newChatPair.timestamp = Date() chatPairs[index] = newChatPair } func moveChatPair(from source: IndexSet, to destination: Int) { chatPairs.move(fromOffsets: source, toOffset: destination) } }