"""Campaign objective model.""" from db import db from models.objective_metrics_field import ObjectiveMetricsField class CampaignGoal(db.Model): __tablename__ = "CampaignGoal" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) objectives = db.relationship("CampaignObjective", primaryjoin="CampaignObjective.goal_id == CampaignGoal.id") class CampaignObjective(db.Model): __tablename__ = "CampaignObjective" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) goal_id = db.Column(db.BigInteger, db.ForeignKey("CampaignGoal.id", ondelete="CASCADE"), nullable=False) metric_fields = db.relationship( "MetricsField", secondary=lambda: ObjectiveMetricsField.__table__, order_by="ObjectiveMetricsField.index", viewonly=True, )