<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

function tilfy_ayar_anahtarlari() {
	return array(
		'meta_uygulama_id',
		'meta_uygulama_gizli',
		'meta_konfig_id',
		'meta_sayfa_id',
		'meta_instagram_id',
		'meta_graph_surum',
		'meta_erisim_jetonu',
		'meta_sayfa_jetonu',
		'threads_kullanici_id',
		'threads_erisim_jetonu',
		'threads_uygulama_id',
		'threads_uygulama_gizli',
		'youtube_istemci_id',
		'youtube_istemci_gizli',
		'youtube_kanal_id',
		'youtube_yenileme_jetonu',
		'youtube_erisim_jetonu',
		'youtube_erisim_bitis',
		'youtube_scope_eksik',
		'linkedin_istemci_id',
		'linkedin_istemci_gizli',
		'linkedin_uye_id',
		'linkedin_profil_adi',
		'linkedin_erisim_jetonu',
		'tiktok_istemci_anahtar',
		'tiktok_istemci_gizli',
		'tiktok_erisim_jetonu',
		'tiktok_erisim_bitis',
		'tiktok_yenileme_jetonu',
		'tiktok_open_id',
		'tiktok_direct_post',
		'tiktok_gizlilik',
		'varsayilan_etiketler',
		'senkron_saat',
		'medya_klasor',
		'kuyruk_tek_is',
		'kapak_sunucuya_kaydet',
		'senkron_medya',
		'yinelenen_koruma',
		'varsayilan_icerik_gorunum',
		'capraz_sirali_arasi_dakika',
		'wordpress_kaynak',
		'senkron_modu',
		'varsayilan_kapak_havuzu',
		'log_islem',
		'log_debug',
		'galeri_etkin',
		'galeri_platformlar',
		'galeri_gizli_goster',
		'galeri_wp_ozel_goster',
		'galeri_modal_kapak',
		'galeri_modal_aciklama',
		'galeri_buton_metni',
		'galeri_istatistik',
		'galeri_sayfa_basina',
		'galeri_varsayilan_sira',
		'galeri_filtre_arama',
		'galeri_filtre_tarih',
		'galeri_filtre_medya',
		'galeri_filtre_sira',
		'galeri_modal_lazy',
		'dil',
	);
}


function tilfy_jeton_bitis_unix( $expires_in, $varsayilan = 3600 ) {
	$expires_in = (int) $expires_in;
	if ( $expires_in <= 0 ) {
		$expires_in = (int) $varsayilan;
	}
	return time() + max( 60, $expires_in );
}

function tilfy_jeton_suresi_doldu_mu( $bitis_anahtar, $tampon_sn = 300 ) {
	$bitis = (int) tilfy_ayar_al( $bitis_anahtar, '0' );
	if ( $bitis <= 0 ) {
		return true;
	}
	return time() >= ( $bitis - max( 0, (int) $tampon_sn ) );
}

function tilfy_log_islem_aktif_mi() {
	return tilfy_ayar_al( 'log_islem', '0' ) === '1';
}

function tilfy_log_debug_aktif_mi() {
	return tilfy_ayar_al( 'log_debug', '0' ) === '1';
}

function tilfy_varsayilan_icerik_gorunum() {
	$gorunum = sanitize_key( (string) tilfy_ayar_al( 'varsayilan_icerik_gorunum', 'liste' ) );
	return $gorunum === 'grid' ? 'grid' : 'liste';
}

function tilfy_capraz_sirali_arasi_varsayilan() {
	return max( 0, min( 1440, (int) tilfy_ayar_al( 'capraz_sirali_arasi_dakika', '80' ) ) );
}

function tilfy_ayar_al( $anahtar, $varsayilan = '' ) {
	$opts = get_option( 'tilfy_ayarlar', array() );
	if ( ! is_array( $opts ) ) {
		$opts = array();
	}
	if ( ! isset( $opts[ $anahtar ] ) ) {
		return $varsayilan;
	}
	$deger = $opts[ $anahtar ];
	if ( in_array( $anahtar, tilfy_gizli_anahtarlar(), true ) ) {
		return tilfy_gizli_coz( $deger );
	}
	return $deger;
}

function tilfy_ayar_kaydet( $girdi ) {
	$mevcut = get_option( 'tilfy_ayarlar', array() );
	foreach ( tilfy_ayar_anahtarlari() as $anahtar ) {
		if ( ! array_key_exists( $anahtar, $girdi ) ) {
			continue;
		}
		$deger = $girdi[ $anahtar ];
		if ( is_string( $deger ) ) {
			$deger = sanitize_text_field( $deger );
		}
		if ( in_array( $anahtar, tilfy_gizli_anahtarlar(), true ) && $deger !== '' ) {
			$sifreli = tilfy_gizli_sifrele( $deger );
			if ( $sifreli === '' ) {
				continue;
			}
			$deger = $sifreli;
		}
		$mevcut[ $anahtar ] = $deger;
	}
	update_option( 'tilfy_ayarlar', $mevcut, false );
	return $mevcut;
}

function tilfy_ayar_maskeli( $anahtar ) {
	$deger = tilfy_ayar_al( $anahtar );
	if ( $deger === '' ) {
		return '';
	}
	if ( strlen( $deger ) <= 8 ) {
		return '********';
	}
	return substr( $deger, 0, 4 ) . str_repeat( '*', 12 ) . substr( $deger, -4 );
}

