сделал базовые ДТО для каждой таблицы

This commit is contained in:
Андрей Дувакин 2025-02-09 14:22:21 +05:00
parent a00fba8eca
commit 6079d975d3
21 changed files with 301 additions and 0 deletions

View File

@ -16,6 +16,17 @@ class UsersRepository:
def get_by_login(self, login: str):
return self.db.query(User).filter(User.login == login).first()
def change_password(self, user_id: int, old_password: str, new_password: str):
user = self.db.query(User).filter(User.id == user_id).first()
if user.check_password(old_password):
user.set_password(new_password)
self.db.merge(user)
self.db.commit()
self.db.refresh(user)
return user
return None
def create(self, user: User):
self.db.add(user)
self.db.commit()

View File

@ -0,0 +1,14 @@
from typing import Optional
from pydantic import BaseModel
class AnswerFileEntity(BaseModel):
id: Optional[int] = None
file_path: str
file_title: str
answer_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,14 @@
from typing import Optional
from pydantic import BaseModel
class AnswerOptionEntity(BaseModel):
id: Optional[int] = None
text: str
is_correct: bool
task_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,17 @@
import datetime
from typing import Optional
from pydantic import BaseModel
class AppealEntity(BaseModel):
id: Optional[int] = None
message: str
created_date: datetime.datetime
status: str
topic_id: int
user_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,11 @@
from typing import Optional
from pydantic import BaseModel
class AppealTopicEntity(BaseModel):
id: Optional[int] = None
title: str
class Config:
from_attributes = True

View File

@ -0,0 +1,12 @@
from typing import Optional
from pydantic import BaseModel
class CategoryEntity(BaseModel):
id: Optional[int] = None
title: str
description: str
class Config:
from_attributes = True

View File

@ -0,0 +1,16 @@
import datetime
from typing import Optional
from pydantic import BaseModel
class CourseStudentEntity(BaseModel):
id: Optional[int] = None
enrollment_date: datetime.date
is_finished: bool
course_id: int
user_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,15 @@
from typing import Optional
from pydantic import BaseModel
class CourseEntity(BaseModel):
id: Optional[int] = None
title: str
description: str
category_id: int
owner_user_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,15 @@
from typing import Optional
from pydantic import BaseModel
class LectureEntity(BaseModel):
id: Optional[int] = None
text: str
image: Optional[str]
number: int
step_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,14 @@
from typing import Optional
from pydantic import BaseModel
class LessonEntity(BaseModel):
id: Optional[int] = None
title: str
description: str
course_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,18 @@
import datetime
from typing import Optional
from pydantic import BaseModel
class NotificationEntity(BaseModel):
id: Optional[int] = None
text: str
datetime_notification: datetime.datetime
is_read: bool
user_id: int
type_id: int
course_id: Optional[int]
class Config:
from_attributes = True

View File

@ -0,0 +1,12 @@
from typing import Optional
from pydantic import BaseModel
class NotificationTypeEntity(BaseModel):
id: Optional[int] = None
title: str
description: str
class Config:
from_attributes = True

View File

@ -0,0 +1,11 @@
from typing import Optional
from pydantic import BaseModel
class RoleEntity(BaseModel):
id: Optional[int] = None
title: str
class Config:
from_attributes = True

View File

@ -0,0 +1,14 @@
from typing import Optional
from pydantic import BaseModel
class StepTaskEntity(BaseModel):
id: Optional[int] = None
text: str
step_id: int
type_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,12 @@
from typing import Optional
from pydantic import BaseModel
class StepTypeEntity(BaseModel):
id: Optional[int] = None
title: str
description: str
class Config:
from_attributes = True

View File

@ -0,0 +1,14 @@
from typing import Optional
from pydantic import BaseModel
class StepEntity(BaseModel):
id: Optional[int] = None
title: str
lesson_id: int
type_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,18 @@
import datetime
from typing import Optional
from pydantic import BaseModel
class TaskAnswerEntity(BaseModel):
id: Optional[int] = None
answer_date: datetime.datetime
text: str
is_current: Optional[bool]
comment: Optional[str]
user_id: int
task_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,14 @@
from typing import Optional
from pydantic import BaseModel
class TaskFileEntity(BaseModel):
id: Optional[int] = None
file_path: str
file_title: str
task_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,12 @@
from typing import Optional
from pydantic import BaseModel
class TaskTypeEntity(BaseModel):
id: Optional[int] = None
title: str
description: str
class Config:
from_attributes = True

View File

@ -0,0 +1,15 @@
from datetime import datetime
from typing import Optional
from pydantic import BaseModel
class TestAnswerEntity(BaseModel):
id: Optional[int] = None
answer_date: datetime.datetime
user_id: int
answer_id: int
class Config:
from_attributes = True

View File

@ -0,0 +1,22 @@
import datetime
from typing import Optional
from pydantic import BaseModel
class UserEntity(BaseModel):
id: Optional[int]
first_name: str
last_name: str
patronymic: Optional[str]
gender: str
birthday: datetime.date
registration_date: datetime.datetime
login: str
password: str
email: str
role_id: int
class Config:
from_attributes = True