from typing import (
    List,
    Optional,
    Dict,
)

from ._TableOrderSaleLine import TableOrderSaleLine  # noqa
from ._OrderStateEnum import OrderStateEnum  # noqa


class TableOrder(object):

    def __init__(
        self,
        order_id,                 # type: str
        order_state,              # type: OrderStateEnum
        total_amount,             # type: float
        total_after_discount,     # type: str
        total_tender,             # type: str
        discount_amount,          # type: str
        sales_line,               # type: List[TableOrderSaleLine]
        split_key,                # type: str
        tip,                      # type: float
        discount_groups=None,     # type: Optional[Dict]
    ):
        # type: (...) -> None

        self.order_id = order_id
        self.order_state = order_state
        self.total_amount = total_amount
        self.total_after_discount = total_after_discount
        self.total_tender = total_tender
        self.discount_amount = discount_amount
        self.sales_line = sales_line
        self.split_key = split_key
        self.tip = tip
        self.discount_groups = discount_groups
