from pydantic import BaseModel, Field, ConfigDict from datetime import datetime from typing import List, Optional class MemoryItemResponse(BaseModel): """Schema for a single memory item returned from Mem0.""" id: str = Field(..., description="Unique ID of the memory.") memory: str = Field(..., description="The content of the memory.") created_at: datetime = Field(..., description="Timestamp when the memory was created.") updated_at: datetime = Field(..., description="Timestamp when the memory was last updated.") model_config = ConfigDict(from_attributes=True) class GetAllMemoriesResponse(BaseModel): """Schema for returning a list of memories for a user.""" memories: List[MemoryItemResponse] = Field(default_factory=list, description="List of memory items.") class DeleteMemoryResponse(BaseModel): """Schema for confirming a memory deletion.""" message: str = Field(..., json_schema_extra={'example': "Memory deleted successfully!"}) class DeleteAllUserMemoriesResponse(BaseModel): """Schema for confirming deletion of all memories for a user.""" message: str = Field(..., json_schema_extra={'example': "Memory deleted successfully!"})