from pydantic import BaseModel
from datetime import datetime
from typing import List


class Data(BaseModel):
    last_event_at: List[datetime]
    cumulative_jobs: List[int]

class ProductivityData(BaseModel):
    unique_folded: int
    total_completed_jobs: int
    unique_folded_data: Data
    total_completed_jobs_data: Data
    

class Productivity(BaseModel):
    all_time: ProductivityData
    last_24h: ProductivityData
    last_30d: ProductivityData
    
class ThroughputData(BaseModel):
    validator_sent: float
    miner_sent: float

class Throughput(BaseModel):
    all_time: ThroughputData
    last_24h: ThroughputData
    data: dict
    
class Metagraph(BaseModel):
    incentives: List[float]
    emissions: List[float]
    identities: List[str]
    hotkeys: List[str]
    coldkeys: List[str]
    trusts: List[float]