Spaces:
Sleeping
Sleeping
| from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey | |
| from sqlalchemy.orm import declarative_base, relationship | |
| from datetime import datetime | |
| Base = declarative_base() | |
| class Campaign(Base): | |
| __tablename__ = "campaigns" | |
| id = Column(Integer, primary_key=True) | |
| google_campaign_id = Column(String, unique=True) | |
| name = Column(String) | |
| budget = Column(Float) | |
| spend = Column(Float) | |
| clicks = Column(Integer) | |
| impressions = Column(Integer) | |
| ctr = Column(Float) | |
| leads = Column(Integer) | |
| cpl = Column(Float) | |
| last_synced = Column(DateTime, default=datetime.utcnow) | |
| recommendations = relationship("Recommendation", back_populates="campaign") | |
| class Recommendation(Base): | |
| __tablename__ = "recommendations" | |
| id = Column(Integer, primary_key=True) | |
| campaign_id = Column(Integer, ForeignKey("campaigns.id")) | |
| recommendation_type = Column(String) | |
| action = Column(String) | |
| reason = Column(String) | |
| status = Column(String, default="Pending") # Pending / Approved / Rejected | |
| created_at = Column(DateTime, default=datetime.utcnow) | |
| campaign = relationship("Campaign", back_populates="recommendations") |