from typing import List, Optional from pydantic import BaseModel from backend.app.schemas.base import BaseResponse class UserInteraction(BaseModel): id: str type: str total: float class UserBase(BaseModel): id: str userInteraction: List[UserInteraction] class RecommendationItem(BaseModel): id: str similarity_score: float class BasedOnInteraction(BaseModel): id: str total: float class RecommendationResponse(BaseResponse): user_id: str based_on: List[BasedOnInteraction] recommendations: List[str] class QueryRecommendationRequest(BaseModel): query: str top_k: int = 5 type : str = None user_id: Optional[str] = None class QueryRecommendationItem(BaseModel): id: str similarity_score: float class QueryRecommendationResponse(BaseModel): message: str status_code: int query: str event_recommendations: List[QueryRecommendationItem] travel_recommendations: List[QueryRecommendationItem]