Files
YTVeille/backend/api/models.py
T
2026-05-22 09:17:28 +02:00

47 lines
879 B
Python

from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime
class Video(BaseModel):
id: str
title: str
channel: str
published_at: datetime
duration_seconds: int
view_count: int
like_count: int
thumbnail_url: str
youtube_url: str
tags: List[str] = []
has_chapters: bool = False
score: float = 0.0
topics: List[str] = []
source_queries: List[str] = []
class VideoList(BaseModel):
total: int
page: int
page_size: int
items: List[Video]
class FilterParams(BaseModel):
min_score: float = 0.0
topic: Optional[str] = None
days: int = 30
page: int = 1
page_size: int = 20
class RefreshRequest(BaseModel):
queries: Optional[List[str]] = None
class RefreshResult(BaseModel):
fetched: int
scored: int
stored: int
timestamp: datetime