order and api and more
This commit is contained in:
182
app/schemas/tcgplayer.py
Normal file
182
app/schemas/tcgplayer.py
Normal file
@ -0,0 +1,182 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
# API Response Schemas (matching TCGPlayer API structure)
|
||||
class TCGPlayerAPIOrderProduct(BaseModel):
|
||||
name: str
|
||||
unitPrice: float
|
||||
extendedPrice: float
|
||||
quantity: int
|
||||
url: str
|
||||
productId: str
|
||||
skuId: str
|
||||
|
||||
class TCGPlayerAPIOrderTax(BaseModel):
|
||||
code: str
|
||||
amount: float
|
||||
|
||||
class TCGPlayerAPIOrderTransaction(BaseModel):
|
||||
productAmount: float
|
||||
shippingAmount: float
|
||||
grossAmount: float
|
||||
feeAmount: float
|
||||
netAmount: float
|
||||
directFeeAmount: float
|
||||
taxes: List[TCGPlayerAPIOrderTax]
|
||||
|
||||
class TCGPlayerAPIOrderRefund(BaseModel):
|
||||
createdAt: datetime
|
||||
type: str
|
||||
amount: float
|
||||
description: Optional[str] = None
|
||||
origin: str
|
||||
shippingAmount: float
|
||||
products: List[dict]
|
||||
|
||||
class TCGPlayerAPIOrderShippingAddress(BaseModel):
|
||||
recipientName: str
|
||||
addressOne: str
|
||||
addressTwo: Optional[str] = None
|
||||
city: str
|
||||
territory: str
|
||||
country: str
|
||||
postalCode: str
|
||||
|
||||
class TCGPlayerAPIOrderTrackingNumber(BaseModel):
|
||||
createdAt: str
|
||||
carrier: str
|
||||
trackingNumber: str
|
||||
status: str
|
||||
|
||||
class TCGPlayerAPIOrder(BaseModel):
|
||||
createdAt: str
|
||||
status: str
|
||||
orderChannel: str
|
||||
orderFulfillment: str
|
||||
orderNumber: str
|
||||
sellerName: str
|
||||
buyerName: str
|
||||
paymentType: str
|
||||
pickupStatus: str
|
||||
shippingType: str
|
||||
estimatedDeliveryDate: datetime
|
||||
transaction: TCGPlayerAPIOrderTransaction
|
||||
shippingAddress: TCGPlayerAPIOrderShippingAddress
|
||||
products: List[TCGPlayerAPIOrderProduct]
|
||||
refunds: Optional[List[TCGPlayerAPIOrderRefund]]
|
||||
refundStatus: str
|
||||
trackingNumbers: List[TCGPlayerAPIOrderTrackingNumber]
|
||||
allowedActions: List[str]
|
||||
|
||||
class TCGPlayerAPIOrderSummary(BaseModel):
|
||||
orderNumber: str
|
||||
orderDate: datetime
|
||||
orderChannel: str
|
||||
orderStatus: str
|
||||
buyerName: str
|
||||
shippingType: str
|
||||
productAmount: float
|
||||
shippingAmount: float
|
||||
totalAmount: float
|
||||
buyerPaid: bool
|
||||
orderFulfillment: str
|
||||
|
||||
class TCGPlayerAPIOrderSearchResponse(BaseModel):
|
||||
totalOrders: int
|
||||
orders: List[TCGPlayerAPIOrderSummary]
|
||||
# Database Schemas (matching your internal structure)
|
||||
class TCGPlayerOrderBase(BaseModel):
|
||||
order_number: str
|
||||
order_created_at: datetime
|
||||
status: str
|
||||
channel: str
|
||||
fulfillment: str
|
||||
seller_name: str
|
||||
buyer_name: str
|
||||
payment_type: str
|
||||
pickup_status: str
|
||||
shipping_type: str
|
||||
estimated_delivery_date: Optional[datetime]
|
||||
recipient_name: str
|
||||
address_line_1: str
|
||||
address_line_2: Optional[str]
|
||||
city: str
|
||||
state: str
|
||||
zip_code: str
|
||||
country: str
|
||||
tracking_numbers: List[str]
|
||||
|
||||
class TCGPlayerOrderCreate(TCGPlayerOrderBase):
|
||||
pass
|
||||
|
||||
class TCGPlayerOrder(TCGPlayerOrderBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class TCGPlayerOrderTransactionBase(BaseModel):
|
||||
order_number: str
|
||||
product_amount: float
|
||||
shipping_amount: float
|
||||
gross_amount: float
|
||||
fee_amount: float
|
||||
net_amount: float
|
||||
direct_fee_amount: float
|
||||
taxes: List[dict]
|
||||
|
||||
class TCGPlayerOrderTransactionCreate(TCGPlayerOrderTransactionBase):
|
||||
pass
|
||||
|
||||
class TCGPlayerOrderTransaction(TCGPlayerOrderTransactionBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class TCGPlayerOrderProductBase(BaseModel):
|
||||
order_number: str
|
||||
product_name: str
|
||||
unit_price: float
|
||||
extended_price: float
|
||||
quantity: int
|
||||
url: str
|
||||
product_id: str
|
||||
sku_id: str
|
||||
|
||||
class TCGPlayerOrderProductCreate(TCGPlayerOrderProductBase):
|
||||
pass
|
||||
|
||||
class TCGPlayerOrderProduct(TCGPlayerOrderProductBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class TCGPlayerOrderRefundBase(BaseModel):
|
||||
order_number: str
|
||||
refund_created_at: datetime
|
||||
type: str
|
||||
amount: float
|
||||
description: Optional[str] = None
|
||||
origin: str
|
||||
shipping_amount: float
|
||||
products: List[dict]
|
||||
|
||||
class TCGPlayerOrderRefundCreate(TCGPlayerOrderRefundBase):
|
||||
pass
|
||||
|
||||
class TCGPlayerOrderRefund(TCGPlayerOrderRefundBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
Reference in New Issue
Block a user