from pydantic import BaseModel, ConfigDict from typing import List, Dict from uuid import UUID from datetime import datetime class VideoInfo(BaseModel): title: str description: str url: str created_at: datetime is_uploaded: bool class GetUserVideoResponse(BaseModel): data: Dict[str, VideoInfo] class UploadVideoRequest(BaseModel): user_id: str video_id: UUID title: str description: str hashtag: List[str] timestamp: datetime class UploadVideoResponse(BaseModel): message: str upload_time: datetime class DeleteVideoRequest(BaseModel): user_id: str video_id: UUID class DeleteVideoResponse(BaseModel): message: str class ErrorResponse(BaseModel): error_code: str error_message: str class Video(BaseModel): model_config = ConfigDict(from_attributes=True) id: UUID title: str description: str url: str is_uploaded: bool download_count: int resolution: str status: str thumbnail_url: str # 업체(items) 가져오기 class GetVideosRequest(BaseModel): id: UUID class GetVideosResponse(BaseModel): model_config = ConfigDict(from_attributes=True) total_count: int videos: list[Video] # 업체(items) 가져오기 class DeleteVideosResponse(BaseModel): message: str class GetVideoByOrderIdRequest(BaseModel): id: UUID order_id: UUID class GetVideoResponse(BaseModel): id: UUID title: str description: str url: str resolution: str is_uploaded: bool download_count: int