# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-08-18T17:59:43+00:00
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import List, Optional
from uuid import UUID
from pydantic import AnyUrl, BaseModel, EmailStr, Field, RootModel, SecretStr, conint
class Address(BaseModel):
city: str
country: str
line1: str
line2: Optional[str] = None
postal_code: str
state: str
class CartItem(BaseModel):
product_id: UUID
quantity: conint(ge=1)
class Status(Enum):
pending = 'pending'
confirmed = 'confirmed'
shipped = 'shipped'
delivered = 'delivered'
class Order(BaseModel):
created_at: datetime
id: UUID
items: List[CartItem]
status: Status
total_amount: float
class Product(BaseModel):
category: str = Field(..., examples=['wrong'])
created_at: Optional[datetime] = None
description: Optional[str] = Field(
None,
examples=['Mr street sell would civil. People through shake southern force.'],
)
id: UUID = Field(..., examples=['eda5cbc1-a615-4da5-ae73-4a33a9acfb6a'])
image_url: Optional[AnyUrl] = Field(
None, examples=['https://dummyimage.com/766x809']
)
name: str = Field(..., examples=['Worry Management'])
price: float = Field(..., examples=[91.37])
stock: int = Field(..., examples=[94])
updated_at: Optional[datetime] = None
class AddressesGetResponse(RootModel[List[Address]]):
root: List[Address]
class AuthLoginPostRequest(BaseModel):
email: str
password: str
class AuthRegisterPostRequest(BaseModel):
email: EmailStr
name: Optional[str] = None
password: SecretStr
class CartGetResponse(RootModel[List[CartItem]]):
root: List[CartItem]
class CheckoutPostRequest(BaseModel):
address_id: str
payment_method_id: str
class OrdersGetResponse(RootModel[List[Order]]):
root: List[Order]
class ProductsGetResponse(RootModel[List[Product]]):
root: List[Product]