<?php
/**
 * Plugin Constants
 *
 * @category   WordPress_Plugin
 * @package    Common
 * @subpackage Constants
 * @author     miniOrange <info@miniorange.com>
 * @license    MIT/Expat
 * @link       https://plugins.miniorange.com/woocommerce-api-product-sync-with-woocommerce-rest-apis
 */

namespace MOWCPS\Common\Constants;

if ( ! defined( 'ABSPATH' ) ) {
	die;
}

/**
 * Plugin Constants
 */
class Plugin_Filters {

	// Filter constants.
	const FILTER_API_CALL_ALTERATION_FILTER     = 'mowcps_api_call_alteration_filter';
	const FILTER_ALTER_SUPPLIER_DATA            = 'mowcps_alter_supplier_data';
	const FILTER_ALTER_SUPPLIER_PAYLOAD         = 'mowcps_alter_supplier_payload';
	const FILTER_DATA_ALTERATION_FILTER         = 'mowcps_data_alteration_filter';
	const FILTER_ADD_SNS_THUMBNAIL_IMAGE        = 'mowcps_add_sns_thumbnail_image';
	const FILTER_PERFORM_ACTION_BEFORE_SYNC     = 'mowcps_perform_action_before_sync';
	const FILTER_ALTER_CONNECTION_ID            = 'mowcps_alter_connection_id';
	const FILTER_PRODUCT_DATA_FILTER            = 'mowcps_product_data_filter';
	const FILTER_SET_DISCARDING_PRODUCTS_FLAG   = 'mowcps_set_discarding_products_flag';
	const FILTER_START_DISCARDING_SYNC          = 'mowcps_start_discarding_sync';
	const FILTER_SUPPLIER_PROCESS_COMPLETION    = 'mowcps_supplier_process_completion';
	const FILTER_PRODUCT_TYPE_HANDLER           = 'mowcps_product_type_handler';
	const FILTER_SYNC_STRUCTURE_HOOK            = 'mowcps_sync_structure_hook';
	const FILTER_SYNC_STRUCTURE                 = 'mowcps_sync_structure';
	const FILTER_SYNC_OPERATIONS                = 'mowcps_sync_operations';
	const FILTER_PRODUCT_SAVE_FILTER            = 'mowcps_product_save_filter';
	const FILTER_PRODUCT_UPDATE_FILTER          = 'mowcps_product_update_filter';
	const FILTER_ALTER_PRODUCT_BEFORE_SAVE      = 'mowcps_alter_product_before_save';
	const FILTER_ALTER_PRODUCT_SYNC_AUDIT       = 'mowcps_alter_product_sync_audit';
	const FILTER_SET_LEFT_FIELDS                = 'mowcps_set_left_fields';
	const FILTER_UPDATE_PRO_PRODUCT             = 'mowcps_update_pro_product';
	const FILTER_UPGRADE_FRAMEWORK_HOOK         = 'mowcps_upgrade_framework_hook';
	const FILTER_SETTING_MODEL_OPERATIONS       = 'mowcps_setting_model_operations';
	const FILTER_SETTING_HANDLER_OPERATIONS     = 'mowcps_setting_handler_operations';
	const FILTER_PREVIEW_PRODUCTS_FETCH         = 'mowcps_preview_products_fetch';
	const FILTER_PREVIEW_ATTRIBUTE_MAPPING      = 'mowcps_preview_attribute_mapping';
	const FILTER_CREATE_ORDER_CONFIG            = 'mowcps_create_order_config';
	const FILTER_UPDATE_DEFAULT_ORDER_SYNC      = 'mowcps_update_default_order_sync';
	const FILTER_CATEGORY_ALTERATION_FILTER     = 'mowcps_category_alteration_filter';
	const FILTER_WC_CATEGORY_ALTERATION_FILTER  = 'mowcps_wc_category_alteration_filter';
	const FILTER_GET_NO_OF_SP                   = 'mowcps_get_no_of_sp';
	const FILTER_REFRESH_LICENSE                = 'mowcps_refresh_license';
	const FILTER_ALTER_DYNAMIC_PARAMS           = 'mowcps_alter_dynamic_params';
	const FILTER_MODIFY_STOCK_BEFORE_SET        = 'mowcps_modify_stock_before_set';
	const FILTER_LIMIT__PRODUCTS_FOR_SANDBOX    = 'mowcps_limit_products_for_sandbox';
	const FILTER_MANULLAY_CREATE_BACKUP_CRON    = 'mowcps_manually_create_backup_cron';
	const FILTER_CURRENT_DATA_ALTERATION_FILTER = 'mowcps_current_data_alteration_filter';
	const FILTER_SYNC_SINGLE_VARIANCE_AS_SIMPLE = 'mowcps_sync_single_variance_as_simple';

	const FILTER_RESOLVE_PRODUCT_ID_AFTER_META_LOOKUP = 'mowcps_resolve_product_id_after_meta_lookup';

	// Action hook constants (used with do_action).
	const ACTION_SUPPLIER_SETUP_COMPLETE = 'mowcps_supplier_setup_complete';

