-
Notifications
You must be signed in to change notification settings - Fork 376
Expand file tree
/
Copy pathConversation.java
More file actions
104 lines (82 loc) · 2.38 KB
/
Conversation.java
File metadata and controls
104 lines (82 loc) · 2.38 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package ee.carlrobert.codegpt.conversations;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import ee.carlrobert.codegpt.conversations.message.Message;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Conversation {
private UUID id;
private String title;
private List<Message> messages;
private LocalDateTime createdOn;
private LocalDateTime updatedOn;
private boolean discardTokenLimit;
private String projectPath;
private List<ConversationAttachedFile> attachedFiles;
public Conversation() {
this.messages = new ArrayList<>();
this.attachedFiles = new ArrayList<>();
this.id = UUID.randomUUID();
this.createdOn = LocalDateTime.now();
this.updatedOn = LocalDateTime.now();
this.discardTokenLimit = false;
}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<Message> getMessages() {
return messages;
}
public void setMessages(List<Message> messages) {
this.messages = new ArrayList<>(messages);
}
public void addMessage(Message message) {
messages.add(message);
}
public LocalDateTime getCreatedOn() {
return createdOn;
}
public void setCreatedOn(LocalDateTime createdOn) {
this.createdOn = createdOn;
}
public LocalDateTime getUpdatedOn() {
return updatedOn;
}
public void setUpdatedOn(LocalDateTime updatedOn) {
this.updatedOn = updatedOn;
}
public void discardTokenLimits() {
this.discardTokenLimit = true;
}
public boolean isDiscardTokenLimit() {
return discardTokenLimit;
}
public void removeMessage(UUID messageId) {
messages = new ArrayList<>(messages.stream()
.filter(message -> !message.getId().equals(messageId))
.toList());
}
public String getProjectPath() {
return projectPath;
}
public void setProjectPath(String projectPath) {
this.projectPath = projectPath;
}
public List<ConversationAttachedFile> getAttachedFiles() {
return attachedFiles;
}
public void setAttachedFiles(List<ConversationAttachedFile> attachedFiles) {
this.attachedFiles = attachedFiles == null ? new ArrayList<>() : new ArrayList<>(attachedFiles);
}
}