O2Sound_ver2_final/backend/app/presentation/schemas/order_schema.py

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