Spaces:
Build error
Build error
| from typing import Any, Optional, List | |
| from datetime import date | |
| from schemas.program import ProgramInDB | |
| from schemas.group import GroupSignInReturn, Group | |
| from schemas.course import CourseInDB | |
| from core.config import settings | |
| from pydantic import BaseModel, EmailStr | |
| # Shared properties | |
| class UserBase(BaseModel): | |
| email: Optional[EmailStr] = None | |
| full_name: Optional[str] = None | |
| user_type: int | |
| address: str = None | |
| group_id: int = None | |
| roll: int = None | |
| teacher_department_id: int = None | |
| contact_number: str = None | |
| dob: date = None | |
| teacher_group: List[List[int]] = None | |
| join_year: Optional[int] = None | |
| class UserSignUp(BaseModel): | |
| email: Optional[EmailStr] = None | |
| full_name: Optional[str] = None | |
| address: str = None | |
| group_id: int = None | |
| contact_number: str = None | |
| dob: date = None | |
| join_year: Optional[int] = None | |
| password: str | |
| # Properties to receive via API on creation | |
| class UserCreate(UserBase): | |
| email: EmailStr | |
| user_type: int = settings.UserType.STUDENT.value | |
| password: str | |
| class AdminUserCreate(BaseModel): | |
| email: EmailStr = None | |
| full_name: str = None | |
| address: Optional[str] = None | |
| group_id: Optional[int] = None | |
| roll: Optional[int] = None | |
| contact_number: str = None | |
| dob: date = None | |
| join_year: Optional[int] = None | |
| class VerifyUser(BaseModel): | |
| is_active: bool | |
| class UserReturnMin(BaseModel): | |
| id: int | |
| class Config: | |
| orm_mode = True | |
| class TeacherShort(BaseModel): | |
| id: int | |
| full_name: str | |
| profile_image: Optional[str] | |
| class Config: | |
| orm_mode = True | |
| # Properties to receive via API on update | |
| class UserUpdate(BaseModel): | |
| full_name: Optional[str] | |
| address: Optional[str] | |
| group_id: Optional[int] | |
| dob: Optional[date] | |
| contact_number: Optional[str] | |
| profile_image: Optional[str] | |
| class PasswordUpdate(BaseModel): | |
| password: str | |
| class UserInDBBase(UserBase): | |
| id: Optional[int] = None | |
| teacher_group: Optional[List[Group]] | |
| profile_image: Optional[str] = None | |
| class Config: | |
| orm_mode = True | |
| # Additional properties to return via API | |
| class User(UserInDBBase): | |
| pass | |
| class GroupOfTeacherGroupOfUser(BaseModel): | |
| id: int | |
| sem: int | |
| program: ProgramInDB | |
| class Config: | |
| orm_mode = True | |
| class TeacherGroupOfUser(BaseModel): | |
| group_id: int | |
| group: GroupOfTeacherGroupOfUser | |
| course: CourseInDB | |
| class Config: | |
| orm_mode = True | |
| class UserReturn(BaseModel): | |
| id: int = None | |
| email: Optional[EmailStr] = None | |
| profile_image: Optional[str] = None | |
| full_name: Optional[str] = None | |
| address: str = None | |
| roll: int = None | |
| group: GroupSignInReturn = None | |
| teacher_group: List[TeacherGroupOfUser] = None | |
| contact_number: str = None | |
| dob: date = None | |
| user_type: int = None | |
| join_year: Optional[int] = None | |
| is_active: bool = None | |
| class Config: | |
| orm_mode = True | |
| class UserLoginReturn(BaseModel): | |
| user: Optional[UserReturn] | |
| msg: str | |
| two_fa_required: Optional[bool] | |
| class Config: | |
| orm_mode = True | |
| # Additional properties stored in DB | |
| class UserInDB(UserInDBBase): | |
| hashed_password: str | |
| class Name(BaseModel): | |
| id: int | |
| full_name: str | |
| profile_image: Optional[str] | |
| class Config: | |
| orm_mode = True | |