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
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 12:42 +0000
1from datetime import datetime
3from pydantic import UUID4, AliasPath, Field
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
11class PayoutCreate(Schema):
12 account_id: UUID4
15class PayoutEstimate(Schema):
16 account_id: UUID4
17 gross_amount: int
18 fees_amount: int
19 net_amount: int
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
34 invoice_number: str | None = None
35 is_invoice_generated: bool
37 transaction_id: UUID4 = Field(validation_alias=AliasPath("transaction", "id"))
38 fees_transactions: list[TransactionEmbedded]
41class PayoutGenerateInvoice(Schema):
42 invoice_number: str | None = None
45class PayoutInvoice(Schema):
46 url: str