def _get_operations()

in backend/bms_app/source_db/services.py [0:0]


    def _get_operations(source_db):
        """Return operations history data."""
        query = db.session.query(OperationDetails, Operation, BMSServer) \
            .join(Mapping, OperationDetails.mapping_id == Mapping.id) \
            .join(SourceDB, Mapping.db_id == SourceDB.id) \
            .join(BMSServer, Mapping.bms_id == BMSServer.id) \
            .join(Operation, OperationDetails.operation_id == Operation.id) \
            .filter(SourceDB.id == source_db.id) \
            .order_by(OperationDetails.id) \
            .all()

        operations_data = {}

        for op_details, operation, bms in query:
            op_id = op_details.operation_id

            if op_id not in operations_data:
                operations_data[op_id] = {
                    'wave_id': operation.wave_id,
                    'operation_type': operation.operation_type.value,
                    'started_at': operation.started_at,
                    'completed_at': operation.completed_at,
                    'bms': []

                }

            logs_url = generate_target_gcp_logs_link(op_details, bms)

            operations_data[op_id]['bms'].append({
                'id': bms.id,
                'name': bms.name,
                'logs_url': logs_url,
                'operation_status': op_details.status.value
            })

        return list(operations_data.values())