<?php
/**
 * Page d'options « Options du site » (slug options-site, capability edit_posts).
 * GraphQL : root optionsSite { options { … } } — le field group à 6 onglets
 * est exposé sous le champ `options` du type OptionsSite.
 */

defined('ABSPATH') || exit;

add_action('acf/init', 'cvb_register_options_site');

function cvb_register_options_site(): void {
    if (!function_exists('acf_add_options_page') || !function_exists('acf_add_local_field_group')) {
        return;
    }

    acf_add_options_page([
        'page_title'        => 'Options du site',
        'menu_title'        => 'Options du site',
        'menu_slug'         => 'options-site',
        'capability'        => 'edit_posts',
        'redirect'          => false,
        'icon_url'          => 'dashicons-admin-settings',
        'show_in_graphql'   => true,
        'graphql_type_name' => 'OptionsSite',
    ]);

    $p = 'field_cvb_options';

    acf_add_local_field_group([
        'key'    => 'group_cvb_options',
        'title'  => 'Options du site',
        'fields' => [

            // ── Onglet 1 : Navigation ────────────────────────────────────
            cvb_tab("{$p}_tab_navigation", 'Navigation'),
            cvb_repeater("{$p}_menu_principal", 'menu_principal', 'Menu principal', [
                cvb_field("{$p}_menu_principal_label", 'label', 'Label', 'text'),
                cvb_field("{$p}_menu_principal_lien", 'lien', 'Lien', 'text'),
                cvb_repeater("{$p}_menu_principal_sous_items", 'sous_items', 'Sous-items', [
                    cvb_field("{$p}_menu_principal_sous_items_label", 'label', 'Label', 'text'),
                    cvb_field("{$p}_menu_principal_sous_items_lien", 'lien', 'Lien', 'text'),
                    cvb_field("{$p}_menu_principal_sous_items_description", 'description', 'Description', 'text'),
                ]),
            ], ['collapsed' => "{$p}_menu_principal_label"]),
            cvb_clone_cta('options', 'cta_navbar', 'CTA navbar'),

            // ── Onglet 2 : Footer ────────────────────────────────────────
            cvb_tab("{$p}_tab_footer", 'Footer'),
            cvb_repeater("{$p}_colonnes_footer", 'colonnes_footer', 'Colonnes du footer', [
                cvb_field("{$p}_colonnes_footer_titre", 'titre', 'Titre', 'text'),
                cvb_repeater("{$p}_colonnes_footer_liens", 'liens', 'Liens', [
                    cvb_field("{$p}_colonnes_footer_liens_label", 'label', 'Label', 'text'),
                    cvb_field("{$p}_colonnes_footer_liens_lien", 'lien', 'Lien', 'text'),
                ], ['layout' => 'table']),
            ]),
            cvb_field("{$p}_texte_legal", 'texte_legal', 'Texte légal', 'textarea', ['rows' => 3]),
            cvb_repeater("{$p}_reseaux_sociaux", 'reseaux_sociaux', 'Réseaux sociaux', [
                cvb_select("{$p}_reseaux_sociaux_reseau", 'reseau', 'Réseau', [
                    'linkedin'  => 'LinkedIn',
                    'youtube'   => 'YouTube',
                    'instagram' => 'Instagram',
                    'x'         => 'X',
                ], 'linkedin'),
                cvb_field("{$p}_reseaux_sociaux_url", 'url', 'URL', 'url'),
            ], ['layout' => 'table']),

            // ── Onglet 3 : Coordonnées ───────────────────────────────────
            cvb_tab("{$p}_tab_coordonnees", 'Coordonnées'),
            cvb_field("{$p}_telephone", 'telephone', 'Téléphone', 'text'),
            cvb_field("{$p}_email", 'email', 'Email', 'text'),
            cvb_field("{$p}_adresse", 'adresse', 'Adresse', 'textarea', ['rows' => 3]),
            cvb_field("{$p}_horaires", 'horaires', 'Horaires', 'text'),

            // ── Onglet 4 : CTA globaux ───────────────────────────────────
            cvb_tab("{$p}_tab_cta_globaux", 'CTA globaux'),
            cvb_field("{$p}_sticky_cta_label", 'sticky_cta_label', 'Label du sticky CTA', 'text'),
            cvb_field("{$p}_sticky_cta_lien", 'sticky_cta_lien', 'Lien du sticky CTA', 'text'),
            cvb_repeater("{$p}_reassurances_defaut", 'reassurances_defaut', 'Réassurances par défaut', [
                cvb_field("{$p}_reassurances_defaut_texte", 'texte', 'Texte', 'text'),
            ], ['layout' => 'table']),

            // ── Onglet 5 : Preuves ───────────────────────────────────────
            cvb_tab("{$p}_tab_preuves", 'Preuves'),
            cvb_repeater("{$p}_logos_clients", 'logos_clients', 'Logos clients', [
                cvb_image("{$p}_logos_clients_image", 'image', 'Image'),
                cvb_field("{$p}_logos_clients_nom", 'nom', 'Nom', 'text'),
            ], ['collapsed' => "{$p}_logos_clients_nom"]),
            cvb_repeater("{$p}_logos_presse", 'logos_presse', 'Logos presse', [
                cvb_image("{$p}_logos_presse_image", 'image', 'Image'),
                cvb_field("{$p}_logos_presse_nom", 'nom', 'Nom', 'text'),
                cvb_field("{$p}_logos_presse_lien", 'lien', 'Lien', 'text'),
            ], ['collapsed' => "{$p}_logos_presse_nom"]),
            cvb_repeater("{$p}_chiffres_cles", 'chiffres_cles', 'Chiffres clés', [
                cvb_field("{$p}_chiffres_cles_value", 'value', 'Valeur', 'text'),
                cvb_field("{$p}_chiffres_cles_label", 'label', 'Label', 'text'),
            ], ['layout' => 'table']),

            // ── Onglet 6 : SEO défaut ────────────────────────────────────
            cvb_tab("{$p}_tab_seo_defaut", 'SEO défaut'),
            cvb_image("{$p}_og_image_defaut", 'og_image_defaut', 'Image OG par défaut'),
            cvb_field("{$p}_suffixe_title", 'suffixe_title', 'Suffixe des titles', 'text', [
                'instructions' => 'Ex. « — Covalba », ajouté aux titres SEO.',
            ]),
        ],
        'location' => [
            [['param' => 'options_page', 'operator' => '==', 'value' => 'options-site']],
        ],
        'show_in_graphql'    => 1,
        'graphql_field_name' => 'options',
    ]);
}
