Replace datetime.utcnow() with datetime.now(datetime.UTC)

Fixed Python 3.12+ deprecation warning by replacing all 357 occurrences
of datetime.utcnow() with datetime.now(datetime.UTC) across 49 files.

This change ensures timezone-aware datetime objects and fixes the deprecation
warning introduced in Python 3.12 (target version is 3.13).
This commit is contained in:
aitbc
2026-04-30 10:31:29 +02:00
parent 2777fdb987
commit 59d7070ab9
55 changed files with 356 additions and 356 deletions

View File

@@ -42,7 +42,7 @@ class Job:
args: tuple = field(default_factory=tuple, compare=False)
kwargs: dict = field(default_factory=dict, compare=False)
status: JobStatus = field(default=JobStatus.PENDING, compare=False)
created_at: datetime = field(default_factory=datetime.utcnow, compare=False)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC), compare=False)
started_at: Optional[datetime] = field(default=None, compare=False)
completed_at: Optional[datetime] = field(default=None, compare=False)
result: Any = field(default=None, compare=False)

View File

@@ -31,7 +31,7 @@ class StateTransition:
"""Record of a state transition"""
from_state: str
to_state: str
timestamp: datetime = field(default_factory=datetime.utcnow)
timestamp: datetime = field(default_factory=datetime.now(datetime.UTC))
data: Dict[str, Any] = field(default_factory=dict)

View File

@@ -43,7 +43,7 @@ class AgentMessage:
receiver_id: Optional[str] = None
message_type: MessageType = MessageType.DIRECT
priority: Priority = Priority.NORMAL
timestamp: datetime = field(default_factory=datetime.utcnow)
timestamp: datetime = field(default_factory=datetime.now(datetime.UTC))
payload: Dict[str, Any] = field(default_factory=dict)
correlation_id: Optional[str] = None
reply_to: Optional[str] = None

View File

@@ -52,7 +52,7 @@ class RoutingRule:
target: Optional[str] = None
priority: int = 0
enabled: bool = True
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
def matches(self, message: AgentMessage) -> bool:
"""Check if message matches routing rule conditions"""
@@ -72,8 +72,8 @@ class TaskMessage(BaseModel):
priority: Priority = Field(Priority.NORMAL, description="Task priority")
assigned_agent: Optional[str] = Field(None, description="Assigned agent ID")
status: str = Field("pending", description="Task status")
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
@validator('deadline')
def validate_deadline(cls, v):
@@ -90,8 +90,8 @@ class CoordinationMessage(BaseModel):
decision_deadline: Optional[datetime] = Field(None, description="Decision deadline")
consensus_threshold: float = Field(0.5, description="Consensus threshold")
status: str = Field("pending", description="Coordination status")
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class StatusMessage(BaseModel):
"""Status update message structure"""
@@ -101,7 +101,7 @@ class StatusMessage(BaseModel):
health_score: float = Field(1.0, description="Agent health score")
load_metrics: Dict[str, float] = Field(default_factory=dict, description="Load metrics")
capabilities: List[str] = Field(default_factory=list, description="Agent capabilities")
timestamp: datetime = Field(default_factory=datetime.utcnow)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC))
class DiscoveryMessage(BaseModel):
"""Agent discovery message structure"""
@@ -111,7 +111,7 @@ class DiscoveryMessage(BaseModel):
services: List[str] = Field(default_factory=list, description="Available services")
endpoints: Dict[str, str] = Field(default_factory=dict, description="Service endpoints")
metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional metadata")
timestamp: datetime = Field(default_factory=datetime.utcnow)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC))
class ConsensusMessage(BaseModel):
"""Consensus message structure"""
@@ -122,8 +122,8 @@ class ConsensusMessage(BaseModel):
voting_deadline: datetime = Field(..., description="Voting deadline")
consensus_algorithm: str = Field("majority", description="Consensus algorithm")
status: str = Field("pending", description="Consensus status")
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class MessageRouter:
"""Advanced message routing system"""

View File

@@ -48,7 +48,7 @@ class LoadMetrics:
completed_tasks: int = 0
failed_tasks: int = 0
avg_response_time: float = 0.0
last_updated: datetime = field(default_factory=datetime.utcnow)
last_updated: datetime = field(default_factory=datetime.now(datetime.UTC))
def to_dict(self) -> Dict[str, Any]:
return {
@@ -94,7 +94,7 @@ class AgentWeight:
capacity: int = 100
performance_score: float = 1.0
reliability_score: float = 1.0
last_updated: datetime = field(default_factory=datetime.utcnow)
last_updated: datetime = field(default_factory=datetime.now(datetime.UTC))
class LoadBalancer:
"""Advanced load balancer for agent distribution"""

View File

@@ -25,7 +25,7 @@ class SpendingRecord(Base):
period_key = Column(String, index=True)
amount = Column(Float)
transaction_hash = Column(String)
timestamp = Column(DateTime, default=datetime.utcnow)
timestamp = Column(DateTime, default=datetime.now(datetime.UTC))
# Composite indexes for performance
__table_args__ = (
@@ -45,7 +45,7 @@ class SpendingLimit(Base):
per_week = Column(Float)
time_lock_threshold = Column(Float)
time_lock_delay_hours = Column(Integer)
updated_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.now(datetime.UTC))
updated_by = Column(String) # Guardian who updated
@@ -57,7 +57,7 @@ class GuardianAuthorization(Base):
agent_address = Column(String, index=True)
guardian_address = Column(String, index=True)
is_active = Column(Boolean, default=True)
added_at = Column(DateTime, default=datetime.utcnow)
added_at = Column(DateTime, default=datetime.now(datetime.UTC))
added_by = Column(String)

View File

@@ -33,7 +33,7 @@ class Block(SQLModel, table=True):
hash: str = Field(index=True, unique=True)
parent_hash: str
proposer: str
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
tx_count: int = 0
state_root: Optional[str] = None
block_metadata: Optional[str] = Field(default=None)
@@ -89,7 +89,7 @@ class Transaction(SQLModel, table=True):
default_factory=dict,
sa_column=Column(JSON, nullable=False),
)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
# New fields added to schema
nonce: int = Field(default=0)
@@ -140,7 +140,7 @@ class Receipt(SQLModel, table=True):
sa_column=Column(JSON, nullable=False),
)
minted_amount: Optional[int] = None
recorded_at: datetime = Field(default_factory=datetime.utcnow, index=True)
recorded_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
status: str = Field(default="pending", index=True) # pending, claimed, invalid
claimed_at: Optional[datetime] = None
claimed_by: Optional[str] = None
@@ -168,7 +168,7 @@ class Account(SQLModel, table=True):
address: str = Field(primary_key=True)
balance: int = 0
nonce: int = 0
updated_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class Escrow(SQLModel, table=True):
__tablename__ = "escrow"
@@ -177,5 +177,5 @@ class Escrow(SQLModel, table=True):
buyer: str = Field(foreign_key="account.address")
provider: str = Field(foreign_key="account.address")
amount: int
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
released_at: Optional[datetime] = None

View File

@@ -68,8 +68,8 @@ class AIAgentWorkflow(SQLModel, table=True):
is_public: bool = Field(default=False)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentStep(SQLModel, table=True):
@@ -102,8 +102,8 @@ class AgentStep(SQLModel, table=True):
depends_on: str = Field(default="") # JSON string of step IDs
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentExecution(SQLModel, table=True):
@@ -141,8 +141,8 @@ class AgentExecution(SQLModel, table=True):
completed_steps: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentStepExecution(SQLModel, table=True):
@@ -180,8 +180,8 @@ class AgentStepExecution(SQLModel, table=True):
completed_at: datetime | None = Field(default=None)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentMarketplace(SQLModel, table=True):
@@ -219,8 +219,8 @@ class AgentMarketplace(SQLModel, table=True):
last_execution_at: datetime | None = Field(default=None)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Request/Response Models for API

View File

