From 8e12cb9bb66adc7adaf6d276133d6f235d294d23 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 15 Jul 2026 20:24:31 +0200 Subject: init --- order-service/app/schemas/order.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 order-service/app/schemas/order.py (limited to 'order-service/app/schemas') diff --git a/order-service/app/schemas/order.py b/order-service/app/schemas/order.py new file mode 100644 index 0000000..47aff2c --- /dev/null +++ b/order-service/app/schemas/order.py @@ -0,0 +1,36 @@ +from datetime import datetime +from decimal import Decimal +from pydantic import BaseModel, Field, ConfigDict + + +class OrderItemCreate(BaseModel): + product_id: int = Field(..., gt=0, description="Database ID of the product") + quantity: int = Field(..., gt=0, le=100, description="Must buy at least 1, max 100") + price: Decimal = Field(..., gt=0.00, description="The price per unit") + + +class OrderItemOut(BaseModel): + id: int + product_id: int + quantity: int + price: Decimal + + model_config = ConfigDict(from_attributes=True) + + +class OrderCreate(BaseModel): + customer_id: int = Field(..., gt=0) + items: list[OrderItemCreate] = Field( + ..., min_length=1, description="Order must contain at least 1 item" + ) + + +class OrderOut(BaseModel): + id: int + customer_id: int + status: str + total_price: Decimal + created_at: datetime + items: list[OrderItemOut] + + model_config = ConfigDict(from_attributes=True) -- cgit v1.2.3