19 lines
762 B
Python
19 lines
762 B
Python
from ..models.video_model import Video
|
|
|
|
|
|
def video_to_document(video: Video) -> dict:
|
|
"""
|
|
Требует, чтобы video.channel и video.playlist были загружены
|
|
(selectinload), иначе будет ленивая загрузка в синхронном контексте → ошибка.
|
|
"""
|
|
return {
|
|
"id": video.id,
|
|
"title": video.title or video.filename,
|
|
"filename": video.filename,
|
|
"date": video.date.isoformat() if video.date else None,
|
|
"channel_id": video.channel_id,
|
|
"channel_name": video.channel.name,
|
|
"playlist_id": video.playlist_id,
|
|
"playlist_name": video.playlist.name if video.playlist else None,
|
|
"preview_path": video.preview_path,
|
|
} |