	// Filter event specifiers.
	const EVENT_ALTER_PRE_API_CALL_DATA                    = 'alter_pre_api_call_data';
	const EVENT_ALTER_PROCESSED_API_DATA                   = 'alter_processed_api_data';
	const EVENT_ALTER_PROCESSED_API_DATA_WITH_REQUEST     = 'alter_processed_api_data_with_request';
	const EVENT_SET_CUSTOM_FIELDS                          = 'set_custom_fields';
	const EVENT_ALTER_PRODUCTS_PRE_CATEGORY                = 'alter_products_pre_category';
	const EVENT_ALTER_PRODUCTS_CATEGORY                    = 'alter_products_category';
	const EVENT_FORM_CATEGORY_FOR_WOOCOMMERCE              = 'form_category_for_woocommerce';
	const POST_API_CALL_FILTER                             = 'post_api_call_filter';
	const EVENT_ALTER_HEADER_AND_BODY_POST_API_CALL_FILTER = 'alter_header_and_body_post_api_call_filter';
	const EVENT_VARIATION_PRODUCTS_DATA_ARRAY_INITIAL      = 'variation_products_data_array_initial';
	const EVENT_VARIABLE_PRODUCTS_DATA_ARRAY_INITIAL       = 'variable_products_data_array_initial';
	const EVENT_ALTER_PARENT_PRODUCT_DATA                  = 'alter_parent_product_data';
	const EVENT_ALTER_VARIATION_PRODUCT_DATA               = 'alter_variation_product_data';
	const EVENT_TRACK_UNIQUE_IDENTIFIER                    = 'track_unique_identifier';
	const EVENT_ALTER_INITIAL_AND_PREVIOUS_BATCH_VALUE     = 'alter_initial_and_previous_batch_value';
	const EVENT_ALTER_SYNC_END_STATUS                      = 'alter_sync_end_status';
	const EVENT_ALTER_SYNC_END_STATUS_FINAL                = 'alter_sync_end_status_final';
	const EVENT_ALTER_BATCH_NUMBER                         = 'alter_batch_number';
	const EVENT_SUPPLIER_BATCH_COMPLETION                  = 'supplier_batch_completion';
	const EVENT_GET_CUSTOM_FIELDS                          = 'get_custom_fields';
	const EVENT_ALTER_PRODUCT_IMAGES                       = 'alter_product_images';
	const EVENT_ADD_SNS_THUMBNAIL_IMAGE                    = 'add_sns_thumbnail_image';
	const EVENT_SIMPLE_PRODUCTS_DATA_ARRAY_INITIAL         = 'simple_products_data_array_initial';
	const EVENT_GET_REGULAR_PRICE                          = 'get_regular_price';
	const EVENT_UPDATE_PRODUCT_DATA                        = 'update_product_data';
	const EVENT_OUTBOUND_DATA_ALTERATION                   = 'outbound_data_alteration';
	const EVENT_HANDLE_SCHEDULE_CREATE                     = 'handle_schedule_create';
	const EVENT_HANDLE_SCHEDULE_DATA_UPDATE                = 'handle_schedule_data_update';
	const EVENT_HANDLE_SCHEDULE_SYNC_QUEUE_UPDATE          = 'handle_schedule_sync_queue_update';
	const EVENT_HANDLE_SCHEDULE_CONNECTION_UPDATE          = 'handle_schedule_connection_update';
	const EVENT_HANDLE_SCHEDULE_ACTIVATION_UPDATE          = 'handle_schedule_activation_update';
	const EVENT_HANDLE_SCHEDULE_DELETION                   = 'handle_schedule_deletion';
	const EVENT_HANDLE_FILTER_CREATE                       = 'handle_filter_create';
	const EVENT_HANDLE_FILTER_DATA_UPDATE                  = 'handle_filter_data_update';
	const EVENT_HANDLE_FILTER_CONNECTION_UPDATE            = 'handle_filter_connection_update';
	const EVENT_HANDLE_FILTER_DELETION                     = 'handle_filter_deletion';
	const EVENT_HANDLE_SETTING_GET_ALL_ENHANCEMENT         = 'handle_setting_get_all_enhancement';
	const EVENT_PREVIEW_FILTER_IDENTIFIERS                 = 'preview_filter_identifiers';
	const EVENT_ALTER_DYNAMIC_PARAMS                       = 'alter_dynamic_params';
	const EVENT_MODIFY_STOCK_QUANTITY                      = 'modify_stock_quantity';
	const EVENT_LIMIT_PRIMARY_API_PRODUCTS                 = 'limit_primary_api_products';
	const EVENT_CREATE_MANUAL_BACKUP_CRON                  = 'create_manual_backup_cron';
	const EVENT_REMOVE_MANUAL_BACKUP_CRON				   = 'remove_manual_backup_cron';
	const EVENT_UPDATE_MANUAL_BACKUP_CRON				   = 'update_manual_backup_cron';
	const EVENT_ALTER_PRODUCT_BEFORE_SAVE				   = 'alter_product_before_save';
}
