<?php
/**
 * Field group « Fiche formulaire HubSpot » (group_cvb_fiche_formulaire_hubspot).
 * GraphQL : formulaireHubspot.ficheFormulaireHubspot { … }.
 */

defined('ABSPATH') || exit;

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

function cvb_register_fiche_formulaire_hubspot_group(): void {
    if (!function_exists('acf_add_local_field_group')) {
        return;
    }

    $p = 'field_cvb_fiche_formulaire_hubspot';

    acf_add_local_field_group([
        'key'    => 'group_cvb_fiche_formulaire_hubspot',
        'title'  => 'Fiche formulaire HubSpot',
        'fields' => [
            cvb_field("{$p}_code", 'code', 'Code interne', 'text', [
                'instructions' => 'Identifiant stable côté front : diagnostic, contact, applicateur, livre_blanc, estimation, simulateur_roi.',
            ]),
            cvb_field("{$p}_portal_id", 'portal_id', 'Portal ID HubSpot', 'text', [
                'instructions' => 'Numéro du compte HubSpot client.',
            ]),
            cvb_field("{$p}_form_guid", 'form_guid', 'Form GUID HubSpot', 'text', [
                'instructions' => 'Identifiant du formulaire HubSpot client.',
            ]),
            cvb_select("{$p}_mode", 'mode', 'Mode de rendu', [
                'api'   => 'Soumission API publique',
                'embed' => 'Embed HubSpot',
            ], 'api'),
            cvb_repeater("{$p}_champs", 'champs', 'Champs envoyés', [
                cvb_field("{$p}_champs_cle_locale", 'cle_locale', 'Clé locale', 'text', [
                    'instructions' => 'Nom de champ dans le code front : email, firstName, company, etc.',
                ]),
                cvb_field("{$p}_champs_label", 'label', 'Libellé', 'text'),
                cvb_field("{$p}_champs_nom_interne", 'nom_interne', 'Nom interne HubSpot', 'text'),
                cvb_select("{$p}_champs_object_type_id", 'object_type_id', 'Object type HubSpot', [
                    '0-1' => 'Contact (0-1)',
                    '0-2' => 'Entreprise (0-2)',
                ], '0-1'),
                cvb_field("{$p}_champs_actif", 'actif', 'Actif', 'true_false', [
                    'ui'            => 1,
                    'default_value' => 1,
                ]),
                cvb_field("{$p}_champs_requis", 'requis', 'Requis', 'true_false', [
                    'ui'            => 1,
                    'default_value' => 0,
                ]),
            ], [
                'layout'       => 'row',
                'button_label' => 'Ajouter un champ',
            ]),
        ],
        'location' => [
            [['param' => 'post_type', 'operator' => '==', 'value' => 'formulaire_hubspot']],
        ],
        'position'           => 'normal',
        'menu_order'         => 1,
        'show_in_graphql'    => 1,
        'graphql_field_name' => 'ficheFormulaireHubspot',
    ]);
}
