import json import datetime from sqlalchemy import Column, String, DateTime, Text, Integer, Float from app.database import Base class Benchmark(Base): __tablename__ = "benchmarks" id = Column(String, primary_key=True, default="global") # single row for global benchmarks churn_data_json = Column(Text, default="{}") # aggregated churn score distribution lead_data_json = Column(Text, default="{}") # aggregated lead score distribution total_churn_scored = Column(Integer, default=0) total_lead_scored = Column(Integer, default=0) unique_churn_companies = Column(Integer, default=0) unique_lead_companies = Column(Integer, default=0) updated_at = Column(DateTime, default=datetime.datetime.utcnow) def get_churn_data(self) -> dict: return json.loads(self.churn_data_json) if self.churn_data_json else {} def get_lead_data(self) -> dict: return json.loads(self.lead_data_json) if self.lead_data_json else {} def set_churn_data(self, data: dict): self.churn_data_json = json.dumps(data) def set_lead_data(self, data: dict): self.lead_data_json = json.dumps(data)