from typing import Optional


class TableOrderSaleLine(object):

    def __init__(
        self,
        product_name,                   # type: str
        price,                          # type: float
        qty,                            # type: float
        default_qty,                    # type: Optional[int]
        item_type,                      # type: str
        seat,                           # type: Optional[int]
        level,                          # type: int
        comment,                        # type: Optional[str]
        line_number,                    # type: int
        service_period,                 # type: Optional[str]
        order_id=None,                  # type: Optional[int]
        item_id=None,                   # type: Optional[str]
        part_code=None,                 # type: Optional[int]
        overwritten_unit_price=None,    # type: Optional[float]
        fraction_parent=None,           # type: Optional[int]
    ):
        # type: (...) -> None

        self.product_name = product_name
        self.price = price
        self.qty = qty
        self.default_qty = default_qty
        self.item_type = item_type
        self.seat = seat
        self.level = level
        self.comment = comment
        self.line_number = line_number
        self.service_period = service_period
        self.order_id = order_id
        self.item_id = item_id
        self.part_code = part_code
        self.overwritten_unit_price = overwritten_unit_price
        self.fraction_parent = fraction_parent
