diff --git a/api/models/user_group.py b/api/models/user_group.py index e09e56fa..8840868b 100644 --- a/api/models/user_group.py +++ b/api/models/user_group.py @@ -20,10 +20,20 @@ def get_unique(self, uuid, phone): .first() ) + def mark_user_groups_as_inactive(self, phone): + self.filter(and_(UserGroup.user_phone == phone)).update( + {UserGroup.status: UserGroup.UserGroupStatus.INACTIVE} + ) + class UserGroup(TimestampMixin, db.Model): query_class = UserGroupQuery __tablename__ = "user_group" + + class UserGroupStatus(object): + ACTIVE = "active" + INACTIVE = "inactive" + id = db.Column(db.Integer, primary_key=True) user_phone = db.Column(db.String(50), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey("user.id")) diff --git a/api/services/user_contact_service.py b/api/services/user_contact_service.py index 0f1f2a4e..2fc23dda 100644 --- a/api/services/user_contact_service.py +++ b/api/services/user_contact_service.py @@ -25,6 +25,7 @@ def init_data(self, jsonData): def handle_contact_group(self, jsonData): self.init_data(jsonData) contact_groups = jsonData["contact"]["groups"] + self.mark_user_groups_as_inactive() for group in contact_groups: group_data = models.UserGroup.query.get_unique( group["uuid"], self.user_phone @@ -143,3 +144,7 @@ def custom_fields_contidions(self, field_name, field_value): and field_name.startswith(self.custom_field_prefix) else False ) + + def mark_user_groups_as_inactive(self): + models.UserGroup.query.mark_user_groups_as_inactive(self.user_phone) + db.session.commit()