mirror of
https://github.com/cssgunc/compass.git
synced 2025-04-06 20:50:17 -04:00
Merge pull request #22 from cssgunc/backend-manyuaidan-GEN-94-pydanticmodels
initial models commit
This commit is contained in:
commit
4790d4adf5
17
backend/models/enum_for_models.py
Normal file
17
backend/models/enum_for_models.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class ProgramTypeEnum(str, Enum):
|
||||
DOMESTIC = "DOMESTIC"
|
||||
ECONOMIC = "ECONOMIC"
|
||||
COMMUNITY = "COMMUNITY"
|
||||
|
||||
|
||||
class UserTypeEnum(str, Enum):
|
||||
ADMIN = "ADMIN"
|
||||
EMPLOYEE = "EMPLOYEE"
|
||||
VOLUNTEER = "VOLUNTEER"
|
16
backend/models/resource_model.py
Normal file
16
backend/models/resource_model.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from .enum_for_models import ProgramTypeEnum
|
||||
from .resource_model import Resource
|
||||
|
||||
|
||||
class Resource(BaseModel):
|
||||
id: int | None = None
|
||||
name: str = Field(..., max_length=150, description="The name of the resource")
|
||||
summary: str = Field(..., max_length=300, description="The summary of the resource")
|
||||
link: str = Field(..., max_length=150, description="link to the resource")
|
||||
programtype: ProgramTypeEnum
|
||||
created_at: Optional[datetime]
|
13
backend/models/resource_tag_model.py
Normal file
13
backend/models/resource_tag_model.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from .tag_model import Tag
|
||||
from .resource_model import Resource
|
||||
|
||||
|
||||
class ResourceTag(Resource, BaseModel):
|
||||
id: int | None = None
|
||||
resourceid: int | None = None
|
||||
tagid: List[Tag]
|
16
backend/models/service_model.py
Normal file
16
backend/models/service_model.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from .enum_for_models import ProgramTypeEnum
|
||||
|
||||
|
||||
class Service(BaseModel):
|
||||
id: int | None = None
|
||||
created_at: datetime | None = None
|
||||
name: str
|
||||
status: str
|
||||
summary: str
|
||||
requirements: List[str]
|
||||
program: ProgramTypeEnum
|
19
backend/models/service_tag_model.py
Normal file
19
backend/models/service_tag_model.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from .enum_for_models import ProgramTypeEnum
|
||||
from .enum_for_models import UserTypeEnum
|
||||
from .service_model import Service
|
||||
|
||||
from .tag_model import Tag
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class ServiceTag(Service, BaseModel):
|
||||
id: int | None = None
|
||||
serviceid: int | None = None
|
||||
tagId: List[Tag]
|
13
backend/models/tag_model.py
Normal file
13
backend/models/tag_model.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
|
||||
class Tag(BaseModel):
|
||||
id: int | None = None
|
||||
content: str = Field(
|
||||
..., max_length=600, description="content associated with the tag"
|
||||
)
|
||||
created_at: datetime | None = None
|
17
backend/models/user_model.py
Normal file
17
backend/models/user_model.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from pydantic import BaseModel, Field
|
||||
from enum import Enum
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from .enum_for_models import UserTypeEnum, ProgramTypeEnum
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
id: int | None = None
|
||||
username: str = Field(..., description="The username of the user")
|
||||
email: str = Field(..., description="The e-mail of the user")
|
||||
experience: int = Field(..., description="Years of Experience of the User")
|
||||
group: str
|
||||
programtype: List[ProgramTypeEnum]
|
||||
usertype: UserTypeEnum
|
||||
created_at: Optional[datetime]
|
Loading…
Reference in New Issue
Block a user