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

57 statements  

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

1from pydantic import UUID4 1a

2 

3from polar.enums import SubscriptionRecurringInterval 1a

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

5from polar.models.pledge import PledgeState 1a

6from polar.models.transaction import PlatformFeeType, Processor, TransactionType 1a

7 

8 

9class TransactionUser(IDSchema, Schema): 1a

10 public_name: str 1a

11 avatar_url: str 1a

12 

13 

14class TransactionPledge(IDSchema, TimestampedSchema): 1a

15 state: PledgeState 1a

16 issue_reference: str 1a

17 

18 

19class TransactionOrganization(IDSchema, TimestampedSchema): 1a

20 name: str 1a

21 slug: str 1a

22 avatar_url: str | None 1a

23 

24 

25class TransactionIssueReward(IDSchema, TimestampedSchema): 1a

26 issue_reference: str 1a

27 share_thousands: int 1a

28 

29 

30class TransactionProduct(IDSchema, TimestampedSchema): 1a

31 name: str 1a

32 recurring_interval: SubscriptionRecurringInterval | None 1a

33 organization_id: UUID4 | None 1a

34 organization: TransactionOrganization | None 1a

35 

36 

37class TransactionOrder(IDSchema, TimestampedSchema): 1a

38 product: TransactionProduct | None 1a

39 subscription_id: UUID4 | None 1a

40 

41 

42class TransactionEmbedded(IDSchema, TimestampedSchema): 1a

43 type: TransactionType 1a

44 processor: Processor | None 1a

45 

46 currency: str 1a

47 amount: int 1a

48 account_currency: str 1a

49 account_amount: int 1a

50 

51 platform_fee_type: PlatformFeeType | None 1a

52 

53 pledge_id: UUID4 | None 1a

54 issue_reward_id: UUID4 | None 1a

55 order_id: UUID4 | None 1a

56 

57 payout_transaction_id: UUID4 | None 1a

58 incurred_by_transaction_id: UUID4 | None 1a

59 

60 

61class Transaction(TransactionEmbedded): 1a

62 pledge: TransactionPledge | None 1a

63 issue_reward: TransactionIssueReward | None 1a

64 order: TransactionOrder | None 1a

65 

66 account_incurred_transactions: list[TransactionEmbedded] 1a

67 

68 incurred_amount: int 1a

69 gross_amount: int 1a

70 net_amount: int 1a

71 

72 

73class TransactionDetails(Transaction): 1a

74 paid_transactions: list[Transaction] 1a

75 

76 

77class TransactionsBalance(Schema): 1a

78 currency: str 1a

79 amount: int 1a

80 account_currency: str 1a

81 account_amount: int 1a

82 

83 

84class TransactionsSummary(Schema): 1a

85 balance: TransactionsBalance 1a

86 payout: TransactionsBalance 1a