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

32 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 15:52 +0000

1from datetime import datetime 1a

2 

3from pydantic import UUID4, AliasPath, Field 1a

4 

5from polar.enums import AccountType 1a

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

7from polar.models.payout import PayoutStatus 1a

8from polar.transaction.schemas import TransactionEmbedded 1a

9 

10 

11class PayoutCreate(Schema): 1a

12 account_id: UUID4 1a

13 

14 

15class PayoutEstimate(Schema): 1a

16 account_id: UUID4 1a

17 gross_amount: int 1a

18 fees_amount: int 1a

19 net_amount: int 1a

20 

21 

22class Payout(IDSchema, TimestampedSchema): 1a

23 processor: AccountType 1a

24 status: PayoutStatus 1a

25 paid_at: datetime | None 1a

26 currency: str 1a

27 amount: int 1a

28 fees_amount: int 1a

29 gross_amount: int 1a

30 account_currency: str 1a

31 account_amount: int 1a

32 account_id: UUID4 1a

33 

34 invoice_number: str | None = None 1a

35 is_invoice_generated: bool 1a

36 

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

38 fees_transactions: list[TransactionEmbedded] 1a

39 

40 

41class PayoutGenerateInvoice(Schema): 1a

42 invoice_number: str | None = None 1a

43 

44 

45class PayoutInvoice(Schema): 1a

46 url: str 1a