feat: implement chat persistence with MongoDB
- Add full chat persistence to database (conversations and messages) - Implement MongoChatRepository with cursor-based pagination - Add getConversations/getConversation endpoints in ChatController - Save user and assistant messages in ChatService.processMessage() - Track respondedAction (confirm/reject) on proposed event messages - Load existing messages on chat screen mount - Add addMessages() bulk action and chatMessageToMessageData() helper to ChatStore - Add RespondedAction type and UpdateMessageDTO to shared types
This commit is contained in:
@@ -4,6 +4,8 @@ export type MessageSender = "user" | "assistant";
|
||||
|
||||
export type EventAction = "create" | "update" | "delete";
|
||||
|
||||
export type RespondedAction = "confirm" | "reject";
|
||||
|
||||
export interface ProposedEventChange {
|
||||
action: EventAction;
|
||||
eventId?: string; // Required for update/delete
|
||||
@@ -17,6 +19,7 @@ export interface ChatMessage {
|
||||
sender: MessageSender;
|
||||
content: string;
|
||||
proposedChange?: ProposedEventChange;
|
||||
respondedAction?: RespondedAction;
|
||||
createdAt?: Date;
|
||||
}
|
||||
|
||||
@@ -43,6 +46,10 @@ export interface GetMessagesOptions {
|
||||
limit?: number; // Default: 20
|
||||
}
|
||||
|
||||
export interface UpdateMessageDTO {
|
||||
respondedAction?: RespondedAction;
|
||||
}
|
||||
|
||||
export interface ChatResponse {
|
||||
message: ChatMessage;
|
||||
conversationId: string;
|
||||
|
||||
Reference in New Issue
Block a user