# Code generated by Lark OpenAPI. from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type from lark_oapi.core.construct import init from .cash import Cash from .cash import Cash class BonusAmount(object): _types = { "bonus_type": int, "point_bonus": int, "cash": Cash, "cash_bonus": List[Cash], } def __init__(self, d=None): self.bonus_type: Optional[int] = None self.point_bonus: Optional[int] = None self.cash: Optional[Cash] = None self.cash_bonus: Optional[List[Cash]] = None init(self, d, self._types) @staticmethod def builder() -> "BonusAmountBuilder": return BonusAmountBuilder() class BonusAmountBuilder(object): def __init__(self) -> None: self._bonus_amount = BonusAmount() def bonus_type(self, bonus_type: int) -> "BonusAmountBuilder": self._bonus_amount.bonus_type = bonus_type return self def point_bonus(self, point_bonus: int) -> "BonusAmountBuilder": self._bonus_amount.point_bonus = point_bonus return self def cash(self, cash: Cash) -> "BonusAmountBuilder": self._bonus_amount.cash = cash return self def cash_bonus(self, cash_bonus: List[Cash]) -> "BonusAmountBuilder": self._bonus_amount.cash_bonus = cash_bonus return self def build(self) -> "BonusAmount": return self._bonus_amount