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:
2026-01-09 16:21:01 +01:00
parent d86b18173f
commit c897b6d680
11 changed files with 245 additions and 45 deletions

View File

@@ -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;