22from typing import List
33from pydantic import BaseModel , EmailStr , constr
44from bson .objectid import ObjectId
5+ from .config import settings
56
67
78class UserBaseSchema (BaseModel ):
89 name : str
910 email : str
1011 photo : str
11- role : str | None = None
12- created_at : datetime | None = None
13- updated_at : datetime | None = None
12+ role : str = None
13+ created_at : datetime = None
14+ updated_at : datetime = None
1415
1516 class Config :
1617 orm_mode = True
1718
1819
1920class CreateUserSchema (UserBaseSchema ):
20- password : constr (min_length = 8 )
21+ password : constr (min_length = settings . PASSWORD_MIN_LEN )
2122 passwordConfirm : str
2223 verified : bool = False
2324
2425
2526class LoginUserSchema (BaseModel ):
2627 email : EmailStr
27- password : constr (min_length = 8 )
28+ password : constr (min_length = settings . PASSWORD_MIN_LEN )
2829
2930
3031class UserResponseSchema (UserBaseSchema ):
@@ -46,8 +47,8 @@ class PostBaseSchema(BaseModel):
4647 content : str
4748 category : str
4849 image : str
49- created_at : datetime | None = None
50- updated_at : datetime | None = None
50+ created_at : datetime = None
51+ updated_at : datetime = None
5152
5253 class Config :
5354 orm_mode = True
@@ -57,7 +58,7 @@ class Config:
5758
5859
5960class CreatePostSchema (PostBaseSchema ):
60- user : ObjectId | None = None
61+ user : ObjectId = None
6162 pass
6263
6364
@@ -69,11 +70,11 @@ class PostResponse(PostBaseSchema):
6970
7071
7172class UpdatePostSchema (BaseModel ):
72- title : str | None = None
73- content : str | None = None
74- category : str | None = None
75- image : str | None = None
76- user : str | None = None
73+ title : str = None
74+ content : str = None
75+ category : str = None
76+ image : str = None
77+ user : str = None
7778
7879 class Config :
7980 orm_mode = True
0 commit comments