from typing import List


class OrderDetail(object):

    def __init__(self, order_id=None, sale_type=None, state=None, total_amount=None, total_tender=None, due_amount=None,
                 created_at=None, state_history=None, tenders=None, additional_properties=None, items=None):
        # type: (int, str, str, float, float, float, str, List[StateHistory], List[Tender], List[AdditionalProperty], List[Item]) -> None

        self.order_id = order_id
        self.sale_type = sale_type
        self.state = state
        self.total_amount = total_amount
        self.total_tender = total_tender
        self.due_amount = due_amount
        self.created_at = created_at
        self.state_history = state_history
        self.tenders = tenders
        self.additional_properties = additional_properties
        self.items = items


class StateHistory(object):

    def __init__(self, state_name=None, timestamp=None):
        # type: (str, str) -> None

        self.state_name = state_name
        self.timestamp = timestamp


class Tender(object):

    def __init__(self, sequence_id=None, type_id=None, type_name=None, timestamp=None, amount=None):
        # type: (int, int, str, str, float) -> None

        self.sequence_id = sequence_id
        self.type_id = type_id
        self.type_name = type_name
        self.timestamp = timestamp
        self.amount = amount


class AdditionalProperty(object):

    def __init__(self, key=None, value=None):
        # type: (str, str) -> None

        self.key = key
        self.value = value


class Item(object):

    def __init__(self, context=None, level=None, line_number=None, part_code=None, product_name=None, item_type=None,
                 added_price=None, unit_price=None, quantity=None, default_quantity=None):
        # type: (str, int, int, int, str, str, float, float, int, int) -> None

        self.context = context
        self.level = level
        self.line_number = line_number
        self.part_code = part_code
        self.product_name = product_name
        self.item_type = item_type
        self.added_price = added_price
        self.unit_price = unit_price
        self.quantity = quantity
        self.default_quantity = default_quantity