@@ -80,8 +80,8 @@ class AgentIdentity(SQLModel, table=True):
tags: list[str] = Field(default_factory=list, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Indexes for performance
__table_args__ = {
@@ -122,8 +122,8 @@ class CrossChainMapping(SQLModel, table=True):
transaction_count: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Unique constraint
__table_args__ = {
@@ -162,8 +162,8 @@ class IdentityVerification(SQLModel, table=True):
verification_meta_data: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Indexes
__table_args__ = {
@@ -208,8 +208,8 @@ class AgentWallet(SQLModel, table=True):
transaction_count: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Indexes
__table_args__ = {

View File

@@ -102,8 +102,8 @@ class AgentPerformanceProfile(SQLModel, table=True):
percentile_rank: float | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_assessed: datetime | None = None
# Additional data
@@ -152,8 +152,8 @@ class MetaLearningModel(SQLModel, table=True):
success_rate: float = Field(default=0.0, ge=0, le=1.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
trained_at: datetime | None = None
deployed_at: datetime | None = None
@@ -205,7 +205,7 @@ class ResourceAllocation(SQLModel, table=True):
performance_improvement: float = Field(default=0.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional data
@@ -259,8 +259,8 @@ class PerformanceOptimization(SQLModel, table=True):
rollback_available: bool = Field(default=True)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
completed_at: datetime | None = None
# Additional data
@@ -304,7 +304,7 @@ class AgentCapability(SQLModel, table=True):
tool_proficiency: dict[str, float] = Field(default={}, sa_column=Column(JSON))
# Development history
acquired_at: datetime = Field(default_factory=datetime.utcnow)
acquired_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_improved: datetime | None = None
improvement_count: int = Field(default=0)
@@ -314,8 +314,8 @@ class AgentCapability(SQLModel, table=True):
last_validated: datetime | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional data
capability_profile_meta_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
@@ -365,8 +365,8 @@ class FusionModel(SQLModel, table=True):
performance_stability: float = Field(default=0.0, ge=0, le=1.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
trained_at: datetime | None = None
deployed_at: datetime | None = None
@@ -420,8 +420,8 @@ class ReinforcementLearningConfig(SQLModel, table=True):
deployment_performance: dict[str, float] = Field(default={}, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
trained_at: datetime | None = None
deployed_at: datetime | None = None
@@ -476,8 +476,8 @@ class CreativeCapability(SQLModel, table=True):
last_evaluation: datetime | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional data
creative_profile_meta_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))

View File

@@ -47,8 +47,8 @@ class PortfolioStrategy(SQLModel, table=True):
rebalance_frequency: int = Field(default=86400) # Rebalancing frequency in seconds
volatility_threshold: float = Field(default=15.0) # Volatility threshold for rebalancing
is_active: bool = Field(default=True, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: portfolios: List["AgentPortfolio"] = Relationship(back_populates="strategy")
@@ -68,9 +68,9 @@ class AgentPortfolio(SQLModel, table=True):
risk_score: float = Field(default=0.0) # Risk score (0-100)
risk_tolerance: float = Field(default=50.0) # Risk tolerance percentage
is_active: bool = Field(default=True, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
updated_at: datetime = Field(default_factory=datetime.utcnow)
last_rebalance: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_rebalance: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: strategy: PortfolioStrategy = Relationship(back_populates="portfolios")
@@ -93,8 +93,8 @@ class PortfolioAsset(SQLModel, table=True):
current_allocation: float = Field(default=0.0) # Current allocation percentage
average_cost: float = Field(default=0.0) # Average cost basis
unrealized_pnl: float = Field(default=0.0) # Unrealized profit/loss
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: portfolio: AgentPortfolio = Relationship(back_populates="assets")
@@ -116,7 +116,7 @@ class PortfolioTrade(SQLModel, table=True):
status: TradeStatus = Field(default=TradeStatus.PENDING, index=True)
transaction_hash: str | None = Field(default=None, index=True)
executed_at: datetime | None = Field(default=None, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
# Relationships
# DISABLED: portfolio: AgentPortfolio = Relationship(back_populates="trades")
@@ -140,7 +140,7 @@ class RiskMetrics(SQLModel, table=True):
risk_level: RiskLevel = Field(default=RiskLevel.LOW, index=True)
overall_risk_score: float = Field(default=0.0) # Overall risk score (0-100)
stress_test_results: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
updated_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: portfolio: AgentPortfolio = Relationship(back_populates="risk_metrics")
@@ -159,7 +159,7 @@ class RebalanceHistory(SQLModel, table=True):
trades_executed: int = Field(default=0)
rebalance_cost: float = Field(default=0.0) # Cost of rebalancing
execution_time_ms: int = Field(default=0) # Execution time in milliseconds
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
class PerformanceMetrics(SQLModel, table=True):
@@ -184,9 +184,9 @@ class PerformanceMetrics(SQLModel, table=True):
beta: float = Field(default=0.0) # Beta vs benchmark
tracking_error: float = Field(default=0.0) # Tracking error
information_ratio: float = Field(default=0.0) # Information ratio
updated_at: datetime = Field(default_factory=datetime.utcnow)
period_start: datetime = Field(default_factory=datetime.utcnow)
period_end: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
period_start: datetime = Field(default_factory=datetime.now(datetime.UTC))
period_end: datetime = Field(default_factory=datetime.now(datetime.UTC))
class PortfolioAlert(SQLModel, table=True):
@@ -202,7 +202,7 @@ class PortfolioAlert(SQLModel, table=True):
meta_data: dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
is_acknowledged: bool = Field(default=False, index=True)
acknowledged_at: datetime | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
resolved_at: datetime | None = Field(default=None)
@@ -224,7 +224,7 @@ class StrategySignal(SQLModel, table=True):
is_executed: bool = Field(default=False, index=True)
executed_at: datetime | None = Field(default=None)
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(hours=24))
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
class PortfolioSnapshot(SQLModel, table=True):
@@ -243,7 +243,7 @@ class PortfolioSnapshot(SQLModel, table=True):
geographic_allocation: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
risk_metrics: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
performance_metrics: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class TradingRule(SQLModel, table=True):
@@ -258,8 +258,8 @@ class TradingRule(SQLModel, table=True):
parameters: dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
is_active: bool = Field(default=True, index=True)
priority: int = Field(default=0) # Rule priority (higher = more important)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class MarketCondition(SQLModel, table=True):
@@ -277,5 +277,5 @@ class MarketCondition(SQLModel, table=True):
trend_strength: float = Field(default=0.0) # Trend strength
support_level: float = Field(default=0.0) # Support level
resistance_level: float = Field(default=0.0) # Resistance level
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(hours=24))

View File

@@ -59,8 +59,8 @@ class LiquidityPool(SQLModel, table=True):
is_active: bool = Field(default=True, index=True)
status: PoolStatus = Field(default=PoolStatus.ACTIVE, index=True)
created_by: str = Field(index=True) # Creator address
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_trade_time: datetime | None = Field(default=None)
# Relationships
@@ -88,8 +88,8 @@ class LiquidityPosition(SQLModel, table=True):
fees_earned: float = Field(default=0.0) # Fees earned
impermanent_loss: float = Field(default=0.0) # Impermanent loss
status: LiquidityPositionStatus = Field(default=LiquidityPositionStatus.ACTIVE, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_deposit: datetime | None = Field(default=None)
last_withdrawal: datetime | None = Field(default=None)
@@ -121,7 +121,7 @@ class SwapTransaction(SQLModel, table=True):
gas_used: int | None = Field(default=None)
gas_price: float | None = Field(default=None)
executed_at: datetime | None = Field(default=None, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
deadline: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(minutes=20))
# Relationships
@@ -149,7 +149,7 @@ class PoolMetrics(SQLModel, table=True):
impermanent_loss_24h: float = Field(default=0.0) # 24h impermanent loss
liquidity_provider_count: int = Field(default=0) # Number of liquidity providers
top_lps: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON)) # Top LPs by share
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: pool: LiquidityPool = Relationship(back_populates="metrics")
@@ -168,10 +168,10 @@ class FeeStructure(SQLModel, table=True):
volume_adjustment: float = Field(default=0.0) # Volume-based adjustment
liquidity_adjustment: float = Field(default=0.0) # Liquidity-based adjustment
time_adjustment: float = Field(default=0.0) # Time-based adjustment
adjusted_at: datetime = Field(default_factory=datetime.utcnow)
adjusted_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(hours=24))
adjustment_reason: str = Field(default="") # Reason for adjustment
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class IncentiveProgram(SQLModel, table=True):
@@ -192,10 +192,10 @@ class IncentiveProgram(SQLModel, table=True):
maximum_liquidity: float = Field(default=0.0) # Maximum liquidity cap (0 = no cap)
vesting_period_days: int = Field(default=0) # Vesting period (0 = no vesting)
is_active: bool = Field(default=True, index=True)
start_time: datetime = Field(default_factory=datetime.utcnow)
start_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
end_time: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(days=30))
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: pool: LiquidityPool = Relationship(back_populates="incentives")
@@ -220,7 +220,7 @@ class LiquidityReward(SQLModel, table=True):
claim_transaction_hash: str | None = Field(default=None)
vesting_start: datetime | None = Field(default=None)
vesting_end: datetime | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
# Relationships
# DISABLED: program: IncentiveProgram = Relationship(back_populates="rewards")
@@ -243,7 +243,7 @@ class FeeClaim(SQLModel, table=True):
is_claimed: bool = Field(default=False, index=True)
claimed_at: datetime | None = Field(default=None)
claim_transaction_hash: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
# Relationships
# DISABLED: position: LiquidityPosition = Relationship(back_populates="fee_claims")
@@ -260,8 +260,8 @@ class PoolConfiguration(SQLModel, table=True):
config_value: str = Field(default="")
config_type: str = Field(default="string") # string, number, boolean, json
is_active: bool = Field(default=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class PoolAlert(SQLModel, table=True):
@@ -283,7 +283,7 @@ class PoolAlert(SQLModel, table=True):
acknowledged_at: datetime | None = Field(default=None)
is_resolved: bool = Field(default=False, index=True)
resolved_at: datetime | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(hours=24))
@@ -310,7 +310,7 @@ class PoolSnapshot(SQLModel, table=True):
average_slippage: float = Field(default=0.0)
average_price_impact: float = Field(default=0.0)
impermanent_loss: float = Field(default=0.0)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class ArbitrageOpportunity(SQLModel, table=True):
@@ -335,5 +335,5 @@ class ArbitrageOpportunity(SQLModel, table=True):
executed_at: datetime | None = Field(default=None)
execution_tx_hash: str | None = Field(default=None)
actual_profit: float | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(minutes=5))

View File

@@ -87,7 +87,7 @@ class MarketMetric(SQLModel, table=True):
metric_meta_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
# Timestamps
recorded_at: datetime = Field(default_factory=datetime.utcnow)
recorded_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
period_start: datetime
period_end: datetime
@@ -134,8 +134,8 @@ class MarketInsight(SQLModel, table=True):
resolved_at: datetime | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
# Additional data
@@ -184,9 +184,9 @@ class AnalyticsReport(SQLModel, table=True):
recipients: list[str] = Field(default=[], sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
generated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
generated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
delivered_at: datetime | None = None
# Additional data
@@ -230,8 +230,8 @@ class DashboardConfig(SQLModel, table=True):
last_modified_by: str | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_viewed_at: datetime | None = None
# Additional data
@@ -281,8 +281,8 @@ class DataCollectionJob(SQLModel, table=True):
cpu_usage: float = Field(default=0.0) # percentage
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional data
job_metric_meta_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
@@ -331,8 +331,8 @@ class AlertRule(SQLModel, table=True):
trigger_count: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional data
rule_metric_meta_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
@@ -383,8 +383,8 @@ class AnalyticsAlert(SQLModel, table=True):
delivery_status: dict[str, str] = Field(default={}, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
# Additional data
@@ -434,8 +434,8 @@ class UserPreference(SQLModel, table=True):
anonymous_usage: bool = Field(default=False)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_login: datetime | None = None
# Additional preferences

View File

@@ -60,5 +60,5 @@ class AtomicSwapOrder(SQLModel, table=True):
status: SwapStatus = Field(default=SwapStatus.CREATED, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))

View File

@@ -70,7 +70,7 @@ class Bounty(SQLModel, table=True):
# Timing
deadline: datetime = Field(index=True)
creation_time: datetime = Field(default_factory=datetime.utcnow)
creation_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Limits
max_submissions: int = Field(default=100)
@@ -137,7 +137,7 @@ class BountySubmission(SQLModel, table=True):
dispute_resolved: bool = Field(default=False)
# Timing
submission_time: datetime = Field(default_factory=datetime.utcnow)
submission_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Metadata
submission_data: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
@@ -168,13 +168,13 @@ class AgentStake(SQLModel, table=True):
# Stake details
amount: float = Field(index=True)
lock_period: int = Field(default=30) # days
start_time: datetime = Field(default_factory=datetime.utcnow)
start_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
end_time: datetime
# Status and rewards
status: StakeStatus = Field(default=StakeStatus.ACTIVE)
accumulated_rewards: float = Field(default=0.0)
last_reward_time: datetime = Field(default_factory=datetime.utcnow)
last_reward_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
# APY and performance
current_apy: float = Field(default=5.0) # percentage
@@ -226,7 +226,7 @@ class AgentMetrics(SQLModel, table=True):
reputation_score: float = Field(default=0.0)
# Timing
last_update_time: datetime = Field(default_factory=datetime.utcnow)
last_update_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
first_submission_time: datetime | None = Field(default=None)
# Additional metrics
@@ -271,7 +271,7 @@ class StakingPool(SQLModel, table=True):
active_stakers: list[str] = Field(default_factory=list, sa_column=Column(JSON))
# Distribution
last_distribution_time: datetime = Field(default_factory=datetime.utcnow)
last_distribution_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
distribution_frequency: int = Field(default=1) # days
# Pool configuration
@@ -309,7 +309,7 @@ class BountyIntegration(SQLModel, table=True):
# Status and timing
status: BountyStatus = Field(default=BountyStatus.CREATED)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
processed_at: datetime | None = Field(default=None)
# Processing information
@@ -393,7 +393,7 @@ class EcosystemMetrics(SQLModel, table=True):
metrics_id: str = Field(primary_key=True, default_factory=lambda: f"eco_{uuid.uuid4().hex[:8]}")
# Time period
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
period_type: str = Field(default="hourly") # hourly, daily, weekly
# Developer metrics

View File

@@ -80,7 +80,7 @@ class AgentCertification(SQLModel, table=True):
# Issuance information
issued_by: str = Field(index=True) # Who issued the certification
issued_at: datetime = Field(default_factory=datetime.utcnow)
issued_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
verification_hash: str = Field(max_length=64) # Blockchain verification hash
@@ -142,9 +142,9 @@ class CertificationRequirement(SQLModel, table=True):
weight: float = Field(default=1.0) # Importance weight
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
effective_date: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
effective_date: datetime = Field(default_factory=datetime.now(datetime.UTC))
expiry_date: datetime | None = None
# Additional data
@@ -167,7 +167,7 @@ class VerificationRecord(SQLModel, table=True):
# Request information
requested_by: str = Field(index=True)
requested_at: datetime = Field(default_factory=datetime.utcnow)
requested_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
priority: str = Field(default="normal") # low, normal, high, urgent
# Verification process
@@ -242,8 +242,8 @@ class PartnershipProgram(SQLModel, table=True):
current_participants: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
launched_at: datetime | None = None
expires_at: datetime | None = None
@@ -268,7 +268,7 @@ class AgentPartnership(SQLModel, table=True):
current_tier: str = Field(default="basic")
# Application and approval
applied_at: datetime = Field(default_factory=datetime.utcnow)
applied_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
approved_by: str | None = None
approved_at: datetime | None = None
rejection_reasons: list[str] = Field(default=[], sa_column=Column(JSON))
@@ -294,8 +294,8 @@ class AgentPartnership(SQLModel, table=True):
agreement_expires_at: datetime | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_activity: datetime | None = None
# Additional data
@@ -339,9 +339,9 @@ class AchievementBadge(SQLModel, table=True):
current_awards: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
available_from: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
available_from: datetime = Field(default_factory=datetime.now(datetime.UTC))
available_until: datetime | None = None
# Additional data
@@ -363,7 +363,7 @@ class AgentBadge(SQLModel, table=True):
# Award details
awarded_by: str = Field(index=True) # System or user who awarded the badge
awarded_at: datetime = Field(default_factory=datetime.utcnow)
awarded_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
award_reason: str = Field(default="", max_length=500)
# Achievement context
@@ -391,8 +391,8 @@ class AgentBadge(SQLModel, table=True):
congratulation_count: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_viewed_at: datetime | None = None
# Additional data
@@ -416,7 +416,7 @@ class CertificationAudit(SQLModel, table=True):
# Audit scheduling
scheduled_by: str = Field(index=True)
scheduled_at: datetime = Field(default_factory=datetime.utcnow)
scheduled_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
started_at: datetime | None = None
completed_at: datetime | None = None
@@ -449,8 +449,8 @@ class CertificationAudit(SQLModel, table=True):
evidence_documents: list[str] = Field(default=[], sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional data
audit_cert_meta_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))

View File

@@ -61,8 +61,8 @@ class DeveloperProfile(SQLModel, table=True):
github_handle: str | None = None
website: str | None = None
joined_at: datetime = Field(default_factory=datetime.utcnow)
last_active: datetime = Field(default_factory=datetime.utcnow)
joined_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_active: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentSolution(SQLModel, table=True):
@@ -91,8 +91,8 @@ class AgentSolution(SQLModel, table=True):
solution_meta_data: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
published_at: datetime | None = None
@@ -116,7 +116,7 @@ class InnovationLab(SQLModel, table=True):
milestones: list[dict[str, Any]] = Field(default_factory=list, sa_column=Column(JSON))
publications: list[dict[str, Any]] = Field(default_factory=list, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
target_completion: datetime | None = None
@@ -139,8 +139,8 @@ class CommunityPost(SQLModel, table=True):
parent_post_id: str | None = Field(default=None, foreign_key="community_posts.post_id")
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class Hackathon(SQLModel, table=True):
@@ -165,4 +165,4 @@ class Hackathon(SQLModel, table=True):
registration_end: datetime
event_start: datetime
event_end: datetime
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))

View File

@@ -75,8 +75,8 @@ class BridgeRequest(SQLModel, table=True):
required_confirmations: int = Field(default=3) # Required confirmations
dispute_reason: str | None = Field(default=None)
resolution_action: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
confirmed_at: datetime | None = Field(default=None)
completed_at: datetime | None = Field(default=None)
resolved_at: datetime | None = Field(default=None)
@@ -107,8 +107,8 @@ class SupportedToken(SQLModel, table=True):
original_token: str | None = Field(default=None) # Original token address for wrapped tokens
supported_chains: list[int] = Field(default_factory=list, sa_column=Column(JSON))
bridge_contracts: dict[int, str] = Field(default_factory=dict, sa_column=Column(JSON)) # Chain ID -> Contract address
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class ChainConfig(SQLModel, table=True):
@@ -135,8 +135,8 @@ class ChainConfig(SQLModel, table=True):
is_testnet: bool = Field(default=False)
requires_validator: bool = Field(default=True) # Whether validator confirmation is required
validator_threshold: float = Field(default=0.67) # Validator threshold percentage
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class Validator(SQLModel, table=True):
@@ -162,8 +162,8 @@ class Validator(SQLModel, table=True):
is_active: bool = Field(default=True, index=True)
supported_chains: list[int] = Field(default_factory=list, sa_column=Column(JSON))
val_meta_data: dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# transactions: List["BridgeTransaction"] = Relationship(back_populates="validator")
@@ -190,7 +190,7 @@ class BridgeTransaction(SQLModel, table=True):
is_successful: bool = Field(default=False)
error_message: str | None = Field(default=None)
retry_count: int = Field(default=0)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
confirmed_at: datetime | None = Field(default=None)
completed_at: datetime | None = Field(default=None)
@@ -219,8 +219,8 @@ class BridgeDispute(SQLModel, table=True):
investigator_address: str | None = Field(default=None)
investigation_notes: str | None = Field(default=None)
is_resolved: bool = Field(default=False, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
resolved_at: datetime | None = Field(default=None)
# Relationships
@@ -242,7 +242,7 @@ class MerkleProof(SQLModel, table=True):
is_valid: bool = Field(default=False)
verified_at: datetime | None = Field(default=None)
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(hours=24))
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class BridgeStatistics(SQLModel, table=True):
@@ -264,7 +264,7 @@ class BridgeStatistics(SQLModel, table=True):
unique_users: int = Field(default=0) # Unique users for the day
peak_hour_volume: float = Field(default=0.0) # Peak hour volume
peak_hour_transactions: int = Field(default=0) # Peak hour transactions
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class BridgeAlert(SQLModel, table=True):
@@ -290,7 +290,7 @@ class BridgeAlert(SQLModel, table=True):
is_resolved: bool = Field(default=False, index=True)
resolved_at: datetime | None = Field(default=None)
resolution_notes: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
expires_at: datetime = Field(default_factory=lambda: datetime.now(datetime.UTC) + timedelta(hours=24))
@@ -305,8 +305,8 @@ class BridgeConfiguration(SQLModel, table=True):
config_type: str = Field(default="string") # string, number, boolean, json
description: str = Field(default="")
is_active: bool = Field(default=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class LiquidityPool(SQLModel, table=True):
@@ -323,9 +323,9 @@ class LiquidityPool(SQLModel, table=True):
utilized_liquidity: float = Field(default=0.0) # Utilized liquidity
utilization_rate: float = Field(default=0.0) # Utilization rate
interest_rate: float = Field(default=0.0) # Interest rate
last_updated: datetime = Field(default_factory=datetime.utcnow)
last_updated: datetime = Field(default_factory=datetime.now(datetime.UTC))
is_active: bool = Field(default=True, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class BridgeSnapshot(SQLModel, table=True):
@@ -347,7 +347,7 @@ class BridgeSnapshot(SQLModel, table=True):
bridge_utilization: float = Field(default=0.0)
top_tokens: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
top_chains: dict[str, int] = Field(default_factory=dict, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class ValidatorReward(SQLModel, table=True):
@@ -365,4 +365,4 @@ class ValidatorReward(SQLModel, table=True):
is_claimed: bool = Field(default=False, index=True)
claimed_at: datetime | None = Field(default=None)
claim_transaction_hash: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)

View File

@@ -38,8 +38,8 @@ class CrossChainReputationConfig(SQLModel, table=True):
configuration_data: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class CrossChainReputationAggregation(SQLModel, table=True):
@@ -72,8 +72,8 @@ class CrossChainReputationAggregation(SQLModel, table=True):
verification_details: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
# Timestamps
last_updated: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.utcnow)
last_updated: datetime = Field(default_factory=datetime.now(datetime.UTC))
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Indexes
__table_args__ = {
@@ -111,7 +111,7 @@ class CrossChainReputationEvent(SQLModel, table=True):
verified: bool = Field(default=False)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
processed_at: datetime | None = None
# Indexes
@@ -153,8 +153,8 @@ class ReputationMetrics(SQLModel, table=True):
chain_diversity_score: float = Field(default=0.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Request/Response Models for Cross-Chain API

View File

@@ -46,8 +46,8 @@ class DAOMember(SQLModel, table=True):
is_council_member: bool = Field(default=False)
council_region: str | None = Field(default=None, index=True)
joined_at: datetime = Field(default_factory=datetime.utcnow)
last_active: datetime = Field(default_factory=datetime.utcnow)
joined_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_active: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: votes: List["Vote"] = Relationship(back_populates="member")
@@ -76,10 +76,10 @@ class DAOProposal(SQLModel, table=True):
execution_payload: dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
start_time: datetime = Field(default_factory=datetime.utcnow)
end_time: datetime = Field(default_factory=datetime.utcnow)
start_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
end_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: votes: List["Vote"] = Relationship(back_populates="proposal")
@@ -98,7 +98,7 @@ class Vote(SQLModel, table=True):
weight: float = Field()
tx_hash: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: proposal: DAOProposal = Relationship(back_populates="votes")
@@ -120,4 +120,4 @@ class TreasuryAllocation(SQLModel, table=True):
purpose: str = Field()
tx_hash: str | None = Field(default=None)
executed_at: datetime = Field(default_factory=datetime.utcnow)
executed_at: datetime = Field(default_factory=datetime.now(datetime.UTC))

View File

@@ -55,5 +55,5 @@ class AgentMemoryNode(SQLModel, table=True):
# Blockchain Anchoring
anchor_tx_hash: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))

View File

@@ -45,8 +45,8 @@ class DeveloperProfile(SQLModel, table=True):
skills: list[str] = Field(default_factory=list, sa_column=Column(JSON))
is_active: bool = Field(default=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: certifications: List["DeveloperCertification"] = Relationship(back_populates="developer")
@@ -65,7 +65,7 @@ class DeveloperCertification(SQLModel, table=True):
level: CertificationLevel = Field(default=CertificationLevel.BEGINNER)
issued_by: str = Field() # Could be an agent or a DAO entity
issued_at: datetime = Field(default_factory=datetime.utcnow)
issued_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = Field(default=None)
ipfs_credential_cid: str | None = Field(default=None) # Proof of certification
@@ -90,7 +90,7 @@ class RegionalHub(SQLModel, table=True):
budget_allocation: float = Field(default=0.0)
spent_budget: float = Field(default=0.0)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class BountyTask(SQLModel, table=True):
@@ -114,8 +114,8 @@ class BountyTask(SQLModel, table=True):
assigned_developer_id: str | None = Field(foreign_key="developer_profile.id", default=None)
deadline: datetime | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: submissions: List["BountySubmission"] = Relationship(back_populates="bounty")
@@ -139,7 +139,7 @@ class BountySubmission(SQLModel, table=True):
tx_hash_reward: str | None = Field(default=None) # Hash of the reward payout transaction
submitted_at: datetime = Field(default_factory=datetime.utcnow)
submitted_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
reviewed_at: datetime | None = Field(default=None)
# Relationships

View File

@@ -55,8 +55,8 @@ class FederatedLearningSession(SQLModel, table=True):
global_model_cid: str | None = Field(default=None) # Final aggregated model
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: participants: List["TrainingParticipant"] = Relationship(back_populates="session")
@@ -79,8 +79,8 @@ class TrainingParticipant(SQLModel, table=True):
reputation_score_at_join: float = Field(default=0.0)
earned_reward: float = Field(default=0.0)
joined_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
joined_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: session: FederatedLearningSession = Relationship(back_populates="participants")
@@ -102,7 +102,7 @@ class TrainingRound(SQLModel, table=True):
metrics: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON)) # e.g. loss, accuracy
started_at: datetime = Field(default_factory=datetime.utcnow)
started_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
completed_at: datetime | None = Field(default=None)
# Relationships
@@ -125,7 +125,7 @@ class LocalModelUpdate(SQLModel, table=True):
is_aggregated: bool = Field(default=False)
rejected_reason: str | None = Field(default=None) # e.g. "outlier", "failed zk verification"
submitted_at: datetime = Field(default_factory=datetime.utcnow)
submitted_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: round: TrainingRound = Relationship(back_populates="updates")

View File

@@ -71,8 +71,8 @@ class MarketplaceRegion(SQLModel, table=True):
error_rate: float = Field(default=0.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Indexes
__table_args__ = {
@@ -104,8 +104,8 @@ class GlobalMarketplaceConfig(SQLModel, table=True):
allowed_values: list[str] = Field(default_factory=list, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_modified_by: str | None = Field(default=None)
# Indexes
@@ -153,8 +153,8 @@ class GlobalMarketplaceOffer(SQLModel, table=True):
cross_chain_pricing: dict[int, float] = Field(default_factory=dict, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = Field(default=None)
# Indexes
@@ -201,8 +201,8 @@ class GlobalMarketplaceTransaction(SQLModel, table=True):
delivery_status: str = Field(default="pending") # pending, delivered, failed
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
confirmed_at: datetime | None = Field(default=None)
completed_at: datetime | None = Field(default=None)
@@ -266,8 +266,8 @@ class GlobalMarketplaceAnalytics(SQLModel, table=True):
analytics_data: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Indexes
__table_args__ = {
@@ -313,9 +313,9 @@ class GlobalMarketplaceGovernance(SQLModel, table=True):
version: int = Field(default=1)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
effective_from: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
effective_from: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = Field(default=None)
# Indexes

View File

@@ -51,7 +51,7 @@ class GovernanceProfile(SQLModel, table=True):
delegate_to: str | None = Field(default=None) # Profile ID they delegate their vote to
joined_at: datetime = Field(default_factory=datetime.utcnow)
joined_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_voted_at: datetime | None = None
@@ -81,7 +81,7 @@ class Proposal(SQLModel, table=True):
snapshot_block: int | None = Field(default=None)
snapshot_timestamp: datetime | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
voting_starts: datetime
voting_ends: datetime
executed_at: datetime | None = None
@@ -102,7 +102,7 @@ class Vote(SQLModel, table=True):
power_at_snapshot: float = Field(default=0.0)
delegated_power_at_snapshot: float = Field(default=0.0)
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class DaoTreasury(SQLModel, table=True):
@@ -117,7 +117,7 @@ class DaoTreasury(SQLModel, table=True):
asset_breakdown: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
last_updated: datetime = Field(default_factory=datetime.utcnow)
last_updated: datetime = Field(default_factory=datetime.now(datetime.UTC))
class TransparencyReport(SQLModel, table=True):
@@ -138,4 +138,4 @@ class TransparencyReport(SQLModel, table=True):
metrics: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))
generated_at: datetime = Field(default_factory=datetime.utcnow)
generated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))

View File

@@ -36,7 +36,7 @@ class GPURegistry(SQLModel, table=True):
capabilities: list = Field(default_factory=list, sa_column=Column(JSON, nullable=False))
average_rating: float = Field(default=0.0)
total_reviews: int = Field(default=0)
created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), nullable=False, index=True)
class ConsumerGPUProfile(SQLModel, table=True):
@@ -84,8 +84,8 @@ class ConsumerGPUProfile(SQLModel, table=True):
edge_premium_multiplier: float = Field(default=1.0)
availability_score: float = Field(default=1.0)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class EdgeGPUMetrics(SQLModel, table=True):
@@ -119,7 +119,7 @@ class EdgeGPUMetrics(SQLModel, table=True):
isp: str | None = Field(default=None)
connection_type: str | None = Field(default=None)
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
class GPUBooking(SQLModel, table=True):
@@ -135,9 +135,9 @@ class GPUBooking(SQLModel, table=True):
duration_hours: float = Field(default=0.0)
total_cost: float = Field(default=0.0)
status: str = Field(default="active", index=True) # active, completed, cancelled
start_time: datetime = Field(default_factory=datetime.utcnow)
start_time: datetime = Field(default_factory=datetime.now(datetime.UTC))
end_time: datetime | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), nullable=False)
class GPUReview(SQLModel, table=True):
@@ -151,4 +151,4 @@ class GPUReview(SQLModel, table=True):
user_id: str = Field(default="")
rating: int = Field(ge=1, le=5)
comment: str = Field(default="")
created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), nullable=False, index=True)

