def upgrade()

in src/dispatch/database/revisions/tenant/versions/2022-05-23_748744207122.py [0:0]


def upgrade():
    print("Fixing resource foreign keys in incident table...")

    bind = op.get_bind()
    session = Session(bind=bind)

    incidents = session.query(Incident).all()

    for incident in incidents:
        # we set the incident document and post-incident review document foreign keys
        incident_document = get_current_document(incident.documents, DocumentResourceTypes.incident)
        if incident_document:
            incident.incident_document_id = incident_document.id

        incident_review_document = get_current_document(
            incident.documents, DocumentResourceTypes.review
        )
        if incident_review_document:
            incident.incident_review_document_id = incident_review_document.id

        # we set the tactical and notifications foreign keys
        tactical_group = get_current_group(incident.groups, "tactical-group")
        if tactical_group:
            incident.tactical_group_id = tactical_group.id

        notifications_group = get_current_group(incident.groups, "notification-group")
        if not notifications_group:
            # we check for the current resource type name
            notifications_group = get_current_group(incident.groups, "notifications-group")

        if notifications_group:
            incident.notifications_group_id = notifications_group.id

    session.commit()

    print("Incident resource foreign keys fixed.")