@Override
  public CustomerStatusDetailDto retrieveCustomerStatusDetails(
      Short newStatusId, Short flagIdValue, Short customerLevelId) {

    CustomerLevel customerLevel = CustomerLevel.getLevel(customerLevelId);
    CustomerStatus customerStatus = CustomerStatus.fromInt(newStatusId);

    CustomerStatusFlag statusFlag = null;
    if (customerStatus.isCustomerCancelledOrClosed()) {
      statusFlag = CustomerStatusFlag.getStatusFlag(flagIdValue);
    }

    String statusName =
        AccountStateMachines.getInstance().getCustomerStatusName(customerStatus, customerLevel);
    String flagName =
        AccountStateMachines.getInstance().getCustomerFlagName(statusFlag, customerLevel);

    return new CustomerStatusDetailDto(statusName, flagName);
  }