byceps/services/shop/order/models/checkout.py
"""
byceps.services.shop.order.models.checkout
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Copyright: 2014-2024 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""
from dataclasses import dataclass
from datetime import datetime
from decimal import Decimal
from moneyed import Money
from byceps.services.shop.article.models import (
ArticleID,
ArticleNumber,
ArticleType,
)
from byceps.services.shop.shop.models import ShopID
from byceps.services.shop.storefront.models import StorefrontID
from .order import LineItemID, Orderer, OrderID
@dataclass(frozen=True)
class IncomingLineItem:
id: LineItemID
article_id: ArticleID
article_number: ArticleNumber
article_type: ArticleType
name: str
unit_price: Money
tax_rate: Decimal
quantity: int
line_amount: Money
processing_required: bool
@dataclass(frozen=True)
class IncomingOrder:
id: OrderID
created_at: datetime
shop_id: ShopID
storefront_id: StorefrontID
orderer: Orderer
line_items: list[IncomingLineItem]
total_amount: Money
processing_required: bool