from pydantic import BaseModel, ConfigDict from uuid import UUID from datetime import datetime from typing import Optional class TaskRequest(BaseModel): user_id: UUID url: str class TaskSuccessData(BaseModel): order_id: str url: str class TaskSuccessResponse(BaseModel): data: TaskSuccessData class TaskErrorResponse(BaseModel): error_code: str error_message: str class Order(BaseModel): model_config = ConfigDict(from_attributes=True) id: UUID status: str class ResultRequest(BaseModel): user_id: UUID order_id: UUID class TestResponse(BaseModel): model_config = ConfigDict(from_attributes=True) total_count: int orders: list[Order] class ResultData(BaseModel): video_id: str title: str url: str duration: str resolution: str created_at: datetime class ResultSuccessResponse(BaseModel): data: ResultData class ResultErrorResponse(BaseModel): error_code: str error_message: str class CreateOrderRequest(BaseModel): user_id: UUID item_id: UUID status: str = "PENDING" class CreateOrderResponse(BaseModel): id: UUID user_id: UUID item_id: Optional[UUID] # ✅ None 허용 status: str