Spaces:
Running
Running
| 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) | |