View File

@@ -20,8 +20,8 @@ class Job(SQLModel, table=True):
constraints: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
ttl_seconds: int = Field(default=900)
requested_at: datetime = Field(default_factory=datetime.utcnow)
expires_at: datetime = Field(default_factory=datetime.utcnow)
requested_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
assigned_miner_id: str | None = Field(default=None, index=True)

View File

@@ -15,4 +15,4 @@ class JobReceipt(SQLModel, table=True):
job_id: str = Field(index=True, foreign_key="job.id")
receipt_id: str = Field(index=True)
payload: dict = Field(sa_column=Column(JSON, nullable=False))
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)

View File

@@ -17,7 +17,7 @@ class MarketplaceOffer(SQLModel, table=True):
price: float = Field(default=0.0, nullable=False)
sla: str = Field(default="")
status: str = Field(default="open", max_length=20)
created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), nullable=False, index=True)
attributes: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
# GPU-specific fields
gpu_model: str | None = Field(default=None, index=True)
@@ -38,4 +38,4 @@ class MarketplaceBid(SQLModel, table=True):
price: float = Field(default=0.0, nullable=False)
notes: str | None = Field(default=None)
status: str = Field(default="pending", nullable=False)
submitted_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)
submitted_at: datetime = Field(default_factory=datetime.now(datetime.UTC), nullable=False, index=True)

