70 lines
1.2 KiB
Python
70 lines
1.2 KiB
Python
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 |