From 19f945ab400a601871cc357a5bc9c6b1bb171c27 Mon Sep 17 00:00:00 2001 From: Backend IM Bot Date: Thu, 27 Mar 2025 14:54:28 +0000 Subject: [PATCH] Add Order schema --- schemas/order.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 schemas/order.py diff --git a/schemas/order.py b/schemas/order.py new file mode 100644 index 0000000..58a0ffc --- /dev/null +++ b/schemas/order.py @@ -0,0 +1,42 @@ +from pydantic import BaseModel, Field, condecimal +from typing import Optional +from uuid import UUID +from decimal import Decimal + +class OrderBase(BaseModel): + order_number: str = Field(..., min_length=1, max_length=50) + customer_id: str = Field(..., min_length=1) + total_amount: condecimal(max_digits=10, decimal_places=2) + shipping_address: str = Field(..., min_length=1) + status: str = Field(default="pending") + payment_status: str = Field(default="unpaid") + +class OrderCreate(OrderBase): + class Config: + schema_extra = { + "example": { + "order_number": "ORD-2023-001", + "customer_id": "user123", + "total_amount": "199.99", + "shipping_address": "123 Main St, City, Country", + "status": "pending", + "payment_status": "unpaid" + } + } + +class Order(OrderBase): + id: UUID + + class Config: + orm_mode = True + schema_extra = { + "example": { + "id": "550e8400-e29b-41d4-a716-446655440000", + "order_number": "ORD-2023-001", + "customer_id": "user123", + "total_amount": "199.99", + "shipping_address": "123 Main St, City, Country", + "status": "pending", + "payment_status": "unpaid" + } + } \ No newline at end of file