webmentai / models /user_model.py
subhandev1
Deploy FastAPI backend with Brevo email, contact form, and SEO reports
f5e7f79
Raw
History Blame Contribute Delete
1.27 kB
from pydantic import BaseModel, EmailStr, EmailStr, Field
from typing import List, Optional
from datetime import datetime
class UserCreate(BaseModel):
username: str
email: EmailStr
password: str
brand_name: Optional[str]
timezone: Optional[str] = None
class UserResponse(BaseModel):
username: str
email: EmailStr
brand_name: Optional[str]
role: str = "user"
plan: str = "free"
trial_start_date: Optional[datetime] = None
trial_end_date: Optional[datetime] = None
subscription_start_date: Optional[datetime] = None
subscription_end_date: Optional[datetime] = None
status: str = "active"
credits: int = 3
websites: List[str] = []
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class SignupResponse(BaseModel):
message: str
user: UserResponse
class UserLogin(BaseModel):
email: EmailStr
password: str
timezone: Optional[str] = None
class TokenResponse(BaseModel):
access_token: str
token_type: str = "bearer"
class ForgotPasswordRequest(BaseModel):
email: EmailStr
class ResetPasswordRequest(BaseModel):
email: EmailStr
otp: str
new_password: str = Field(..., min_length=6, description="Your new password")