refactor kontor-api to use SQLAlchemy 2.0 features for mapping fields

(cherry picked from commit e57abdbef7e13e3880738cd639225df5db0c37be)
This commit is contained in:
Thomas Peetz
2026-01-29 14:43:37 +01:00
committed by Thomas Peetz
parent 47df61af32
commit e0b585f72b
17 changed files with 306 additions and 647 deletions
+4 -10
View File
@@ -1,18 +1,12 @@
from datetime import datetime
from src.db.models.media import MediaActor
from typing import Optional
from pydantic import BaseModel
class MediaActorResponse(BaseModel):
id: str
name: str | None
name: Optional[str]
url: str
class Actor(BaseModel):
name: str | None
class MediaActorModel(BaseModel):
name: Optional[str]
url: str
def get_actor_details(media_actor: MediaActor) -> MediaActorResponse:
reponse: MediaActorResponse = MediaActorResponse(id=media_actor.id, name=str(media_actor.name), url=str(media_actor.url))
return reponse
+1 -7
View File
@@ -1,6 +1,6 @@
from datetime import datetime
from src.db.models.media import MediaActorFile, MediaFile
from src.db.models.media import MediaActorFile
from pydantic import BaseModel
@@ -8,9 +8,3 @@ class MediaActorFileResponse(BaseModel):
id: str
file_id: str
actor_id: str
def get_actorfile_details(media_actorfile: MediaActorFile) -> MediaActorFileResponse:
response: MediaActorFileResponse = MediaActorFileResponse(id=media_actorfile.id,
file_id=str(media_actorfile.media_file_id),
actor_id=str(media_actorfile.media_actor_id))
return response
+5 -3
View File
@@ -30,9 +30,11 @@ def get_file_details(mediafile: MediaFile) -> MediaFileResponse:
def set_file(model: MediaFileResponse, mediafile: MediaFile) -> None:
mediafile.file_name = model.file_name
mediafile.cloud_link = model.cloud_link # type: ignore
mediafile.url = model.url # type: ignore
mediafile.title = model.title
mediafile.cloud_link = model.cloud_link
if model.url is not None:
mediafile.url = model.url
if model.title is not None:
mediafile.title = model.title
mediafile.last_modified_date = datetime.now()
mediafile.review = model.review
mediafile.should_download = model.should_download
+13
View File
@@ -0,0 +1,13 @@
from pydantic import BaseModel
from src.db.models.admin import Profile
class ProfileResponse(BaseModel):
id: str
user_name: str
class ProfileModel(BaseModel):
user_name: str
first_name: str
last_name: str