43 lines
804 B
Python
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 |