<?php
/**
 * Theme Functions
 * * Description: Natsaa-teeman päätoiminnallisuudet.
 * * Versio 1.3: Lisätty automaattinen välimuistin ohitus (Cache Busting) style.css-tiedostolle.
 * Nyt tyylitiedoston versionumero perustuu tiedoston tallennusaikaan.
 * * Author: Markus Haapasaari / Kaupunkilehti Kalajokinen
 * Version: 1.3
 * * Tehty <3 Kalajoella.
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Estetään suora pääsy tiedostoon
}

/**
 * 1. TEEMAN ALUSTUS JA ASETUKSET
 * ======================================================
 */
function natsaa_setup() {
    // Lisätään tuki sivun otsikoille (SEO)
    add_theme_support( 'title-tag' );

    // Lisätään tuki artikkelikuville (Profiilikuvat yms.)
    add_theme_support( 'post-thumbnails' );

    // HTML5-tuki lomakkeille ja listoille
    add_theme_support( 'html5', array(
        'search-form',
        'comment-form',
        'comment-list',
        'gallery',
        'caption',
        'style',
        'script',
    ) );
}
add_action( 'after_setup_theme', 'natsaa_setup' );

/**
 * 2. TYYLIEN JA SKRIPTIEN LATAUS
 * ======================================================
 */
