mongog setup
This commit is contained in:
84
backend/models.py
Normal file
84
backend/models.py
Normal file
@@ -0,0 +1,84 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
from enum import Enum
|
||||
|
||||
# ========== User Models ==========
|
||||
|
||||
|
||||
class UserCreate(BaseModel):
|
||||
email: str
|
||||
displayName: Optional[str] = None
|
||||
photoURL: Optional[str] = None
|
||||
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
displayName: Optional[str] = None
|
||||
photoURL: Optional[str] = None
|
||||
theme: Optional[str] = None
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
id: str
|
||||
email: str
|
||||
displayName: Optional[str] = None
|
||||
photoURL: Optional[str] = None
|
||||
createdAt: datetime
|
||||
updatedAt: datetime
|
||||
theme: Optional[str] = "light"
|
||||
|
||||
# ========== Journal Entry Models ==========
|
||||
|
||||
|
||||
class MoodEnum(str, Enum):
|
||||
happy = "happy"
|
||||
sad = "sad"
|
||||
neutral = "neutral"
|
||||
anxious = "anxious"
|
||||
grateful = "grateful"
|
||||
|
||||
|
||||
class JournalEntryCreate(BaseModel):
|
||||
title: str
|
||||
content: str
|
||||
mood: Optional[MoodEnum] = None
|
||||
tags: Optional[List[str]] = None
|
||||
isPublic: Optional[bool] = False
|
||||
|
||||
|
||||
class JournalEntryUpdate(BaseModel):
|
||||
title: Optional[str] = None
|
||||
content: Optional[str] = None
|
||||
mood: Optional[MoodEnum] = None
|
||||
tags: Optional[List[str]] = None
|
||||
isPublic: Optional[bool] = None
|
||||
|
||||
|
||||
class JournalEntry(BaseModel):
|
||||
id: str
|
||||
userId: str
|
||||
title: str
|
||||
content: str
|
||||
mood: Optional[MoodEnum] = None
|
||||
tags: Optional[List[str]] = None
|
||||
isPublic: bool = False
|
||||
createdAt: datetime
|
||||
updatedAt: datetime
|
||||
|
||||
# ========== Settings Models ==========
|
||||
|
||||
|
||||
class UserSettingsUpdate(BaseModel):
|
||||
notifications: Optional[bool] = None
|
||||
emailNotifications: Optional[bool] = None
|
||||
theme: Optional[str] = None
|
||||
language: Optional[str] = None
|
||||
|
||||
|
||||
class UserSettings(BaseModel):
|
||||
userId: str
|
||||
notifications: bool = True
|
||||
emailNotifications: bool = False
|
||||
theme: str = "light"
|
||||
language: str = "en"
|
||||
updatedAt: datetime
|
||||
Reference in New Issue
Block a user