<?php

namespace EnumType;

/**
 * This class stands for ListingEnhancementsCodeType EnumType
 * Meta informations extracted from the WSDL
 * - documentation: Type defining all listing upgrades that may be available to the seller when listing an item. The listing upgrades that are available vary by site and by the seller's account status. To discover which listing upgrades are available,
 * call <b>GeteBayDetails</b>, pass in the appropriate <b>SiteID</b> value and set the <b>DetailName</b> input filter to <code>ListingFeatureDetails</code>, and then look for the <b>ListingFeatureDetails</b> container in the response. Listing upgrades
 * will either be listed as <code>Enabled</code> or <code>Disabled</code>.
 * @subpackage Enumerations
 */
class ListingEnhancementsCodeType
{
    /**
     * Constant for value 'Border'
     * Meta informations extracted from the WSDL
     * - documentation: <span class="tablenote"><b>Note:</b> The Picture Border feature is no longer available on any eBay Marketplace sites, so this value should not be used in Add/Revise/Relist calls, and will not be returned in 'Get' calls. </span> <br>
     * If specified, the seller wants to add a border around the listing's pictures. Applicable listing fees apply. <br> <br>
     * @return string 'Border'
     */
    const VALUE_BORDER = 'Border';
    /**
     * Constant for value 'BoldTitle'
     * Meta informations extracted from the WSDL
     * - documentation: If specified, the seller wants the title for the item's listing to be in boldface type. Applicable listing fees apply. Does not affect the item subtitle (Item.SubTitle), if any. Not applicable to eBay Motors.
     * @return string 'BoldTitle'
     */
    const VALUE_BOLD_TITLE = 'BoldTitle';
    /**
     * Constant for value 'Featured'
     * Meta informations extracted from the WSDL
     * - documentation: <span class="tablenote"><b>Note:</b> The Featured listing feature is no longer available on any eBay Marketplace sites, so this value should not be used in Add/Revise/Relist calls, and will not be returned in 'Get' calls. </span>
     * Listing is a "Featured Plus" item. The item will display prominently in the Featured Items section of its category list, and it will stand out on search results pages. It will also display in the regular, non- featured item list. Only available to
     * users with a Feedback rating of 10 or greater.
     * @return string 'Featured'
     */
    const VALUE_FEATURED = 'Featured';
    /**
     * Constant for value 'Highlight'
     * Meta informations extracted from the WSDL
     * - documentation: <span class="tablenote"><b>Note:</b> The Highlighted listing feature is no longer available on any eBay Marketplace sites, so this value should not be used in Add/Revise/Relist calls, and will not be returned in 'Get' calls. </span>
     * Listing is highlighted in a different color in lists.
     * @return string 'Highlight'
     */
    const VALUE_HIGHLIGHT = 'Highlight';
    /**
     * Constant for value 'HomePageFeatured'
     * Meta informations extracted from the WSDL
     * - documentation: Listing will have a chance to rotate into a special display on eBay's Home page. Your item is very likely to show up on the Home page, although eBay does not guarantee that your item will be highlighted in this way. This is the
     * highest level of visibility on eBay. <br><br> Not applicable for eBay Motors. In order to feature the listing on eBay Motors home page, use PictureDetails.GalleryType.Featured instead. See GalleryTypeCodeType for more information.
     * @return string 'HomePageFeatured'
     */
    const VALUE_HOME_PAGE_FEATURED = 'HomePageFeatured';
    /**
     * Constant for value 'ProPackBundle'
     * Meta informations extracted from the WSDL
     * - documentation: <span class="tablenote"><b>Note:</b> The Pro Pack Bundle is no longer available on any eBay Marketplace sites, so this value should not be used in Add/Revise/Relist calls, and will not be returned in 'Get' calls. </span> Listing is
     * using ProPackBundle (a feature pack). Applies only to vehicle listings on eBay Motors (US and Canada), and to the Parts and Accessories category in the eBay Motors US site. Contains the BoldTitle, Border, Featured and Highlight features.
     * @return string 'ProPackBundle'
     */
    const VALUE_PRO_PACK_BUNDLE = 'ProPackBundle';
    /**
     * Constant for value 'BasicUpgradePackBundle'
     * Meta informations extracted from the WSDL
     * - documentation: <span class="tablenote"><b>Note:</b> The Basic Upgrade Pack Bundle is no longer available on any eBay Marketplace sites, so this value should not be used in Add/Revise/Relist calls, and will not be returned in 'Get' calls. </span>
     * @return string 'BasicUpgradePackBundle'
     */
    const VALUE_BASIC_UPGRADE_PACK_BUNDLE = 'BasicUpgradePackBundle';
    /**
     * Constant for value 'ValuePackBundle'
     * Meta informations extracted from the WSDL
     * - documentation: Listing is using ValuePack bundle (a feature pack), which combines the features Gallery, Subtitle, and Listing Designer for a discounted price. Support for this feature varies by site and category. <br><br> Whenever ValuePackBundle
     * is selected in a request, the Value Pack bundle is automatically upgraded to the Gallery Plus feature at no extra cost (see Item.PictureDetails.GalleryType.Plus for more information on Gallery Plus). The Gallery Plus upgrade will display on all sites
     * and categories that support ValuePackBundle.
     * @return string 'ValuePackBundle'
     */
    const VALUE_VALUE_PACK_BUNDLE = 'ValuePackBundle';
    /**
     * Constant for value 'ProPackPlusBundle'
     * Meta informations extracted from the WSDL
     * - documentation: <span class="tablenote"><b>Note:</b> The Pro Pack Plus Bundle is no longer available on any eBay Marketplace sites, so this value should not be used in Add/Revise/Relist calls, and will not be returned in 'Get' calls. </span> Support
     * for this feature varies by site and category. A ProPackPlusBundle listing is using ProPackPlus bundle (a feature pack), which combines the features of BoldTitle, Border, Highlight, Featured (which is equivalent to a GalleryType value of Featured),
     * and Gallery, for a discounted price. Note that if, for example, in AddItem, if you use ProPackPlusBundle and a GalleryType value of Gallery, then the resulting item will have a GalleryType value of Featured.
     * @return string 'ProPackPlusBundle'
     */
    const VALUE_PRO_PACK_PLUS_BUNDLE = 'ProPackPlusBundle';
    /**
     * Constant for value 'CustomCode'
     * Meta informations extracted from the WSDL
     * - documentation: Reserved for internal or future use.
     * @return string 'CustomCode'
     */
    const VALUE_CUSTOM_CODE = 'CustomCode';
    /**
     * Return true if value is allowed
     * @uses self::getValidValues()
     * @param mixed $value value
     * @return bool true|false
     */
    public static function valueIsValid($value)
    {
        return ($value === null) || in_array($value, self::getValidValues(), true);
    }
    /**
     * Return allowed values
     * @uses self::VALUE_BORDER
     * @uses self::VALUE_BOLD_TITLE
     * @uses self::VALUE_FEATURED
     * @uses self::VALUE_HIGHLIGHT
     * @uses self::VALUE_HOME_PAGE_FEATURED
     * @uses self::VALUE_PRO_PACK_BUNDLE
     * @uses self::VALUE_BASIC_UPGRADE_PACK_BUNDLE
     * @uses self::VALUE_VALUE_PACK_BUNDLE
     * @uses self::VALUE_PRO_PACK_PLUS_BUNDLE
     * @uses self::VALUE_CUSTOM_CODE
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_BORDER,
            self::VALUE_BOLD_TITLE,
            self::VALUE_FEATURED,
            self::VALUE_HIGHLIGHT,
            self::VALUE_HOME_PAGE_FEATURED,
            self::VALUE_PRO_PACK_BUNDLE,
            self::VALUE_BASIC_UPGRADE_PACK_BUNDLE,
            self::VALUE_VALUE_PACK_BUNDLE,
            self::VALUE_PRO_PACK_PLUS_BUNDLE,
            self::VALUE_CUSTOM_CODE,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