function natsaa_scripts() {
    // 1. Ladataan Google Fonts (Inter + Playfair Display)
    // Nämä tuovat sovellukseen sen arvokkaan ja modernin ilmeen.
    wp_enqueue_style( 'natsaa-google-fonts', 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;800&family=Playfair+Display:ital,wght@0,600;0,800;1,600&display=swap', array(), null );

    // 2. Ladataan päätyylitiedosto (style.css) ÄLYKKÄÄLLÄ VÄLIMUISTIN HALLINNALLA
    // Haetaan tiedoston polku
    $style_path = get_stylesheet_directory() . '/style.css';

    // Määritetään versio tiedoston muokkausajan (timestamp) perusteella.
    // Jos tiedostoa ei löydy, käytetään versiota 1.0.
    $style_ver = file_exists( $style_path ) ? filemtime( $style_path ) : '1.0';

    wp_enqueue_style( 'natsaa-style', get_stylesheet_uri(), array(), $style_ver );

    // Poistetaan WordPressin oletusblokkikirjaston tyylit (Gutenberg)
    // Haluamme pitää koodin puhtaana ja latausajat minimissä.
    wp_dequeue_style( 'wp-block-library' );
    wp_dequeue_style( 'wp-block-library-theme' );
    wp_dequeue_style( 'global-styles' );

    // Ladataan Swipe Engine -logiikka vain kirjautuneille
    if ( is_user_logged_in() ) {
        wp_enqueue_script(
            'natsaa-swipe-engine',
            get_template_directory_uri() . '/assets/js/swipe-engine.js',
            array(), // Ei riippuvuuksia (Vanilla JS)
            '1.0.0',
            true // Ladataan footerissa
        );
    }
}
add_action( 'wp_enqueue_scripts', 'natsaa_scripts' );

/**
 * 3. WORDPRESSIN JÄLKIEN PIILOTUS (CLEANUP)
 * ======================================================
 */
function natsaa_cleanup_head() {
    remove_action( 'wp_head', 'wp_generator' );
    remove_action( 'wp_head', 'wlwmanifest_link' );
    remove_action( 'wp_head', 'rsd_link' );
    remove_action( 'wp_head', 'wp_shortlink_wp_head' );
    remove_action( 'wp_head', 'feed_links', 2 );
    remove_action( 'wp_head', 'feed_links_extra', 3 );
    remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
    remove_action( 'wp_print_styles', 'print_emoji_styles' );
    remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
    remove_action( 'admin_print_styles', 'print_emoji_styles' );
}
add_action( 'init', 'natsaa_cleanup_head' );

// Poistetaan versionumero muista skripteistä, mutta EI meidän omasta style.css:stä
// (koska hallitsemme sen versiota yllä natsaa_scripts-funktiossa).
function natsaa_remove_version_scripts_styles( $src ) {
    if ( strpos( $src, 'ver=' ) && ! strpos( $src, 'style.css' ) ) {
        $src = remove_query_arg( 'ver', $src );
    }
    return $src;
}
add_filter( 'style_loader_src', 'natsaa_remove_version_scripts_styles', 9999 );
add_filter( 'script_loader_src', 'natsaa_remove_version_scripts_styles', 9999 );

// Piilotetaan Admin Bar kaikilta
add_filter( 'show_admin_bar', '__return_false' );

/**
 * 4. PWA META TAGIT
 * ======================================================
 */
function natsaa_pwa_meta() {
    ?>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0, viewport-fit=cover">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
    <meta name="theme-color" content="#000000"> <meta name="application-name" content="Natsaa">
    <meta name="format-detection" content="telephone=no">
    <?php
}
add_action( 'wp_head', 'natsaa_pwa_meta', 1 );

/**
 * 5. KIRJAUTUMISSIVUN KUSTOMOINTI
 * ======================================================
 */
function natsaa_login_logo() {
    ?>
    <style type="text/css">
        @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@800&display=swap');

        body.login {
            background-color: #000000;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        #login {
            padding: 0;
            width: 100%;
            max-width: 400px;
        }
        #login h1 a, .login h1 a {
            background-image: none;
            color: #CCFF00; /* Acid Lime */
            text-indent: 0;
            width: auto;
            height: auto;
            font-family: 'Playfair Display', serif;
            font-weight: 800;
            font-size: 42px;
            letter-spacing: -1px;
            text-transform: lowercase;
        }
        #login h1 a:after {
            content: 'natsaa.';
        }
        .login form {
            background: rgba(255, 255, 255, 0.05) !important;
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1) !important;
            box-shadow: none !important;
            border-radius: 0 !important;
            padding: 40px 24px !important;
        }
        .login label {
            color: #888;
            font-family: -apple-system, sans-serif;
            text-transform: uppercase;
            font-size: 10px;
            letter-spacing: 1px;
        }
        .login input[type=text], .login input[type=password] {
            background: transparent !important;
            border: none !important;
            border-bottom: 1px solid #333 !important;
            color: #fff !important;
            font-size: 18px !important;
            padding-left: 0 !important;
            box-shadow: none !important;
            border-radius: 0 !important;
        }
        .login input:focus {
            border-bottom-color: #CCFF00 !important;
        }
        .wp-core-ui .button-primary {
            background-color: #CCFF00 !important;
            border: none !important;
            border-radius: 0 !important;
            color: #000 !important;
            font-weight: 900 !important;
            text-transform: uppercase;
            letter-spacing: 1px;
            padding: 12px 30px !important;
            height: auto !important;
            width: 100%;
            margin-top: 20px;
            transition: all 0.2s;
        }
        .wp-core-ui .button-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 20px rgba(204, 255, 0, 0.2);
        }
        .login #backtoblog, .login #nav {
            text-align: center;
        }
        .login #backtoblog a, .login #nav a {
            color: #444 !important;
        }
        .login #backtoblog a:hover, .login #nav a:hover {
            color: #CCFF00 !important;
        }
    </style>
    <?php
}
add_action( 'login_enqueue_scripts', 'natsaa_login_logo' );

function natsaa_login_logo_url() {
    return home_url();
}
add_filter( 'login_headerurl', 'natsaa_login_logo_url' );

function natsaa_login_logo_url_title() {
    return 'Natsaa - Löydä seuraa';
}
add_filter( 'login_headertext', 'natsaa_login_logo_url_title' );

function natsaa_mime_types( $mimes ) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter( 'upload_mimes', 'natsaa_mime_types' );

function natsaa_disable_users_rest( $endpoints ) {
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
}
add_filter( 'rest_endpoints', 'natsaa_disable_users_rest' );

?>
