implement backend skeleton with MongoDB and Claude AI integration

- Add controllers (Auth, Chat, Event) with placeholder implementations
- Add services (Auth, Chat, Event) with business logic interfaces
- Add repositories with MongoDB/Mongoose models (User, Event, Chat)
- Add middleware for JWT authentication
- Add Claude AI adapter implementing AIProvider interface
- Add utility modules for JWT and password handling
- Add shared types and DTOs for User, CalendarEvent, ChatMessage
- Configure routes with proper endpoint structure
- Update app.ts with dependency injection setup
- Add required dependencies: mongoose, bcrypt, jsonwebtoken, @anthropic-ai/sdk
This commit is contained in:
2026-01-02 20:09:42 +01:00
parent 5af6cffa9c
commit 5cc1ce7f1c
47 changed files with 1397 additions and 13 deletions

View File

@@ -0,0 +1,30 @@
import { ChatMessage, ChatResponse, SendMessageDTO, CalendarEvent, ConversationSummary, GetMessagesOptions } from '@caldav/shared';
import { ChatRepository, EventRepository, AIProvider } from './interfaces';
export class ChatService {
constructor(
private chatRepo: ChatRepository,
private eventRepo: EventRepository,
private aiProvider: AIProvider
) {}
async processMessage(userId: string, data: SendMessageDTO): Promise<ChatResponse> {
throw new Error('Not implemented');
}
async confirmEvent(userId: string, conversationId: string, messageId: string): Promise<CalendarEvent> {
throw new Error('Not implemented');
}
async rejectEvent(conversationId: string, messageId: string): Promise<void> {
throw new Error('Not implemented');
}
async getConversations(userId: string): Promise<ConversationSummary[]> {
throw new Error('Not implemented');
}
async getConversation(userId: string, conversationId: string, options?: GetMessagesOptions): Promise<ChatMessage[]> {
throw new Error('Not implemented');
}
}