first commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
from pydantic import BaseModel, EmailStr, Field
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
import uuid
|
||||
|
||||
class UserBase(BaseModel):
|
||||
email: EmailStr
|
||||
first_name: str
|
||||
last_name: Optional[str] = None
|
||||
phone_number: Optional[str] = None
|
||||
status: Optional[str] = "active"
|
||||
|
||||
class UserSignup(UserBase):
|
||||
password: str = Field(..., min_length=8)
|
||||
|
||||
class UserSignin(BaseModel):
|
||||
email: EmailStr
|
||||
password: str
|
||||
|
||||
class AccessInRole(BaseModel):
|
||||
id: str
|
||||
access_code: str
|
||||
category: str
|
||||
name: str
|
||||
|
||||
class RoleInUser(BaseModel):
|
||||
id: uuid.UUID
|
||||
role_name: str
|
||||
accesses: List[str] = []
|
||||
|
||||
class UserResponse(UserBase):
|
||||
id: uuid.UUID
|
||||
tenant_id: Optional[uuid.UUID] = None
|
||||
tenant_name: Optional[str] = None
|
||||
tenant_logo_url: Optional[str] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
role: Optional[RoleInUser] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
first_name: Optional[str] = None
|
||||
last_name: Optional[str] = None
|
||||
phone_number: Optional[str] = None
|
||||
email: Optional[EmailStr] = None
|
||||
status: Optional[str] = None
|
||||
|
||||
class TokenResponse(BaseModel):
|
||||
access_token: str
|
||||
refresh_token: str
|
||||
token_type: str = "bearer"
|
||||
user: UserResponse
|
||||
|
||||
|
||||
class RefreshTokenRequest(BaseModel):
|
||||
refresh_token: str
|
||||
|
||||
class ResetPassword(BaseModel):
|
||||
old_password: str
|
||||
new_password: str = Field(..., min_length=8)
|
||||
|
||||
class ForgotPasswordRequest(BaseModel):
|
||||
email: EmailStr
|
||||
|
||||
|
||||
class VerifyOTPRequest(BaseModel):
|
||||
email: EmailStr
|
||||
otp: str
|
||||
|
||||
|
||||
class ResetPasswordWithOTP(BaseModel):
|
||||
email: EmailStr
|
||||
otp: str
|
||||
new_password: str = Field(..., min_length=8)
|
||||
Reference in New Issue
Block a user