fix: resolve datetime timezone error in marketplace service
Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Successful in 4s
Deploy to Testnet / deploy-testnet (push) Successful in 1m10s
Integration Tests / test-service-integration (push) Successful in 2m38s
Multi-Node Stress Testing / stress-test (push) Successful in 2s
Node Failover Simulation / failover-test (push) Successful in 2s
Python Tests / test-python (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled

- Change created_at and submitted_at fields to use datetime.utcnow instead of datetime.now(timezone.utc)
- Fixes TypeError: can't subtract offset-naive and offset-aware datetimes
- Database column is TIMESTAMP WITHOUT TIME ZONE, so timezone-naive datetime is required
This commit is contained in:
aitbc
2026-05-08 19:22:34 +02:00
parent 130a295366
commit 6549483b18
2 changed files with 6 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime, timezone from datetime import datetime
from uuid import uuid4 from uuid import uuid4
from sqlalchemy import JSON, Column from sqlalchemy import JSON, Column
@@ -17,7 +17,7 @@ class MarketplaceOffer(SQLModel, table=True):
price: float = Field(default=0.0, nullable=False) price: float = Field(default=0.0, nullable=False)
sla: str = Field(default="") sla: str = Field(default="")
status: str = Field(default="open", max_length=20) status: str = Field(default="open", max_length=20)
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), nullable=False, index=True) created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)
attributes: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False)) attributes: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
# GPU-specific fields # GPU-specific fields
gpu_model: str | None = Field(default=None, index=True) 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) price: float = Field(default=0.0, nullable=False)
notes: str | None = Field(default=None) notes: str | None = Field(default=None)
status: str = Field(default="pending", nullable=False) status: str = Field(default="pending", nullable=False)
submitted_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), nullable=False, index=True) submitted_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)

View File

@@ -1,6 +1,6 @@
from __future__ import annotations from __future__ import annotations
from datetime import datetime, timezone from datetime import datetime
from uuid import uuid4 from uuid import uuid4
from sqlalchemy import JSON, Column from sqlalchemy import JSON, Column
@@ -17,7 +17,7 @@ class MarketplaceOffer(SQLModel, table=True):
price: float = Field(default=0.0, nullable=False) price: float = Field(default=0.0, nullable=False)
sla: str = Field(default="") sla: str = Field(default="")
status: str = Field(default="open", max_length=20) status: str = Field(default="open", max_length=20)
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), nullable=False, index=True) created_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)
attributes: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False)) attributes: dict = Field(default_factory=dict, sa_column=Column(JSON, nullable=False))
# GPU-specific fields # GPU-specific fields
gpu_model: str | None = Field(default=None, index=True) 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) price: float = Field(default=0.0, nullable=False)
notes: str | None = Field(default=None) notes: str | None = Field(default=None)
status: str = Field(default="pending", nullable=False) status: str = Field(default="pending", nullable=False)
submitted_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), nullable=False, index=True) submitted_at: datetime = Field(default_factory=datetime.utcnow, nullable=False, index=True)