-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Expand file tree
/
Copy pathModel.swift
More file actions
73 lines (62 loc) · 1.98 KB
/
Model.swift
File metadata and controls
73 lines (62 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import Foundation
public struct TurnItem: Codable, Equatable {
public let id: String
public let conversationID: String
public let CLSTurnID: String?
public let role: String
public let data: String
public let createdAt: Date
public let updatedAt: Date
public init(id: String, conversationID: String, CLSTurnID: String?, role: String, data: String, createdAt: Date, updatedAt: Date) {
self.id = id
self.conversationID = conversationID
self.CLSTurnID = CLSTurnID
self.role = role
self.data = data
self.createdAt = createdAt
self.updatedAt = updatedAt
}
}
public struct ConversationItem: Codable, Equatable {
public let id: String
public let title: String?
public let isSelected: Bool
public let CLSConversationID: String?
public let data: String
public let createdAt: Date
public let updatedAt: Date
public init(id: String, title: String?, isSelected: Bool, CLSConversationID: String?, data: String, createdAt: Date, updatedAt: Date) {
self.id = id
self.title = title
self.isSelected = isSelected
self.CLSConversationID = CLSConversationID
self.data = data
self.createdAt = createdAt
self.updatedAt = updatedAt
}
}
public struct ConversationPreviewItem: Codable, Equatable {
public let id: String
public let title: String?
public let isSelected: Bool
public let updatedAt: Date
}
public enum DeleteType {
case conversation(id: String)
case turn(id: String)
case turnByConversationID(conversationID: String)
}
public enum OperationType {
case upsertTurn([TurnItem])
case upsertConversation([ConversationItem])
case delete([DeleteType])
}
public struct OperationRequest {
var operations: [OperationType]
public init(_ operations: [OperationType]) {
self.operations = operations
}
}
public enum ConversationFetchType {
case all, selected, latest, id(String)
}