<?php
define('BW_SURVEY_OPTIONS', 'bw_survey_options');

function bw_survey_get_options() {
	$default_options = array(
		'database_version' => '0.0.0',
	);
	$options = get_option( BW_SURVEY_OPTIONS, null );

	if (!is_array($options)) return $default_options;

	foreach ( $default_options as $key => $value ) {
		if ( ! isset( $options[ $key ] ) ) {
			$options[ $key ] = $value;
		}
	}

	return $options;
}

function bw_survey_set_options( array $settings = array() ) {
	$options = bw_survey_get_options();

	// list of valid keys to update
	$keys = [
		'database_version'
	];

	foreach ( $keys as $key ) {
		if ( isset( $settings[$key] ) ) {
			$options[$key] = $settings[$key];
		}
	}

	update_option( BW_SURVEY_OPTIONS, $options );
	return $options;
}

function bw_survey_get_option ( $key ) {
	$options = bw_survey_get_options();
	return isset($options[$key]) ? $options[$key] : null;
}

function bw_survey_update_option ( $key, $value ) {
	$options = bw_survey_get_options();
	$options[$key] = $value;
	bw_survey_set_options($options);
}