<?php
/**
 * Widget Elementor: Floremoria
 *
 * Widget per l'ordine di composizioni floreali tramite Floremoria
 *
 * @package AnnunciFunebri
 * @since 4.8.0
 */

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

class ANNFU_Widget_Floremoria extends ANNFU_Widget_Base {

    public function get_name() {
        return 'annfu_floremoria';
    }

    public function get_title() {
        return __('Floremoria (Fiori)', 'annuncifunebri-onoranza');
    }

    public function get_icon() {
        return 'eicon-cart';
    }

    public function get_script_depends() {
        return array('annuncifunebri-fiori');
    }

    protected function ha_dati_widget() {
        $dati = $this->ottieni_dati_annuncio();
        if (empty($dati) || !is_array($dati)) {
            return false;
        }

        $annuncio = isset($dati['data']) ? $dati['data'] : $dati;

        // Verifica che ci siano i dati necessari per Floremoria
        return !empty($annuncio['dataFunerale']) && !empty($annuncio['luogoCerimonia']);
    }

    protected function register_controls() {
        // === TAB CONTENT ===
        $this->start_controls_section(
            'sezione_contenuto',
            [
                'label' => __('Contenuto', 'annuncifunebri-onoranza'),
                'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
            ]
        );

        $this->add_control(
            'titolo',
            [
                'label' => __('Titolo', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => 'Composizioni floreali eleganti e rispettose',
                'placeholder' => 'Composizioni floreali eleganti e rispettose',
            ]
        );

        $this->add_control(
            'descrizione',
            [
                'label' => __('Descrizione', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::TEXTAREA,
                'default' => 'Da questa sezione è possibile ordinare fiori e composizioni floreali che verranno consegnati direttamente nella destinazione selezionata.',
                'rows' => 3,
            ]
        );

        $this->add_control(
            'mostra_countdown',
            [
                'label' => __('Mostra Countdown', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::SWITCHER,
                'label_on' => __('Sì', 'annuncifunebri-onoranza'),
                'label_off' => __('No', 'annuncifunebri-onoranza'),
                'return_value' => 'yes',
                'default' => 'yes',
            ]
        );

        $this->add_control(
            'testo_consegna_chiesa',
            [
                'label' => __('Testo Pulsante Chiesa', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => 'Ordina dei fiori (consegna in Chiesa)',
            ]
        );

        $this->add_control(
            'testo_consegna_casa_funeraria',
            [
                'label' => __('Testo Pulsante Casa Funeraria', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => 'Ordina dei fiori (consegna in Casa Funeraria)',
            ]
        );

        $this->add_control(
            'testo_consegna_cimitero',
            [
                'label' => __('Testo Pulsante Cimitero', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::TEXT,
                'default' => 'Ordina dei fiori (consegna in cimitero)',
            ]
        );

        $this->end_controls_section();

        // === TAB STYLE ===
        $this->start_controls_section(
            'sezione_stile',
            [
                'label' => __('Stile', 'annuncifunebri-onoranza'),
                'tab' => \Elementor\Controls_Manager::TAB_STYLE,
            ]
        );

        $this->add_group_control(
            \Elementor\Group_Control_Typography::get_type(),
            [
                'name' => 'tipografia_titolo',
                'label' => __('Tipografia Titolo', 'annuncifunebri-onoranza'),
                'selector' => '{{WRAPPER}} .annfu-floremoria-titolo',
            ]
        );

        $this->add_control(
            'colore_titolo',
            [
                'label' => __('Colore Titolo', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::COLOR,
                'selectors' => [
                    '{{WRAPPER}} .annfu-floremoria-titolo' => 'color: {{VALUE}};',
                ],
            ]
        );

        $this->add_group_control(
            \Elementor\Group_Control_Typography::get_type(),
            [
                'name' => 'tipografia_descrizione',
                'label' => __('Tipografia Descrizione', 'annuncifunebri-onoranza'),
                'selector' => '{{WRAPPER}} .annfu-floremoria-descrizione',
            ]
        );

        $this->add_control(
            'colore_descrizione',
            [
                'label' => __('Colore Descrizione', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::COLOR,
                'selectors' => [
                    '{{WRAPPER}} .annfu-floremoria-descrizione' => 'color: {{VALUE}};',
                ],
            ]
        );

        $this->add_control(
            'colore_pulsanti',
            [
                'label' => __('Colore Pulsanti', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::COLOR,
                'selectors' => [
                    '{{WRAPPER}} .btn-floremoria' => 'background-color: {{VALUE}};',
                ],
            ]
        );

        $this->add_control(
            'colore_testo_pulsanti',
            [
                'label' => __('Colore Testo Pulsanti', 'annuncifunebri-onoranza'),
                'type' => \Elementor\Controls_Manager::COLOR,
                'selectors' => [
                    '{{WRAPPER}} .btn-floremoria' => 'color: {{VALUE}};',
                ],
            ]
        );

        $this->end_controls_section();
    }

    protected function render() {
        $settings = $this->get_settings_for_display();

        if (\Elementor\Plugin::$instance->editor->is_edit_mode() && !$this->ha_dati_widget()) {
            $this->render_placeholder_editor('eicon-heart', __('Floremoria (Fiori)', 'annuncifunebri-onoranza'), __('Widget per ordinare fiori tramite Floremoria', 'annuncifunebri-onoranza'));
            return;
        }

        if (!$this->ha_dati_widget()) {
            return;
        }

        $dati = $this->ottieni_dati_annuncio();
        $annuncio = isset($dati['data']) ? $dati['data'] : $dati;

        $titolo = $settings['titolo'];
        $descrizione = $settings['descrizione'];
        $mostra_countdown = $settings['mostra_countdown'] === 'yes';
        $testo_chiesa = $settings['testo_consegna_chiesa'];
        $testo_casa_funeraria = $settings['testo_consegna_casa_funeraria'];
        $testo_cimitero = $settings['testo_consegna_cimitero'];

        ?>
        <div class="annfu-floremoria-wrapper">
            <?php if (!empty($titolo)): ?>
                <h4 class="annfu-floremoria-titolo"><?php echo esc_html($titolo); ?></h4>
            <?php endif; ?>

            <?php if (!empty($descrizione)): ?>
                <p class="annfu-floremoria-descrizione">
                    <?php echo esc_html($descrizione); ?>
                    (Servizio erogato in collaborazione con Floremoria<sup>&reg;</sup>)
                </p>
            <?php endif; ?>

            <div id="consegna-funerale" class="mb-3">
                <?php if ($mostra_countdown && !empty($annuncio['dataOraScadenzaFiori'])): ?>
                    <p>Per poter inviare i fiori in tempo per il funerale hai ancora a disposizione <span id="countdown-fiori"></span></p>
                <?php endif; ?>

                <a href="#"
                   id="floremoria-funerale"
                   class="btn btn-default btn-fiori btn-floremoria mb-3 annfu_invio"
                   <?php echo wp_is_mobile() ? 'style="width: 100%"' : '' ?>
                   data-slug="<?php echo esc_attr($annuncio['slug']); ?>"
                   data-nome="<?php echo esc_attr($annuncio['nome']); ?>"
                   data-cognome="<?php echo esc_attr($annuncio['cognome']); ?>"
                   data-morte="<?php echo esc_attr($annuncio['dataMorte']); ?>T00:00:00"
                   data-nascita="<?php echo is_null($annuncio['dataNascita']) ? '' : esc_attr($annuncio['dataNascita']) . 'T00:00:00'; ?>"
                   data-url="<?php echo esc_url($annuncio['url']); ?>"
                   data-scadenza="<?php echo esc_attr($annuncio['dataOraScadenzaFiori']); ?>"
                   data-consegna="<?php echo esc_attr($annuncio['luogoCerimonia']); ?>"
                   data-ora-consegna="Consegna per il funerale del <?php echo esc_attr($annuncio['dataFuneraleIta']); ?> ore <?php echo esc_attr($annuncio['oraFunerale']); ?>"
                   data-pulsante="chiesa"
                ><?php echo esc_html($testo_chiesa); ?></a>

                <?php if (!empty($annuncio['stanzaCasaFuneraria']) && count($annuncio['stanzaCasaFuneraria']) > 0): ?>
                    <?php
                    $ora = explode(':', $annuncio['oraFunerale']);
                    $ora_consegna = str_pad(intval($ora[0]) - 1, 2, '0') . ':' . $ora[1];
                    ?>
                    <a href="#"
                       id="floremoria-casa-funeraria"
                       class="btn btn-default btn-fiori btn-floremoria mb-3 annfu_invio"
                       <?php echo wp_is_mobile() ? 'style="width: 100%"' : '' ?>
                       data-slug="<?php echo esc_attr($annuncio['slug']); ?>"
                       data-nome="<?php echo esc_attr($annuncio['nome']); ?>"
                       data-cognome="<?php echo esc_attr($annuncio['cognome']); ?>"
                       data-morte="<?php echo esc_attr($annuncio['dataMorte']); ?>T00:00:00"
                       data-nascita="<?php echo is_null($annuncio['dataNascita']) ? '' : esc_attr($annuncio['dataNascita']) . 'T00:00:00'; ?>"
                       data-url="<?php echo esc_url($annuncio['url']); ?>"
                       data-scadenza="<?php echo esc_attr($annuncio['dataOraScadenzaFiori']); ?>"
                       data-consegna="Casa Funeraria San Marco - <?php echo esc_attr($annuncio['onoranzaFunebre']['indirizzo']); ?>"
                       data-ora-consegna="Consegna prima possibile (massimo <?php echo esc_attr($annuncio['dataFuneraleIta']); ?> ore <?php echo esc_attr($ora_consegna); ?>)"
                       data-pulsante="casa funeraria"
                    ><?php echo esc_html($testo_casa_funeraria); ?></a>
                <?php endif; ?>
            </div>

            <div id="consegna-cimitero" class="annfu_none">
                <a href="#"
                   id="floremoria-cimitero"
                   class="btn btn-default btn-fiori btn-floremoria annfu_invio"
                   data-slug="<?php echo esc_attr($annuncio['slug']); ?>"
                   data-nome="<?php echo esc_attr($annuncio['nome']); ?>"
                   data-cognome="<?php echo esc_attr($annuncio['cognome']); ?>"
                   data-morte="<?php echo esc_attr($annuncio['dataMorte']); ?>T00:00:00"
                   data-nascita="<?php echo is_null($annuncio['dataNascita']) ? '' : esc_attr($annuncio['dataNascita']) . 'T00:00:00'; ?>"
                   data-url="<?php echo esc_url($annuncio['url']); ?>"
                   data-consegna="<?php echo esc_attr($annuncio['posizioneCimiteroCompleta']); ?>"
                   data-pulsante="cimitero"
                ><?php echo esc_html($testo_cimitero); ?></a>
            </div>

            <div class="avviso-redirect annfu_none"></div>
        </div>
        <?php
    }
}
