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:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"""
|
||||
|
||||
@@ -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"""
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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__ = {
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user