archive-backend/schemas/channel_schemas.py
2026-11-07 19:35:15 +00:00

43 lines
804 B
Python

from datetime import date as DateType
from pydantic import BaseModel, field_validator
from services.path import encode_path
class ChannelItem(BaseModel):
id: int
name: str
videos_count: int
class ChannelsOut(BaseModel):
channels: list[ChannelItem]
class VideoItem(BaseModel):
id: int
title: str
path: str
preview_path: str
date: DateType | None = None
@field_validator("path", "preview_path", mode="before")
@classmethod
def encode_urls(cls, v):
return encode_path(v)
class PlaylistItem(BaseModel):
id: int
name: str
preview_path: str
class ChannelOut(BaseModel):
videos: list[VideoItem]
playlists: list[PlaylistItem]
channel_name: str
videos_count: int | None = None
playlists_count: int | None = None