from typing import (
    Dict,
    List,
    NewType,
    Optional,
    Union,
)

JSON = Union[Dict[str, "JSON"], List["JSON"], str, int, float, bool, None]  # type: NewType("JSON", JSON)


class Tender(object):

    def __init__(
        self,               # type: Tender
        tender_id=None,     # type: Optional[int]
        tender_type=None,   # type: Optional[int]
        amount=None,        # type: Optional[float]
        details=None,       # type: Optional[JSON]
    ):
        # type: (...) -> None

        self.tender_id = tender_id or -1
        self.tender_type = tender_type or -1
        self.amount = amount or 0.0
        self.details = details or {}
