```
chore: refactor logging module, update genesis timestamp, remove model relationships, and reorganize routers - Rename logging.py to logger.py and update import paths in poa.py and main.py - Update devnet genesis timestamp to 1766828620 - Remove SQLModel Relationship declarations from Block, Transaction, and Receipt models - Add SessionDep type alias and get_session dependency in coordinator-api deps - Reorganize coordinator-api routers: replace explorer/registry with exchange, users, marketplace
This commit is contained in:
104
apps/coordinator-api/src/app/models/__init__.py
Normal file
104
apps/coordinator-api/src/app/models/__init__.py
Normal file
@@ -0,0 +1,104 @@
|
||||
"""
|
||||
Models package for the AITBC Coordinator API
|
||||
"""
|
||||
|
||||
# Import basic types from types.py to avoid circular imports
|
||||
from ..types import (
|
||||
JobState,
|
||||
Constraints,
|
||||
)
|
||||
|
||||
# Import schemas from schemas.py
|
||||
from ..schemas import (
|
||||
JobCreate,
|
||||
JobView,
|
||||
JobResult,
|
||||
AssignedJob,
|
||||
MinerHeartbeat,
|
||||
MinerRegister,
|
||||
MarketplaceBidRequest,
|
||||
MarketplaceOfferView,
|
||||
MarketplaceStatsView,
|
||||
BlockSummary,
|
||||
BlockListResponse,
|
||||
TransactionSummary,
|
||||
TransactionListResponse,
|
||||
AddressSummary,
|
||||
AddressListResponse,
|
||||
ReceiptSummary,
|
||||
ReceiptListResponse,
|
||||
ExchangePaymentRequest,
|
||||
ExchangePaymentResponse,
|
||||
ConfidentialTransaction,
|
||||
ConfidentialTransactionCreate,
|
||||
ConfidentialTransactionView,
|
||||
ConfidentialAccessRequest,
|
||||
ConfidentialAccessResponse,
|
||||
KeyPair,
|
||||
KeyRotationLog,
|
||||
AuditAuthorization,
|
||||
KeyRegistrationRequest,
|
||||
KeyRegistrationResponse,
|
||||
ConfidentialAccessLog,
|
||||
AccessLogQuery,
|
||||
AccessLogResponse,
|
||||
Receipt,
|
||||
JobFailSubmit,
|
||||
JobResultSubmit,
|
||||
PollRequest,
|
||||
)
|
||||
|
||||
# Import domain models
|
||||
from ..domain import (
|
||||
Job,
|
||||
Miner,
|
||||
MarketplaceOffer,
|
||||
MarketplaceBid,
|
||||
User,
|
||||
Wallet,
|
||||
)
|
||||
|
||||
# Service-specific models
|
||||
from .services import (
|
||||
ServiceType,
|
||||
ServiceRequest,
|
||||
ServiceResponse,
|
||||
WhisperRequest,
|
||||
StableDiffusionRequest,
|
||||
LLMRequest,
|
||||
FFmpegRequest,
|
||||
BlenderRequest,
|
||||
)
|
||||
# from .confidential import ConfidentialReceipt, ConfidentialAttestation
|
||||
# from .multitenant import Tenant, TenantConfig, TenantUser
|
||||
# from .registry import (
|
||||
# ServiceRegistry,
|
||||
# ServiceRegistration,
|
||||
# ServiceHealthCheck,
|
||||
# ServiceMetrics,
|
||||
# )
|
||||
# from .registry_data import DataService, DataServiceConfig
|
||||
# from .registry_devtools import DevToolService, DevToolConfig
|
||||
# from .registry_gaming import GamingService, GamingConfig
|
||||
# from .registry_media import MediaService, MediaConfig
|
||||
# from .registry_scientific import ScientificService, ScientificConfig
|
||||
|
||||
__all__ = [
|
||||
"JobState",
|
||||
"JobCreate",
|
||||
"JobView",
|
||||
"JobResult",
|
||||
"Constraints",
|
||||
"Job",
|
||||
"Miner",
|
||||
"MarketplaceOffer",
|
||||
"MarketplaceBid",
|
||||
"ServiceType",
|
||||
"ServiceRequest",
|
||||
"ServiceResponse",
|
||||
"WhisperRequest",
|
||||
"StableDiffusionRequest",
|
||||
"LLMRequest",
|
||||
"FFmpegRequest",
|
||||
"BlenderRequest",
|
||||
]
|
||||
@@ -4,13 +4,12 @@ Database models for confidential transactions
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional, Dict, Any, List
|
||||
from sqlmodel import SQLModel as Base, Field
|
||||
from sqlalchemy import Column, String, DateTime, Boolean, Text, JSON, Integer, LargeBinary
|
||||
from sqlalchemy.dialects.postgresql import UUID
|
||||
from sqlalchemy.sql import func
|
||||
import uuid
|
||||
|
||||
from ..database import Base
|
||||
|
||||
|
||||
class ConfidentialTransactionDB(Base):
|
||||
"""Database model for confidential transactions"""
|
||||
|
||||
@@ -11,7 +11,7 @@ from sqlalchemy.sql import func
|
||||
from sqlalchemy.orm import relationship
|
||||
import uuid
|
||||
|
||||
from ..database import Base
|
||||
from sqlmodel import SQLModel as Base
|
||||
|
||||
|
||||
class TenantStatus(Enum):
|
||||
|
||||
@@ -49,7 +49,7 @@ class ParameterDefinition(BaseModel):
|
||||
default: Optional[Any] = Field(None, description="Default value")
|
||||
min_value: Optional[Union[int, float]] = Field(None, description="Minimum value")
|
||||
max_value: Optional[Union[int, float]] = Field(None, description="Maximum value")
|
||||
options: Optional[List[str]] = Field(None, description="Available options for enum type")
|
||||
options: Optional[List[Union[str, int]]] = Field(None, description="Available options for enum type")
|
||||
validation: Optional[Dict[str, Any]] = Field(None, description="Custom validation rules")
|
||||
|
||||
|
||||
@@ -545,3 +545,6 @@ AI_ML_SERVICES = {
|
||||
timeout_seconds=60
|
||||
)
|
||||
}
|
||||
|
||||
# Create global service registry instance
|
||||
service_registry = ServiceRegistry(services=AI_ML_SERVICES)
|
||||
|
||||
@@ -112,7 +112,7 @@ class StableDiffusionRequest(BaseModel):
|
||||
"""Stable Diffusion image generation request"""
|
||||
prompt: str = Field(..., min_length=1, max_length=1000, description="Text prompt")
|
||||
negative_prompt: Optional[str] = Field(None, max_length=1000, description="Negative prompt")
|
||||
model: SDModel = Field(SD_1_5, description="Model to use")
|
||||
model: SDModel = Field(SDModel.SD_1_5, description="Model to use")
|
||||
size: SDSize = Field(SDSize.SQUARE_512, description="Image size")
|
||||
num_images: int = Field(1, ge=1, le=4, description="Number of images to generate")
|
||||
num_inference_steps: int = Field(20, ge=1, le=100, description="Number of inference steps")
|
||||
@@ -233,8 +233,8 @@ class FFmpegRequest(BaseModel):
|
||||
codec: FFmpegCodec = Field(FFmpegCodec.H264, description="Video codec")
|
||||
preset: FFmpegPreset = Field(FFmpegPreset.MEDIUM, description="Encoding preset")
|
||||
crf: int = Field(23, ge=0, le=51, description="Constant rate factor")
|
||||
resolution: Optional[str] = Field(None, regex=r"^\d+x\d+$", description="Output resolution (e.g., 1920x1080)")
|
||||
bitrate: Optional[str] = Field(None, regex=r"^\d+[kM]?$", description="Target bitrate")
|
||||
resolution: Optional[str] = Field(None, pattern=r"^\d+x\d+$", description="Output resolution (e.g., 1920x1080)")
|
||||
bitrate: Optional[str] = Field(None, pattern=r"^\d+[kM]?$", description="Target bitrate")
|
||||
fps: Optional[int] = Field(None, ge=1, le=120, description="Output frame rate")
|
||||
audio_codec: str = Field("aac", description="Audio codec")
|
||||
audio_bitrate: str = Field("128k", description="Audio bitrate")
|
||||
|
||||
Reference in New Issue
Block a user