42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from typing import List, Dict, Optional
|
|
from datetime import datetime
|
|
from beanie import Document
|
|
from backend.infra.payment.constants import TransactionStatus
|
|
|
|
|
|
class StripeTransactionDoc(Document):
|
|
stripe_product_id: Optional[str] = None
|
|
stripe_price_id: Optional[str] = None
|
|
stripe_payment_link: Optional[str] = None
|
|
stripe_checkout_session_id: Optional[str] = None
|
|
stripe_checkout_session_url: Optional[str] = None
|
|
from_user: Optional[str]
|
|
to_user: Optional[str]
|
|
to_stripe_account_id: Optional[str]
|
|
project_id: Optional[str]
|
|
milestone_index: Optional[int]
|
|
currency: Optional[str]
|
|
unit_amount: Optional[int]
|
|
application_fee_amount: Optional[int] = 0
|
|
created_time: datetime
|
|
updated_time: datetime
|
|
status: Optional[TransactionStatus]
|
|
|
|
class Settings:
|
|
name = "stripe_transaction"
|
|
|
|
|
|
class StripePaymentMethodDoc(Document):
|
|
user_id: str
|
|
stripe_customer_id: str
|
|
stripe_payment_method_id: str
|
|
card_last4: Optional[str] = None
|
|
card_brand: Optional[str] = None
|
|
card_exp_month: Optional[int] = None
|
|
card_exp_year: Optional[int] = None
|
|
created_time: datetime
|
|
updated_time: datetime
|
|
|
|
class Settings:
|
|
name = "stripe_payment_method"
|