"""Genre model.""" from db import db class MetricsField(db.Model): __tablename__ = "MetricsField" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) type_id = db.Column(db.Integer, db.ForeignKey("MetricsFieldType.id", ondelete="CASCADE"), nullable=False) format_id = db.Column(db.Integer, db.ForeignKey("MetricsFieldFormat.id", ondelete="CASCADE"), nullable=False) objective_id = db.Column(db.Integer, db.ForeignKey("CampaignObjective.id", ondelete="CASCADE"), nullable=True) title = db.Column(db.String, nullable=True) subtitle = db.Column(db.String, nullable=True) total_name = db.Column(db.String, nullable=True) description = db.Column(db.String, nullable=True) order_index = db.Column(db.Integer, nullable=False, server_default="0") objective = db.relationship("CampaignObjective") type = db.relationship("MetricsFieldType") format = db.relationship("MetricsFieldFormat") class MetricsFieldType(db.Model): __tablename__ = "MetricsFieldType" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) order_index = db.Column(db.Integer, nullable=False, server_default="0") class MetricsFieldFormat(db.Model): __tablename__ = "MetricsFieldFormat" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) user_metrics_field = db.Table( "UserMetricsField", db.Model.metadata, db.Column("user_id", db.Integer, db.ForeignKey("User.id", ondelete="CASCADE"), nullable=False), db.Column("metric_field_id", db.Integer, db.ForeignKey("MetricsField.id", ondelete="CASCADE"), nullable=False), )