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,22 @@
import { Request, Response } from 'express';
import { AuthService } from '../services';
export class AuthController {
constructor(private authService: AuthService) {}
async login(req: Request, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async register(req: Request, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async refresh(req: Request, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async logout(req: Request, res: Response): Promise<void> {
throw new Error('Not implemented');
}
}

View File

@@ -0,0 +1,27 @@
import { Response } from 'express';
import { ChatService } from '../services';
import { AuthenticatedRequest } from '../middleware';
export class ChatController {
constructor(private chatService: ChatService) {}
async sendMessage(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async confirmEvent(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async rejectEvent(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async getConversations(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async getConversation(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
}

View File

@@ -0,0 +1,31 @@
import { Response } from 'express';
import { EventService } from '../services';
import { AuthenticatedRequest } from '../middleware';
export class EventController {
constructor(private eventService: EventService) {}
async create(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async getById(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async getAll(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async getByDateRange(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async update(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
async delete(req: AuthenticatedRequest, res: Response): Promise<void> {
throw new Error('Not implemented');
}
}

View File

@@ -0,0 +1,3 @@
export * from './AuthController';
export * from './ChatController';
export * from './EventController';