from pydantic import BaseModel, EmailStr | |
from bson import ObjectId | |
from typing import Optional | |
from datetime import datetime | |
class User(BaseModel): | |
username: str | |
email: EmailStr | |
password: str | |
class TokenData(BaseModel): | |
username: Optional[str] = None | |
class Token(BaseModel): | |
access_token: str | |
token_type: str | |
class FileUpload(BaseModel): | |
filename: str | |
content: list[dict] | |
created_at: Optional[datetime] = None | |
updated_at: Optional[datetime] = None | |
class Opportunity(BaseModel): | |
username:str | |
activity: str | |
closeDate: datetime | |
customerContact: str | |
customerContactRole: str | |
customerName: str | |
nextSteps: str | |
opportunityDescription: str | |
opportunityId: str | |
opportunityName: str | |
opportunityState: str | |
opportunityValue: str | |
created_at: Optional[datetime] = None | |
updated_at: Optional[datetime] = None | |
class Config: | |
json_encoders = { | |
datetime: lambda v: v.isoformat(), | |
ObjectId: lambda v: str(v) | |
} | |
allow_population_by_field_name = True | |
class ChatMessage(BaseModel): | |
message: str | |
timestamp: datetime | |
sender: str |