function tilfy_baglanti_durumu() {
	$durumlar = array();
	$meta_jeton = tilfy_ayar_al( 'meta_erisim_jetonu' );
	$durumlar['instagram'] = array(
		'bagli'      => $meta_jeton !== '' && tilfy_ayar_al( 'meta_instagram_id' ) !== '',
		'api'        => true,
		'istatistik' => true,
	);
	$durumlar['facebook'] = array(
		'bagli'      => $meta_jeton !== '' && tilfy_ayar_al( 'meta_sayfa_id' ) !== '',
		'api'        => true,
		'istatistik' => true,
	);
	$yt_jeton = tilfy_ayar_al( 'youtube_yenileme_jetonu' ) !== '' || tilfy_ayar_al( 'youtube_erisim_jetonu' ) !== '';
	$durumlar['youtube'] = array(
		'bagli'      => $yt_jeton && tilfy_ayar_al( 'youtube_kanal_id' ) !== '',
		'api'        => true,
		'istatistik' => true,
	);
	$li = tilfy_ayar_al( 'linkedin_erisim_jetonu' ) !== '';
	$durumlar['linkedin'] = array(
		'bagli'      => $li,
		'api'        => $li,
		'istatistik' => false,
	);
	$durumlar['tiktok'] = array(
		'bagli'      => false,
		'api'        => false,
		'istatistik' => false,
	);
	$tiktok_api = tilfy_ayar_al( 'tiktok_erisim_jetonu' ) !== '' && tilfy_ayar_al( 'tiktok_open_id' ) !== '';
	$durumlar['tiktok'] = array(
		'bagli'      => $tiktok_api || tilfy_ayar_al( 'tiktok_istemci_anahtar' ) !== '',
		'api'        => $tiktok_api,
		'istatistik' => false,
	);
	$threads_api = tilfy_ayar_al( 'threads_erisim_jetonu' ) !== '' && tilfy_ayar_al( 'threads_kullanici_id' ) !== '';
	$durumlar['threads'] = array(
		'bagli'      => $threads_api,
		'api'        => $threads_api,
		'istatistik' => false,
	);
	$wp_aktif = function_exists( 'tilfy_wordpress_kaynak_aktif_mi' ) && tilfy_wordpress_kaynak_aktif_mi();
	$durumlar['wordpress'] = array(
		'bagli'      => $wp_aktif,
		'api'        => $wp_aktif,
		'istatistik' => false,
	);
	return $durumlar;
}

function tilfy_threads_uygulama_hazir_mi() {
	return tilfy_ayar_al( 'threads_uygulama_id' ) !== '' && tilfy_ayar_al( 'threads_uygulama_gizli' ) !== '';
}

function tilfy_meta_graph_surum_normalize( $ham ) {
	$ham = trim( (string) $ham );
	if ( $ham === '' ) {
		return '';
	}
	if ( preg_match( '/^v\d+\.\d+$/', $ham ) ) {
		return $ham;
	}
	if ( preg_match( '/^v(\d+)$/', $ham, $m ) ) {
		return 'v' . $m[1] . '.0';
	}
	if ( preg_match( '/^(\d+)\.0$/', $ham, $m ) ) {
		return 'v' . $m[1] . '.0';
	}
	return '';
}

function tilfy_meta_graph_surum() {
	$kayitli = tilfy_meta_graph_surum_normalize( tilfy_ayar_al( 'meta_graph_surum', '' ) );
	if ( $kayitli !== '' ) {
		return $kayitli;
	}
	return defined( 'TILFY_META_GRAPH_SURUM' ) ? TILFY_META_GRAPH_SURUM : 'v25.0';
}

function tilfy_meta_graph_url( $uc = '' ) {
	$base = 'https://graph.facebook.com/' . tilfy_meta_graph_surum();
	if ( $uc === '' || $uc === null ) {
		return $base;
	}
	return $base . '/' . ltrim( (string) $uc, '/' );
}

function tilfy_meta_graph_video_url( $uc ) {
	return 'https://graph-video.facebook.com/' . tilfy_meta_graph_surum() . '/' . ltrim( (string) $uc, '/' );
}

function tilfy_meta_oauth_dialog_url() {
	return 'https://www.facebook.com/' . tilfy_meta_graph_surum() . '/dialog/oauth';
}

function tilfy_ayar_jeton_input( $anahtar ) {
	tilfy_ayar_input( $anahtar, 'textarea' );
}

function tilfy_ayar_jeton_durumu_goster( $anahtar ) {
	tilfy_ayar_jeton_input( $anahtar );
}

function tilfy_ayar_input( $anahtar, $tip = 'text' ) {
	$mevcut = tilfy_ayar_al( $anahtar );
	$sinif  = 'tilfy-filtre-kontrol';
	$gizli  = in_array( $anahtar, tilfy_gizli_anahtarlar(), true );
	if ( $gizli ) {
		$sinif .= ' tilfy-ayar-gizli-metin';
		$mevcut = $mevcut !== '' ? tilfy_ayar_maskeli( $anahtar ) : '';
	}
	if ( $tip === 'textarea' ) {
		echo '<textarea name="' . esc_attr( $anahtar ) . '" rows="3" class="' . esc_attr( $sinif ) . '" autocomplete="off" spellcheck="false" placeholder="' . esc_attr( $gizli ? 'Degistirmek icin yeni deger yazin' : '' ) . '">' . esc_textarea( $mevcut ) . '</textarea>';
		return;
	}
	echo '<input type="text" name="' . esc_attr( $anahtar ) . '" value="' . esc_attr( $mevcut ) . '" class="' . esc_attr( $sinif ) . '" autocomplete="off" spellcheck="false"' . ( $gizli ? ' placeholder="Degistirmek icin yeni deger yazin"' : '' ) . ' />';
}
