mirror of
https://github.com/cssgunc/compass.git
synced 2025-04-10 06:10:17 -04:00
initial models commit
This commit is contained in:
parent
8da68d6d2a
commit
23e4e22fa6
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"
|
15
backend/models/resource_model.py
Normal file
15
backend/models/resource_model.py
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
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 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]
|
12
backend/models/resource_tag_model.py
Normal file
12
backend/models/resource_tag_model.py
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
class ResourceTag(BaseModel):
|
||||||
|
id: int | None = None
|
||||||
|
resourceid: int | None = None
|
||||||
|
tagid: 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: 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
|
||||||
|
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
|
||||||
|
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