klasa PayoutService:
def __init__(self):
# ...
pass
def create_payout(self, idempotency_key: str, terminal_id: int, amount: float) -> dict:
"""
Powinien zwracać słownik w następującym formacie:
{"payout_id": <int>, "terminal_id": <int>, "amount": <float>, "status": "success"}
Gwarancje:
- przy pierwszym wywołaniu z nowym kluczem idempotencyjnym — tworzona jest nowa wypłata
- przy kolejnych wywołaniach z już użytym kluczem idempotencyjnym — zwracany jest
wynik pierwszego wywołania, NIE tworzona jest nowa wypłata
- kwota musi być > 0, w przeciwnym razie — podnieść ValueError
"""
raise NotImplementedError