def generate_random_status_changes()

in playground/process_analysis/utils/status_transition_data_generator.py [0:0]


def generate_random_status_changes(n: int = 1000) -> pd.DataFrame:
    changes: list[StatusChange] = []
    count = 0
    status_change = None
    while count < n:
        if status_change is None:
            status_change = _create_first_status_change()
        else:
            status_change = _create_next_status_change(status_change)

        if status_change is not None:
            changes.append(status_change)
            count += 1

    df = pd.DataFrame(
        [
            {
                "issue_key": change.issue_key,
                "issue_type": change.issue_type,
                "created_date": pd.to_datetime(change.created_date),
                "original_from_value": change.from_status.value[0],
                "from_status": change.from_status.value[1],
                "original_to_value": change.to_status.value[0],
                "to_status": change.to_status.value[1],
                "changed_date": pd.to_datetime(change.changed_date),
            }
            for change in changes
        ]
    )

    return df