"""Model for move_target table.""" from product_review.api import db from product_review.models import target_group # noqa: F401 class MoveTarget(db.Model): """Move target model.""" __tablename__ = "move_target" moved_to_target_id = db.Column( "id", db.Integer, primary_key=True, autoincrement=True, nullable=False ) target_group_id = db.Column( db.Integer, db.ForeignKey("target_group.id"), nullable=False ) display_name = db.Column(db.String(80), nullable=False) show_in_ui = db.Column( db.Boolean(create_constraint=True, name="ck_move_target_show_in_ui"), default=1 ) orchadmin_user_id = db.Column(db.Integer, default=None) escalation_type = db.Column(db.String(80), nullable=False) def to_dict(self): """Convert the MoveTarget object to a dictionary representation.""" items = {} for c in self.__table__.columns: column_name = "moved_to_target_id" if c.name == "id" else c.name items[column_name] = getattr(self, column_name) return items def get_items(target_group_id): """Get all move target items.""" return [ move_target_item.to_dict() for move_target_item in db.session.query(MoveTarget) .filter_by(target_group_id=target_group_id) .all() ] def get_move_target(moved_to_target_id): """Get a record from move_target table.""" result = ( db.session.query(MoveTarget) .filter(MoveTarget.moved_to_target_id == moved_to_target_id) .first() ) return result.to_dict() if result else None def delete(moved_to_target_id): """For integration testing purposes only, delete move target.""" db.session.query(MoveTarget).filter( MoveTarget.moved_to_target_id == moved_to_target_id ).delete()