View File

@@ -18,7 +18,7 @@ class Miner(SQLModel, table=True):
status: str = Field(default="ONLINE", index=True)
inflight: int = Field(default=0)
extra_metadata: Dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
last_heartbeat: datetime = Field(default_factory=datetime.utcnow, index=True)
last_heartbeat: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
session_token: str | None = None
last_job_at: datetime | None = Field(default=None, index=True)
jobs_completed: int = Field(default=0)

View File

@@ -33,8 +33,8 @@ class JobPayment(SQLModel, table=True):
refund_transaction_hash: str | None = Field(default=None, max_length=100)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
escrowed_at: datetime | None = None
released_at: datetime | None = None
refunded_at: datetime | None = None
@@ -67,7 +67,7 @@ class PaymentEscrow(SQLModel, table=True):
is_refunded: bool = Field(default=False)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
released_at: datetime | None = None
refunded_at: datetime | None = None
expires_at: datetime | None = None

View File

@@ -92,8 +92,8 @@ class PricingHistory(SQLModel, table=True):
recommendation_followed: bool | None = None
# Metadata
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional context
competitor_prices: list[float] = Field(default_factory=list, sa_column=Column(JSON))
@@ -157,8 +157,8 @@ class ProviderPricingStrategy(SQLModel, table=True):
strategy_effectiveness_score: float = Field(default=0.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_applied: datetime | None = None
expires_at: datetime | None = None
@@ -225,8 +225,8 @@ class MarketMetrics(SQLModel, table=True):
completeness_score: float
# Timestamps
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional metrics
custom_metrics: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
@@ -278,7 +278,7 @@ class PriceForecast(SQLModel, table=True):
market_conditions_at_forecast: dict[str, float] = Field(default_factory=dict, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
target_timestamp: datetime = Field(index=True) # When forecast is for
evaluated_at: datetime | None = None # When forecast was evaluated
@@ -344,8 +344,8 @@ class PricingOptimization(SQLModel, table=True):
recommendations: list[str] = Field(default_factory=list, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
completed_at: datetime | None = None
# Audit trail
@@ -406,9 +406,9 @@ class PricingAlert(SQLModel, table=True):
customer_impact_estimate: str | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow, index=True)
first_seen: datetime = Field(default_factory=datetime.utcnow)
last_seen: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
first_seen: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_seen: datetime = Field(default_factory=datetime.now(datetime.UTC))
acknowledged_at: datetime | None = None
resolved_at: datetime | None = None
@@ -470,8 +470,8 @@ class PricingRule(SQLModel, table=True):
business_impact: float | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
# Audit trail
@@ -534,8 +534,8 @@ class PricingAuditLog(SQLModel, table=True):
ip_address: str | None = None
# Timestamps
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional metadata
meta_data: dict[str, Any] = Field(default_factory=dict, sa_column=Column(JSON))

View File

@@ -92,7 +92,7 @@ class StrategyRule:
action: str # Action to take when condition is met
priority: StrategyPriority
enabled: bool = True
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
# Rule execution tracking
execution_count: int = 0
@@ -124,8 +124,8 @@ class PricingStrategyConfig:
regions: list[str] = field(default_factory=list)
# Performance tracking
created_at: datetime = field(default_factory=datetime.utcnow)
updated_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = field(default_factory=datetime.now(datetime.UTC))
last_applied: datetime | None = None
# Strategy effectiveness metrics

View File

@@ -66,9 +66,9 @@ class AgentReputation(SQLModel, table=True):
specialization_tags: list[str] = Field(default=[], sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
last_activity: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_activity: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional metadata
reputation_history: list[dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
@@ -103,7 +103,7 @@ class TrustScoreCalculation(SQLModel, table=True):
confidence_level: float = Field(default=0.8, ge=0, le=1.0)
# Timestamps
calculated_at: datetime = Field(default_factory=datetime.utcnow)
calculated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
effective_period: int = Field(default=86400) # seconds
# Additional data
@@ -140,7 +140,7 @@ class ReputationEvent(SQLModel, table=True):
verification_status: str = Field(default="pending") # pending, verified, rejected
# Timestamps
occurred_at: datetime = Field(default_factory=datetime.utcnow)
occurred_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
processed_at: datetime | None = None
expires_at: datetime | None = None
@@ -176,8 +176,8 @@ class AgentEconomicProfile(SQLModel, table=True):
liquidity_score: float = Field(default=0.0, ge=0, le=100.0)
# Timestamps
profile_date: datetime = Field(default_factory=datetime.utcnow)
last_updated: datetime = Field(default_factory=datetime.utcnow)
profile_date: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_updated: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Historical data
earnings_history: list[dict[str, Any]] = Field(default=[], sa_column=Column(JSON))
@@ -217,8 +217,8 @@ class CommunityFeedback(SQLModel, table=True):
moderator_notes: str = Field(default="", max_length=500)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
helpful_votes: int = Field(default=0)
# Additional metadata
@@ -247,8 +247,8 @@ class ReputationLevelThreshold(SQLModel, table=True):
fee_discount: float = Field(default=0.0, ge=0, le=100.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
is_active: bool = Field(default=True)
# Additional configuration

View File

@@ -71,8 +71,8 @@ class RewardTierConfig(SQLModel, table=True):
support_level: str = Field(default="basic")
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
is_active: bool = Field(default=True)
# Additional configuration
@@ -112,9 +112,9 @@ class AgentRewardProfile(SQLModel, table=True):
longest_streak: int = Field(default=0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
last_activity: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_activity: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional metadata
reward_preferences: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
@@ -148,12 +148,12 @@ class RewardCalculation(SQLModel, table=True):
# Calculation metadata
calculation_period: str = Field(default="daily") # daily, weekly, monthly
reference_date: datetime = Field(default_factory=datetime.utcnow)
reference_date: datetime = Field(default_factory=datetime.now(datetime.UTC))
trust_score_at_calculation: float = Field(ge=0, le=1000)
performance_metrics: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
# Timestamps
calculated_at: datetime = Field(default_factory=datetime.utcnow)
calculated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
# Additional data
@@ -192,8 +192,8 @@ class RewardDistribution(SQLModel, table=True):
error_message: str | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
scheduled_at: datetime | None = None
# Additional data
@@ -228,7 +228,7 @@ class RewardEvent(SQLModel, table=True):
verification_status: str = Field(default="pending") # pending, verified, rejected
# Timestamps
occurred_at: datetime = Field(default_factory=datetime.utcnow)
occurred_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
processed_at: datetime | None = None
expires_at: datetime | None = None
@@ -266,8 +266,8 @@ class RewardMilestone(SQLModel, table=True):
claimed_at: datetime | None = None
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
# Additional data
@@ -314,8 +314,8 @@ class RewardAnalytics(SQLModel, table=True):
average_processing_time: float = Field(default=0.0) # milliseconds
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional analytics data
analytics_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))

View File

@@ -101,10 +101,10 @@ class TradeRequest(SQLModel, table=True):
best_match_score: float = Field(default=0.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
last_activity: datetime = Field(default_factory=datetime.utcnow)
last_activity: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional metadata
tags: list[str] = Field(default=[], sa_column=Column(JSON))
@@ -151,8 +151,8 @@ class TradeMatch(SQLModel, table=True):
initial_terms: dict[str, Any] = Field(default={}, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
expires_at: datetime | None = None
last_interaction: datetime | None = None
@@ -202,8 +202,8 @@ class TradeNegotiation(SQLModel, table=True):
auto_accept_threshold: float = Field(default=85.0, ge=0, le=100)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
started_at: datetime | None = None
completed_at: datetime | None = None
expires_at: datetime | None = None
@@ -260,9 +260,9 @@ class TradeAgreement(SQLModel, table=True):
completion_percentage: float = Field(default=0.0, ge=0, le=100)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
signed_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
signed_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
starts_at: datetime | None = None
ends_at: datetime | None = None
completed_at: datetime | None = None
@@ -314,7 +314,7 @@ class TradeSettlement(SQLModel, table=True):
# Status and timestamps
status: TradeStatus = Field(default=TradeStatus.SETTLING)
initiated_at: datetime = Field(default_factory=datetime.utcnow)
initiated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
processed_at: datetime | None = None
completed_at: datetime | None = None
refunded_at: datetime | None = None
@@ -365,8 +365,8 @@ class TradeFeedback(SQLModel, table=True):
moderator_notes: str = Field(default="", max_length=500)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
trade_completed_at: datetime
# Additional data
@@ -421,8 +421,8 @@ class TradingAnalytics(SQLModel, table=True):
repeat_trade_rate: float = Field(default=0.0, ge=0, le=100.0)
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Additional analytics data
analytics_data: dict[str, Any] = Field(default={}, sa_column=Column(JSON))

View File

@@ -18,8 +18,8 @@ class User(SQLModel, table=True):
email: str = Field(unique=True, index=True)
username: str = Field(unique=True, index=True)
status: str = Field(default="active", max_length=20)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_login: datetime | None = None
# Relationships
@@ -37,8 +37,8 @@ class Wallet(SQLModel, table=True):
user_id: str = Field(foreign_key="users.id")
address: str = Field(unique=True, index=True)
balance: float = Field(default=0.0)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: user: User = Relationship(back_populates="wallets")
@@ -60,7 +60,7 @@ class Transaction(SQLModel, table=True):
fee: float = Field(default=0.0)
description: str | None = None
tx_metadata: str | None = Field(default=None, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
confirmed_at: datetime | None = None
# Relationships
@@ -78,5 +78,5 @@ class UserSession(SQLModel, table=True):
user_id: str = Field(foreign_key="users.id")
token: str = Field(unique=True, index=True)
expires_at: datetime
created_at: datetime = Field(default_factory=datetime.utcnow)
last_used: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
last_used: datetime = Field(default_factory=datetime.now(datetime.UTC))

View File

@@ -41,8 +41,8 @@ class AgentWallet(SQLModel, table=True):
encrypted_private_key: str | None = Field(default=None) # Only if managed internally
kms_key_id: str | None = Field(default=None) # Reference to external KMS
meta_data: dict[str, str] = Field(default_factory=dict, sa_column=Column(JSON))
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: balances: List["TokenBalance"] = Relationship(back_populates="wallet")
@@ -78,7 +78,7 @@ class TokenBalance(SQLModel, table=True):
token_address: str = Field(index=True) # "native" for native currency
token_symbol: str = Field()
balance: float = Field(default=0.0)
last_updated: datetime = Field(default_factory=datetime.utcnow)
last_updated: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: wallet: AgentWallet = Relationship(back_populates="balances")
@@ -109,8 +109,8 @@ class WalletTransaction(SQLModel, table=True):
nonce: int | None = Field(default=None)
status: TransactionStatus = Field(default=TransactionStatus.PENDING, index=True)
error_message: str | None = Field(default=None)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
# DISABLED: wallet: AgentWallet = Relationship(back_populates="transactions")

View File

@@ -122,7 +122,7 @@ class ServiceRegistry(BaseModel):
"""Service registry containing all available services"""
version: str = Field("1.0.0", description="Registry version")
last_updated: datetime = Field(default_factory=datetime.utcnow, description="Last update time")
last_updated: datetime = Field(default_factory=datetime.now(datetime.UTC), description="Last update time")
services: dict[str, ServiceDefinition] = Field(..., description="Service definitions by ID")
def get_service(self, service_id: str) -> ServiceDefinition | None:

View File

@@ -358,7 +358,7 @@ class PricingError(BaseModel):
error_code: str = Field(..., description="Error code")
message: str = Field(..., description="Error message")
details: dict[str, Any] | None = Field(None, description="Additional error details")
timestamp: datetime = Field(default_factory=datetime.utcnow, description="Error timestamp")
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), description="Error timestamp")
class Config:
json_encoders = {datetime: lambda v: v.isoformat()}

View File

@@ -104,8 +104,8 @@ class AgentDeploymentConfig(SQLModel, table=True):
last_health_check: datetime | None = Field(default=None)
# Metadata
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentDeploymentInstance(SQLModel, table=True):
@@ -149,8 +149,8 @@ class AgentDeploymentInstance(SQLModel, table=True):
health_check_history: list[dict[str, Any]] = Field(default_factory=list, sa_column=Column(JSON))
# Timestamps
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentIntegrationManager:

View File

@@ -58,7 +58,7 @@ class AgentCapability:
performance_score: float # 0-1
cost_per_hour: float
reliability_score: float # 0-1
last_updated: datetime = field(default_factory=datetime.utcnow)
last_updated: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass
@@ -102,7 +102,7 @@ class OrchestrationPlan:
resource_requirements: dict[ResourceType, int]
estimated_cost: float
confidence_score: float
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
class AgentOrchestrator:

View File

@@ -57,7 +57,7 @@ class AgentAuditLog(SQLModel, table=True):
# Event information
event_type: AuditEventType = Field(index=True)
timestamp: datetime = Field(default_factory=datetime.utcnow, index=True)
timestamp: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
# Entity references
workflow_id: str | None = Field(index=True)
@@ -85,7 +85,7 @@ class AgentAuditLog(SQLModel, table=True):
signature_valid: bool | None = Field(default=None)
# Metadata
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentSecurityPolicy(SQLModel, table=True):
@@ -124,8 +124,8 @@ class AgentSecurityPolicy(SQLModel, table=True):
# Status
is_active: bool = Field(default=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentTrustScore(SQLModel, table=True):
@@ -164,8 +164,8 @@ class AgentTrustScore(SQLModel, table=True):
violation_history: list[dict[str, Any]] = Field(default_factory=list, sa_column=Column(JSON))
# Metadata
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentSandboxConfig(SQLModel, table=True):
@@ -208,8 +208,8 @@ class AgentSandboxConfig(SQLModel, table=True):
# Status
is_active: bool = Field(default=True)
created_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
class AgentAuditor:

View File

@@ -113,7 +113,7 @@ class ServiceRequest:
payment: float = 0.0
rating: int = 0
review: str = ""
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
results_hash: str | None = None
priority: str = "normal" # low, normal, high, urgent
complexity: str = "medium" # simple, medium, complex

View File

@@ -69,8 +69,8 @@ class ComplianceRule:
requirements: dict[str, Any]
validation_logic: str
severity: str = "medium"
created_at: datetime = field(default_factory=datetime.utcnow)
updated_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass
@@ -101,7 +101,7 @@ class ComplianceAudit:
findings: list[dict[str, Any]]
recommendations: list[str]
auditor: str
audit_date: datetime = field(default_factory=datetime.utcnow)
audit_date: datetime = field(default_factory=datetime.now(datetime.UTC))
next_review_date: datetime | None = None

View File

@@ -107,7 +107,7 @@ class MarketConditions:
utilization_rate: float
competitor_prices: list[float] = field(default_factory=list)
market_sentiment: float = 0.0 # -1 to 1
timestamp: datetime = field(default_factory=datetime.utcnow)
timestamp: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass

View File

@@ -64,7 +64,7 @@ class IntegrationConfig:
retry_policy: Dict[str, Any] = field(default_factory=dict)
rate_limits: Dict[str, int] = field(default_factory=dict)
webhook_config: Optional[Dict[str, Any]] = None
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
last_sync: Optional[datetime] = None
status: str = "active"

View File

@@ -60,10 +60,10 @@ class BackendServer:
request_count: int = 0
error_count: int = 0
health_status: HealthStatus = HealthStatus.HEALTHY
last_health_check: datetime = field(default_factory=datetime.utcnow)
last_health_check: datetime = field(default_factory=datetime.now(datetime.UTC))
capabilities: dict[str, Any] = field(default_factory=dict)
region: str = "default"
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass

View File

@@ -59,8 +59,8 @@ class SecurityPolicy:
access_control_requirements: list[str]
audit_requirements: list[str]
retention_period: timedelta
created_at: datetime = field(default_factory=datetime.utcnow)
updated_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
updated_at: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass

View File

@@ -64,7 +64,7 @@ class EdgeLocation:
hit_rate: float = 0.0
avg_response_time_ms: float = 0.0
status: str = "active"
last_health_check: datetime = field(default_factory=datetime.utcnow)
last_health_check: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass
@@ -80,7 +80,7 @@ class CacheEntry:
created_at: datetime
expires_at: datetime
access_count: int = 0
last_accessed: datetime = field(default_factory=datetime.utcnow)
last_accessed: datetime = field(default_factory=datetime.now(datetime.UTC))
edge_locations: list[str] = field(default_factory=list)
metadata: dict[str, Any] = field(default_factory=dict)

View File

@@ -86,7 +86,7 @@ class SubTask:
dependencies: list[str] = field(default_factory=list)
outputs: list[str] = field(default_factory=list)
inputs: list[str] = field(default_factory=list)
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
started_at: datetime | None = None
completed_at: datetime | None = None
error_message: str | None = None
@@ -106,7 +106,7 @@ class TaskDecomposition:
estimated_total_cost: float
confidence_score: float
decomposition_strategy: str
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass
@@ -119,7 +119,7 @@ class TaskAggregation:
input_sub_tasks: list[str]
output_format: str
aggregation_function: str
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
class TaskDecompositionEngine:

View File

@@ -20,7 +20,7 @@ class GovernanceProposal(SQLModel, table=True):
target: dict[str, Any] | None = Field(default_factory=dict, sa_column=Column(JSON))
proposer: str = Field(max_length=255, index=True)
status: str = Field(default="active", max_length=20) # active, passed, rejected, executed, expired
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
voting_deadline: datetime
quorum_threshold: float = Field(default=0.1) # Percentage of total voting power
approval_threshold: float = Field(default=0.5) # Percentage of votes in favor
@@ -40,7 +40,7 @@ class ProposalVote(SQLModel, table=True):
vote: str = Field(max_length=10) # for, against, abstain
voting_power: int = Field(default=0) # Amount of voting power at time of vote
reason: str | None = Field(max_length=500)
voted_at: datetime = Field(default_factory=datetime.utcnow)
voted_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
# Relationships
proposal: GovernanceProposal = Relationship(back_populates="votes")
@@ -57,7 +57,7 @@ class TreasuryTransaction(SQLModel, table=True):
token: str = Field(default="AITBC", max_length=20)
transaction_hash: str | None = Field(max_length=255)
status: str = Field(default="pending", max_length=20) # pending, confirmed, failed
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
confirmed_at: datetime | None = None
memo: str | None = Field(max_length=500)
@@ -72,7 +72,7 @@ class GovernanceParameter(SQLModel, table=True):
min_value: str | None = Field(max_length=100)
max_value: str | None = Field(max_length=100)
value_type: str = Field(max_length=20) # string, number, boolean, json
updated_at: datetime = Field(default_factory=datetime.utcnow)
updated_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
updated_by_proposal: str | None = Field(foreign_key="governanceproposal.id")
@@ -82,7 +82,7 @@ class VotingPowerSnapshot(SQLModel, table=True):
id: str = Field(default_factory=lambda: str(uuid4()), primary_key=True)
user_id: str = Field(max_length=255, index=True)
voting_power: int
snapshot_time: datetime = Field(default_factory=datetime.utcnow, index=True)
snapshot_time: datetime = Field(default_factory=datetime.now(datetime.UTC), index=True)
block_number: int | None = Field(index=True)
model_config = ConfigDict(
@@ -101,7 +101,7 @@ class ProtocolUpgrade(SQLModel, table=True):
upgrade_type: str = Field(max_length=50) # hard_fork, soft_fork, patch
activation_block: int | None
status: str = Field(default="pending", max_length=20) # pending, active, failed
created_at: datetime = Field(default_factory=datetime.utcnow)
created_at: datetime = Field(default_factory=datetime.now(datetime.UTC))
activated_at: datetime | None = None
rollback_available: bool = Field(default=False)

View File

@@ -22,7 +22,7 @@ class User(Base):
password_hash = Column(String(255), nullable=False)
bitcoin_address = Column(String(100), unique=True, nullable=False)
aitbc_address = Column(String(100), unique=True, nullable=False)
created_at = Column(DateTime, default=datetime.utcnow)
created_at = Column(DateTime, default=datetime.now(datetime.UTC))
is_active = Column(Boolean, default=True)
# Relationships
@@ -46,8 +46,8 @@ class Order(Base):
filled = Column(Float, default=0.0) # Amount filled
remaining = Column(Float, nullable=False) # Amount remaining to fill
status = Column(String(20), default='OPEN') # OPEN, PARTIALLY_FILLED, FILLED, CANCELLED
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
created_at = Column(DateTime, default=datetime.now(datetime.UTC))
updated_at = Column(DateTime, default=datetime.now(datetime.UTC), onupdate=datetime.now(datetime.UTC))
# Relationships
user = relationship("User", back_populates="orders")
@@ -74,7 +74,7 @@ class Trade(Base):
price = Column(Float, nullable=False) # Trade price in BTC
total = Column(Float, nullable=False) # Total value in BTC
trade_hash = Column(String(100), unique=True, nullable=False) # Blockchain transaction hash
created_at = Column(DateTime, default=datetime.utcnow)
created_at = Column(DateTime, default=datetime.now(datetime.UTC))
# Relationships
buyer = relationship("User", back_populates="trades", foreign_keys=[buyer_id])
@@ -100,7 +100,7 @@ class Balance(Base):
aitbc_balance = Column(Float, default=0.0)
btc_locked = Column(Float, default=0.0) # Locked in open orders
aitbc_locked = Column(Float, default=0.0) # Locked in open orders
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.now(datetime.UTC), onupdate=datetime.now(datetime.UTC))
# Relationship
user = relationship("User")

View File

@@ -22,8 +22,8 @@ class MinerInfo:
jobs_completed: int = 0
jobs_failed: int = 0
uptime_percent: float = 100.0
registered_at: datetime = field(default_factory=datetime.utcnow)
last_heartbeat: datetime = field(default_factory=datetime.utcnow)
registered_at: datetime = field(default_factory=datetime.now(datetime.UTC))
last_heartbeat: datetime = field(default_factory=datetime.now(datetime.UTC))
gpu_utilization: float = 0.0
memory_used_gb: float = 0.0
@@ -43,7 +43,7 @@ class PoolInfo:
total_hashrate: float = 0.0
jobs_completed_24h: int = 0
earnings_24h: float = 0.0
created_at: datetime = field(default_factory=datetime.utcnow)
created_at: datetime = field(default_factory=datetime.now(datetime.UTC))
@dataclass
@@ -55,7 +55,7 @@ class JobAssignment:
pool_id: str
model: str
status: str = "assigned"
assigned_at: datetime = field(default_factory=datetime.utcnow)
assigned_at: datetime = field(default_factory=datetime.now(datetime.UTC))
deadline: Optional[datetime] = None
completed_at: Optional[datetime] = None

View File

@@ -40,7 +40,7 @@ class Miner(Base):
miner_id: Mapped[str] = mapped_column(String(64), primary_key=True)
api_key_hash: Mapped[str] = mapped_column(String(128), nullable=False)
created_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
last_seen_at: Mapped[Optional[dt.datetime]] = mapped_column(DateTime(timezone=True))
addr: Mapped[str] = mapped_column(String(256))
@@ -78,7 +78,7 @@ class MinerStatus(Base):
uptime_pct: Mapped[Optional[float]] = mapped_column(Float) # SLA metric
last_heartbeat_at: Mapped[Optional[dt.datetime]] = mapped_column(DateTime(timezone=True))
updated_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow, onupdate=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC), onupdate=dt.datetime.now(datetime.UTC)
)
miner: Mapped[Miner] = relationship(back_populates="status")
@@ -95,7 +95,7 @@ class MatchRequest(Base):
hints: Mapped[Dict[str, object]] = mapped_column(JSON, default=dict)
top_k: Mapped[int] = mapped_column(Integer, default=1)
created_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
results: Mapped[List["MatchResult"]] = relationship(
@@ -119,7 +119,7 @@ class MatchResult(Base):
price: Mapped[Optional[float]] = mapped_column(Float)
created_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
request: Mapped[MatchRequest] = relationship(back_populates="results")
@@ -140,7 +140,7 @@ class Feedback(Base):
fail_code: Mapped[Optional[str]] = mapped_column(String(64))
tokens_spent: Mapped[Optional[float]] = mapped_column(Float)
created_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
miner: Mapped[Miner] = relationship(back_populates="feedback")
@@ -164,10 +164,10 @@ class ServiceConfig(Base):
capabilities: Mapped[List[str]] = mapped_column(JSON, default=list)
max_concurrent: Mapped[int] = mapped_column(Integer, default=1)
created_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
updated_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow, onupdate=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC), onupdate=dt.datetime.now(datetime.UTC)
)
# Add unique constraint for miner_id + service_type
@@ -192,7 +192,7 @@ class SLAMetric(Base):
threshold: Mapped[float] = mapped_column(Float, nullable=False)
is_violation: Mapped[bool] = mapped_column(Boolean, default=False)
timestamp: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
meta_data: Mapped[Dict[str, str]] = mapped_column(JSON, default=dict)
@@ -217,7 +217,7 @@ class SLAViolation(Base):
violation_duration_ms: Mapped[Optional[int]] = mapped_column(Integer)
resolved_at: Mapped[Optional[dt.datetime]] = mapped_column(DateTime(timezone=True))
created_at: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
meta_data: Mapped[Dict[str, str]] = mapped_column(JSON, default=dict)
@@ -241,6 +241,6 @@ class CapacitySnapshot(Base):
recommended_scaling: Mapped[str] = mapped_column(String(32), nullable=False)
scaling_reason: Mapped[str] = mapped_column(Text)
timestamp: Mapped[dt.datetime] = mapped_column(
DateTime(timezone=True), default=dt.datetime.utcnow
DateTime(timezone=True), default=dt.datetime.now(datetime.UTC)
)
meta_data: Mapped[Dict[str, Any]] = mapped_column(JSON, default=dict)