Coverage for polar/payout/schemas.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 12:42 +0000

1from datetime import datetime 

2 

3from pydantic import UUID4, AliasPath, Field 

4 

5from polar.enums import AccountType 

6from polar.kit.schemas import IDSchema, Schema, TimestampedSchema 

7from polar.models.payout import PayoutStatus 

8from polar.transaction.schemas import TransactionEmbedded 

9 

10 

11class PayoutCreate(Schema): 

12 account_id: UUID4 

13 

14 

15class PayoutEstimate(Schema): 

16 account_id: UUID4 

17 gross_amount: int 

18 fees_amount: int 

19 net_amount: int 

20 

21 

22class Payout(IDSchema, TimestampedSchema): 

23 processor: AccountType 

24 status: PayoutStatus 

25 paid_at: datetime | None 

26 currency: str 

27 amount: int 

28 fees_amount: int 

29 gross_amount: int 

30 account_currency: str 

31 account_amount: int 

32 account_id: UUID4 

33 

34 invoice_number: str | None = None 

35 is_invoice_generated: bool 

36 

37 transaction_id: UUID4 = Field(validation_alias=AliasPath("transaction", "id")) 

38 fees_transactions: list[TransactionEmbedded] 

39 

40 

41class PayoutGenerateInvoice(Schema): 

42 invoice_number: str | None = None 

43 

44 

45class PayoutInvoice(Schema): 

46 url: str