"""ML Model metadata"""
from sqlalchemy import Column, Integer, String, Float, DateTime, JSON
from datetime import datetime
from app.core.db.database import Base


class Model(Base):
    """ML Model version and metadata"""
    __tablename__ = "models"
    
    id = Column(Integer, primary_key=True, index=True)
    version = Column(String, unique=True, nullable=False, index=True)
    model_type = Column(String, nullable=False)
    
    # Parameters
    parameters = Column(JSON)
    
    # Metrics
    train_accuracy = Column(Float)
    test_accuracy = Column(Float)
    train_logloss = Column(Float)
    test_logloss = Column(Float)
    train_brier = Column(Float)
    test_brier = Column(Float)
    
    # Artifact
    artifact_path = Column(String)  # Path to .pkl or .joblib file
    
    # Metadata
    trained_at = Column(DateTime, default=datetime.utcnow, index=True)
    trained_on_matches = Column(Integer)
    is_active = Column(Integer, default=1)  # 1 = active, 0 = inactive
    
    notes = Column(String)

