<?php
/**
 * Manejo del cron diario de Compibot.
 *
 * Este archivo programa un evento cron que se ejecuta diariamente para recopilar y enviar
 * información del CMS del usuario al servidor.
 *
 * @package Compibot
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Programa el evento cron que se ejecuta diariamente.
 *
 * @return void
 */
function compibot_register_daily_data_cron_event() {
	if ( ! wp_next_scheduled( 'compibot_daily_cms_data_cron' ) ) {
		$timestamp = strtotime( '02:00:00' );
		wp_schedule_event( $timestamp, 'daily', 'compibot_daily_cms_data_cron' );
	}
}
register_activation_hook( __FILE__, 'compibot_register_daily_data_cron_event' );

/**
 * Desactiva el evento cron cuando se desactiva el plugin.
 *
 * @return void
 */
function compibot_remove_daily_data_cron_event() {
	$timestamp = wp_next_scheduled( 'compibot_daily_cms_data_cron' );
	if ( $timestamp ) {
		wp_unschedule_event( $timestamp, 'compibot_daily_cms_data_cron' );
	}
}
register_deactivation_hook( __FILE__, 'compibot_remove_daily_data_cron_event' );

/**
 * Ejecuta el evento cron diario para recopilar y enviar datos del CMS.
 *
 * @return void
 */
function compibot_execute_daily_cms_data() {
	$daily_cms_data = new CompibotDailyCmsData();
	$daily_cms_data->execute();
}
add_action( 'compibot_daily_cms_data_cron', 'compibot_execute_daily_cms_data' );
