<?php

namespace DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\Config;

use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\PriceCompareConfig;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\DataProvider\GmcExportMapperDataProvider;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\Form\GmcExportMapperForm;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\Ceneo\StockProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\AdultBundleLabelProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\AdwordsRedirectBundleLabelProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\AgeGroupProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\AvailProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\BrandProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\CategoryProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ColorProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ConditionProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\CustomLabel0ProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\CustomLabel1ProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\CustomLabel2ProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\CustomLabel4ProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\DescriptionProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\EnergyClassProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ExcludedDestinationProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ExpirationDateProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\GenderProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\GroupIdProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\GtinProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\HeightProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\IdExistsProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\IdProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ImageLinkProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\IsBundleLabelProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\LengthProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\LinkProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\MaterialSystemProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\MpnProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\MultipackLabelProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\PatternSystemProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\PriceProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ProductTypeProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\SaleDateProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\SalePriceProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ShippingLabelProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\ShippingProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\SizeProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\SizeSystemProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\SizeTypeProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\TaxProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\TitleProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\TransitProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\UnitPricingBaseProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\UnitPricingProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\WeightProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\WidthProductField;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\Service\Writer\XML\GmcXmlWriter;
use DropshippingExportFreeVendor\WPDesk\Library\DropshippingExport\PriceCompare\ProductFields\GMC\AdditionalImageLinkProductField;
class GmcConfig implements PriceCompareConfig
{
    public const ID = 'gmc';
    public const EXTENSION = 'xml';
    public function get_supported_extension(): string
    {
        return self::EXTENSION;
    }
    public function get_mapper_template_name(): string
    {
        return 'Export/GmcExportMapper';
    }
    public function get_mapper_form_class(): string
    {
        return GmcExportMapperForm::class;
    }
    public function get_mapper_data_provider_class(): string
    {
        return GmcExportMapperDataProvider::class;
    }
    public function is_custom(): bool
    {
        return \false;
    }
    public function get_id(): string
    {
        return self::ID;
    }
    public function get_name(): string
    {
        return \esc_html__('Google Merchant Center', 'dropshipping-export-free');
    }
    public function get_writer_class_name(): string
    {
        return GmcXmlWriter::class;
    }
    public function get_supported_fields(): array
    {
        return [BrandProductField::class, IdProductField::class, GroupIdProductField::class, TitleProductField::class, DescriptionProductField::class, LinkProductField::class, ProductTypeProductField::class, CategoryProductField::class, ImageLinkProductField::class, ConditionProductField::class, AvailProductField::class, PriceProductField::class, MpnProductField::class, SalePriceProductField::class, AdultBundleLabelProductField::class, AdwordsRedirectBundleLabelProductField::class, AgeGroupProductField::class, ColorProductField::class, ConditionProductField::class, CustomLabel0ProductField::class, CustomLabel1ProductField::class, CustomLabel2ProductField::class, CustomLabel4ProductField::class, EnergyClassProductField::class, ExcludedDestinationProductField::class, ExpirationDateProductField::class, GenderProductField::class, GtinProductField::class, HeightProductField::class, IdExistsProductField::class, ImageLinkProductField::class, IsBundleLabelProductField::class, LengthProductField::class, MaterialSystemProductField::class, MultipackLabelProductField::class, PatternSystemProductField::class, SaleDateProductField::class, ShippingLabelProductField::class, SizeProductField::class, SizeSystemProductField::class, SizeTypeProductField::class, StockProductField::class, TaxProductField::class, TransitProductField::class, UnitPricingBaseProductField::class, UnitPricingProductField::class, WeightProductField::class, WidthProductField::class, ShippingProductField::class, AdditionalImageLinkProductField::class];
    }
}
