```
chore: remove obsolete payment architecture and integration test documentation - Remove AITBC_PAYMENT_ARCHITECTURE.md (dual-currency system documentation) - Remove IMPLEMENTATION_COMPLETE_SUMMARY.md (integration test completion summary) - Remove INTEGRATION_TEST_FIXES.md (test fixes documentation) - Remove INTEGRATION_TEST_UPDATES.md (real features implementation notes) - Remove PAYMENT_INTEGRATION_COMPLETE.md (wallet-coordinator integration docs) - Remove WALLET_COORDINATOR_INTEGRATION.md (payment
This commit is contained in:
@@ -3,12 +3,75 @@ from __future__ import annotations
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, Optional, List
|
||||
from base64 import b64encode, b64decode
|
||||
from enum import Enum
|
||||
|
||||
from pydantic import BaseModel, Field, ConfigDict
|
||||
|
||||
from .types import JobState, Constraints
|
||||
|
||||
|
||||
# Payment schemas
|
||||
class JobPaymentCreate(BaseModel):
|
||||
"""Request to create a payment for a job"""
|
||||
job_id: str
|
||||
amount: float
|
||||
currency: str = "AITBC" # Jobs paid with AITBC tokens
|
||||
payment_method: str = "aitbc_token" # Primary method for job payments
|
||||
escrow_timeout_seconds: int = 3600 # 1 hour default
|
||||
|
||||
|
||||
class JobPaymentView(BaseModel):
|
||||
"""Payment information for a job"""
|
||||
job_id: str
|
||||
payment_id: str
|
||||
amount: float
|
||||
currency: str
|
||||
status: str
|
||||
payment_method: str
|
||||
escrow_address: Optional[str] = None
|
||||
refund_address: Optional[str] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
released_at: Optional[datetime] = None
|
||||
refunded_at: Optional[datetime] = None
|
||||
transaction_hash: Optional[str] = None
|
||||
refund_transaction_hash: Optional[str] = None
|
||||
|
||||
|
||||
class PaymentRequest(BaseModel):
|
||||
"""Request to pay for a job"""
|
||||
job_id: str
|
||||
amount: float
|
||||
currency: str = "BTC"
|
||||
refund_address: Optional[str] = None
|
||||
|
||||
|
||||
class PaymentReceipt(BaseModel):
|
||||
"""Receipt for a payment"""
|
||||
payment_id: str
|
||||
job_id: str
|
||||
amount: float
|
||||
currency: str
|
||||
status: str
|
||||
transaction_hash: Optional[str] = None
|
||||
created_at: datetime
|
||||
verified_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class EscrowRelease(BaseModel):
|
||||
"""Request to release escrow payment"""
|
||||
job_id: str
|
||||
payment_id: str
|
||||
reason: Optional[str] = None
|
||||
|
||||
|
||||
class RefundRequest(BaseModel):
|
||||
"""Request to refund a payment"""
|
||||
job_id: str
|
||||
payment_id: str
|
||||
reason: str
|
||||
|
||||
|
||||
# User management schemas
|
||||
class UserCreate(BaseModel):
|
||||
email: str
|
||||
|
||||
Reference in New Issue
Block a user