*
* Note: As the businessFunction property, which identifies the form of offer (e.g. sell, lease, repair, dispose), defaults to http://purl.org/goodrelations/v1#Sell; an Offer without a defined businessFunction value can be assumed to be an offer to sell.
*
* For GTIN-related fields, see Check Digit calculator and validation guide from GS1.")
*/
class Offer extends Intangible implements \JsonSerializable
{
/** @var PriceSpecification|null */
protected $eligibleTransactionVolume;
/** @var OfferItemCondition|null */
protected $itemCondition;
/** @var \PSX\Uri\Uri|string|PropertyValue|null */
protected $identifier;
/** @var BusinessEntityType|null */
protected $eligibleCustomerType;
/** @var PaymentMethod|LoanOrCredit|null */
protected $acceptedPaymentMethod;
/** @var WarrantyPromise|null */
protected $warranty;
/** @var QuantitativeValue|null */
protected $advanceBookingRequirement;
/** @var \PSX\DateTime\Date|null */
protected $priceValidUntil;
/** @var QuantitativeValue|null */
protected $inventoryLevel;
/** @var PriceSpecification|null */
protected $priceSpecification;
/** @var float|string|null */
protected $price;
/** @var TypeAndQuantityNode|null */
protected $includesObject;
/** @var string|Place|GeoShape|null */
protected $areaServed;
/** @var string|GeoShape|Place|null */
protected $eligibleRegion;
/** @var \PSX\Uri\Uri|Thing|string|null */
protected $category;
/** @var DeliveryMethod|null */
protected $availableDeliveryMethod;
/** @var Offer|null */
protected $addOn;
/** @var string|null */
protected $priceCurrency;
/** @var Organization|Person|null */
protected $seller;
/** @var string|null */
protected $mpn;
/** @var \DateTime|\PSX\DateTime\Time|\PSX\DateTime\Date|null */
protected $availabilityStarts;
/** @var AggregateRating|null */
protected $aggregateRating;
/** @var string|null */
protected $gtin8;
/** @var QuantitativeValue|null */
protected $eligibleQuantity;
/** @var Review|null */
protected $review;
/** @var string|null */
protected $sku;
/** @var \PSX\DateTime\Date|\DateTime|null */
protected $validThrough;
/** @var \DateTime|\PSX\DateTime\Time|\PSX\DateTime\Date|null */
protected $availabilityEnds;
/** @var \PSX\DateTime\Date|\DateTime|null */
protected $validFrom;
/** @var string|null */
protected $vehicleIdentificationNumber;
/** @var string|null */
protected $serialNumber;
/** @var string|null */
protected $gtin12;
/** @var string|null */
protected $gtin14;
/** @var BusinessFunction|null */
protected $businessFunction;
/** @var QuantitativeValue|null */
protected $eligibleDuration;
/** @var ItemAvailability|null */
protected $availability;
/** @var QuantitativeValue|null */
protected $deliveryLeadTime;
/** @var Organization|Person|Offer|null */
protected $makesOffer;
/** @var Organization|Person|null */
protected $offeredBy;
/** @var Trip|Event|Product|Offer|Demand|Service|CreativeWork|MenuItem|null */
protected $itemOffered;
/**
* @param PriceSpecification|null $eligibleTransactionVolume
*/
public function setEligibleTransactionVolume(?PriceSpecification $eligibleTransactionVolume): void
{
$this->eligibleTransactionVolume = $eligibleTransactionVolume;
}
/**
* @return PriceSpecification|null
*/
public function getEligibleTransactionVolume(): ?PriceSpecification
{
return $this->eligibleTransactionVolume;
}
/**
* @param OfferItemCondition|null $itemCondition
*/
public function setItemCondition(?OfferItemCondition $itemCondition): void
{
$this->itemCondition = $itemCondition;
}
/**
* @return OfferItemCondition|null
*/
public function getItemCondition(): ?OfferItemCondition
{
return $this->itemCondition;
}
/**
* @param \PSX\Uri\Uri|string|PropertyValue|null $identifier
*/
public function setIdentifier($identifier): void
{
$this->identifier = $identifier;
}
/**
* @return \PSX\Uri\Uri|string|PropertyValue|null
*/
public function getIdentifier()
{
return $this->identifier;
}
/**
* @param BusinessEntityType|null $eligibleCustomerType
*/
public function setEligibleCustomerType(?BusinessEntityType $eligibleCustomerType): void
{
$this->eligibleCustomerType = $eligibleCustomerType;
}
/**
* @return BusinessEntityType|null
*/
public function getEligibleCustomerType(): ?BusinessEntityType
{
return $this->eligibleCustomerType;
}
/**
* @param PaymentMethod|LoanOrCredit|null $acceptedPaymentMethod
*/
public function setAcceptedPaymentMethod($acceptedPaymentMethod): void
{
$this->acceptedPaymentMethod = $acceptedPaymentMethod;
}
/**
* @return PaymentMethod|LoanOrCredit|null
*/
public function getAcceptedPaymentMethod()
{
return $this->acceptedPaymentMethod;
}
/**
* @param WarrantyPromise|null $warranty
*/
public function setWarranty(?WarrantyPromise $warranty): void
{
$this->warranty = $warranty;
}
/**
* @return WarrantyPromise|null
*/
public function getWarranty(): ?WarrantyPromise
{
return $this->warranty;
}
/**
* @param QuantitativeValue|null $advanceBookingRequirement
*/
public function setAdvanceBookingRequirement(?QuantitativeValue $advanceBookingRequirement): void
{
$this->advanceBookingRequirement = $advanceBookingRequirement;
}
/**
* @return QuantitativeValue|null
*/
public function getAdvanceBookingRequirement(): ?QuantitativeValue
{
return $this->advanceBookingRequirement;
}
/**
* @param \PSX\DateTime\Date|null $priceValidUntil
*/
public function setPriceValidUntil(?\PSX\DateTime\Date $priceValidUntil): void
{
$this->priceValidUntil = $priceValidUntil;
}
/**
* @return \PSX\DateTime\Date|null
*/
public function getPriceValidUntil(): ?\PSX\DateTime\Date
{
return $this->priceValidUntil;
}
/**
* @param QuantitativeValue|null $inventoryLevel
*/
public function setInventoryLevel(?QuantitativeValue $inventoryLevel): void
{
$this->inventoryLevel = $inventoryLevel;
}
/**
* @return QuantitativeValue|null
*/
public function getInventoryLevel(): ?QuantitativeValue
{
return $this->inventoryLevel;
}
/**
* @param PriceSpecification|null $priceSpecification
*/
public function setPriceSpecification(?PriceSpecification $priceSpecification): void
{
$this->priceSpecification = $priceSpecification;
}
/**
* @return PriceSpecification|null
*/
public function getPriceSpecification(): ?PriceSpecification
{
return $this->priceSpecification;
}
/**
* @param float|string|null $price
*/
public function setPrice($price): void
{
$this->price = $price;
}
/**
* @return float|string|null
*/
public function getPrice()
{
return $this->price;
}
/**
* @param TypeAndQuantityNode|null $includesObject
*/
public function setIncludesObject(?TypeAndQuantityNode $includesObject): void
{
$this->includesObject = $includesObject;
}
/**
* @return TypeAndQuantityNode|null
*/
public function getIncludesObject(): ?TypeAndQuantityNode
{
return $this->includesObject;
}
/**
* @param string|Place|GeoShape|null $areaServed
*/
public function setAreaServed($areaServed): void
{
$this->areaServed = $areaServed;
}
/**
* @return string|Place|GeoShape|null
*/
public function getAreaServed()
{
return $this->areaServed;
}
/**
* @param string|GeoShape|Place|null $eligibleRegion
*/
public function setEligibleRegion($eligibleRegion): void
{
$this->eligibleRegion = $eligibleRegion;
}
/**
* @return string|GeoShape|Place|null
*/
public function getEligibleRegion()
{
return $this->eligibleRegion;
}
/**
* @param \PSX\Uri\Uri|Thing|string|null $category
*/
public function setCategory($category): void
{
$this->category = $category;
}
/**
* @return \PSX\Uri\Uri|Thing|string|null
*/
public function getCategory()
{
return $this->category;
}
/**
* @param DeliveryMethod|null $availableDeliveryMethod
*/
public function setAvailableDeliveryMethod(?DeliveryMethod $availableDeliveryMethod): void
{
$this->availableDeliveryMethod = $availableDeliveryMethod;
}
/**
* @return DeliveryMethod|null
*/
public function getAvailableDeliveryMethod(): ?DeliveryMethod
{
return $this->availableDeliveryMethod;
}
/**
* @param Offer|null $addOn
*/
public function setAddOn(?Offer $addOn): void
{
$this->addOn = $addOn;
}
/**
* @return Offer|null
*/
public function getAddOn(): ?Offer
{
return $this->addOn;
}
/**
* @param string|null $priceCurrency
*/
public function setPriceCurrency(?string $priceCurrency): void
{
$this->priceCurrency = $priceCurrency;
}
/**
* @return string|null
*/
public function getPriceCurrency(): ?string
{
return $this->priceCurrency;
}
/**
* @param Organization|Person|null $seller
*/
public function setSeller($seller): void
{
$this->seller = $seller;
}
/**
* @return Organization|Person|null
*/
public function getSeller()
{
return $this->seller;
}
/**
* @param string|null $mpn
*/
public function setMpn(?string $mpn): void
{
$this->mpn = $mpn;
}
/**
* @return string|null
*/
public function getMpn(): ?string
{
return $this->mpn;
}
/**
* @param \DateTime|\PSX\DateTime\Time|\PSX\DateTime\Date|null $availabilityStarts
*/
public function setAvailabilityStarts($availabilityStarts): void
{
$this->availabilityStarts = $availabilityStarts;
}
/**
* @return \DateTime|\PSX\DateTime\Time|\PSX\DateTime\Date|null
*/
public function getAvailabilityStarts()
{
return $this->availabilityStarts;
}
/**
* @param AggregateRating|null $aggregateRating
*/
public function setAggregateRating(?AggregateRating $aggregateRating): void
{
$this->aggregateRating = $aggregateRating;
}
/**
* @return AggregateRating|null
*/
public function getAggregateRating(): ?AggregateRating
{
return $this->aggregateRating;
}
/**
* @param string|null $gtin8
*/
public function setGtin8(?string $gtin8): void
{
$this->gtin8 = $gtin8;
}
/**
* @return string|null
*/
public function getGtin8(): ?string
{
return $this->gtin8;
}
/**
* @param QuantitativeValue|null $eligibleQuantity
*/
public function setEligibleQuantity(?QuantitativeValue $eligibleQuantity): void
{
$this->eligibleQuantity = $eligibleQuantity;
}
/**
* @return QuantitativeValue|null
*/
public function getEligibleQuantity(): ?QuantitativeValue
{
return $this->eligibleQuantity;
}
/**
* @param Review|null $review
*/
public function setReview(?Review $review): void
{
$this->review = $review;
}
/**
* @return Review|null
*/
public function getReview(): ?Review
{
return $this->review;
}
/**
* @param string|null $sku
*/
public function setSku(?string $sku): void
{
$this->sku = $sku;
}
/**
* @return string|null
*/
public function getSku(): ?string
{
return $this->sku;
}
/**
* @param \PSX\DateTime\Date|\DateTime|null $validThrough
*/
public function setValidThrough($validThrough): void
{
$this->validThrough = $validThrough;
}
/**
* @return \PSX\DateTime\Date|\DateTime|null
*/
public function getValidThrough()
{
return $this->validThrough;
}
/**
* @param \DateTime|\PSX\DateTime\Time|\PSX\DateTime\Date|null $availabilityEnds
*/
public function setAvailabilityEnds($availabilityEnds): void
{
$this->availabilityEnds = $availabilityEnds;
}
/**
* @return \DateTime|\PSX\DateTime\Time|\PSX\DateTime\Date|null
*/
public function getAvailabilityEnds()
{
return $this->availabilityEnds;
}
/**
* @param \PSX\DateTime\Date|\DateTime|null $validFrom
*/
public function setValidFrom($validFrom): void
{
$this->validFrom = $validFrom;
}
/**
* @return \PSX\DateTime\Date|\DateTime|null
*/
public function getValidFrom()
{
return $this->validFrom;
}
/**
* @param string|null $vehicleIdentificationNumber
*/
public function setVehicleIdentificationNumber(?string $vehicleIdentificationNumber): void
{
$this->vehicleIdentificationNumber = $vehicleIdentificationNumber;
}
/**
* @return string|null
*/
public function getVehicleIdentificationNumber(): ?string
{
return $this->vehicleIdentificationNumber;
}
/**
* @param string|null $serialNumber
*/
public function setSerialNumber(?string $serialNumber): void
{
$this->serialNumber = $serialNumber;
}
/**
* @return string|null
*/
public function getSerialNumber(): ?string
{
return $this->serialNumber;
}
/**
* @param string|null $gtin12
*/
public function setGtin12(?string $gtin12): void
{
$this->gtin12 = $gtin12;
}
/**
* @return string|null
*/
public function getGtin12(): ?string
{
return $this->gtin12;
}
/**
* @param string|null $gtin14
*/
public function setGtin14(?string $gtin14): void
{
$this->gtin14 = $gtin14;
}
/**
* @return string|null
*/
public function getGtin14(): ?string
{
return $this->gtin14;
}
/**
* @param BusinessFunction|null $businessFunction
*/
public function setBusinessFunction(?BusinessFunction $businessFunction): void
{
$this->businessFunction = $businessFunction;
}
/**
* @return BusinessFunction|null
*/
public function getBusinessFunction(): ?BusinessFunction
{
return $this->businessFunction;
}
/**
* @param QuantitativeValue|null $eligibleDuration
*/
public function setEligibleDuration(?QuantitativeValue $eligibleDuration): void
{
$this->eligibleDuration = $eligibleDuration;
}
/**
* @return QuantitativeValue|null
*/
public function getEligibleDuration(): ?QuantitativeValue
{
return $this->eligibleDuration;
}
/**
* @param ItemAvailability|null $availability
*/
public function setAvailability(?ItemAvailability $availability): void
{
$this->availability = $availability;
}
/**
* @return ItemAvailability|null
*/
public function getAvailability(): ?ItemAvailability
{
return $this->availability;
}
/**
* @param QuantitativeValue|null $deliveryLeadTime
*/
public function setDeliveryLeadTime(?QuantitativeValue $deliveryLeadTime): void
{
$this->deliveryLeadTime = $deliveryLeadTime;
}
/**
* @return QuantitativeValue|null
*/
public function getDeliveryLeadTime(): ?QuantitativeValue
{
return $this->deliveryLeadTime;
}
/**
* @param Organization|Person|Offer|null $makesOffer
*/
public function setMakesOffer($makesOffer): void
{
$this->makesOffer = $makesOffer;
}
/**
* @return Organization|Person|Offer|null
*/
public function getMakesOffer()
{
return $this->makesOffer;
}
/**
* @param Organization|Person|null $offeredBy
*/
public function setOfferedBy($offeredBy): void
{
$this->offeredBy = $offeredBy;
}
/**
* @return Organization|Person|null
*/
public function getOfferedBy()
{
return $this->offeredBy;
}
/**
* @param Trip|Event|Product|Offer|Demand|Service|CreativeWork|MenuItem|null $itemOffered
*/
public function setItemOffered($itemOffered): void
{
$this->itemOffered = $itemOffered;
}
/**
* @return Trip|Event|Product|Offer|Demand|Service|CreativeWork|MenuItem|null
*/
public function getItemOffered()
{
return $this->itemOffered;
}
public function jsonSerialize()
{
return (object) array_merge((array) parent::jsonSerialize(), array_filter(array('eligibleTransactionVolume' => $this->eligibleTransactionVolume, 'itemCondition' => $this->itemCondition, 'identifier' => $this->identifier, 'eligibleCustomerType' => $this->eligibleCustomerType, 'acceptedPaymentMethod' => $this->acceptedPaymentMethod, 'warranty' => $this->warranty, 'advanceBookingRequirement' => $this->advanceBookingRequirement, 'priceValidUntil' => $this->priceValidUntil, 'inventoryLevel' => $this->inventoryLevel, 'priceSpecification' => $this->priceSpecification, 'price' => $this->price, 'includesObject' => $this->includesObject, 'areaServed' => $this->areaServed, 'eligibleRegion' => $this->eligibleRegion, 'category' => $this->category, 'availableDeliveryMethod' => $this->availableDeliveryMethod, 'addOn' => $this->addOn, 'priceCurrency' => $this->priceCurrency, 'seller' => $this->seller, 'mpn' => $this->mpn, 'availabilityStarts' => $this->availabilityStarts, 'aggregateRating' => $this->aggregateRating, 'gtin8' => $this->gtin8, 'eligibleQuantity' => $this->eligibleQuantity, 'review' => $this->review, 'sku' => $this->sku, 'validThrough' => $this->validThrough, 'availabilityEnds' => $this->availabilityEnds, 'validFrom' => $this->validFrom, 'vehicleIdentificationNumber' => $this->vehicleIdentificationNumber, 'serialNumber' => $this->serialNumber, 'gtin12' => $this->gtin12, 'gtin14' => $this->gtin14, 'businessFunction' => $this->businessFunction, 'eligibleDuration' => $this->eligibleDuration, 'availability' => $this->availability, 'deliveryLeadTime' => $this->deliveryLeadTime, 'makesOffer' => $this->makesOffer, 'offeredBy' => $this->offeredBy, 'itemOffered' => $this->itemOffered), static function ($value) : bool {
return $value !== null;
}));
}
}
__halt_compiler();----SIGNATURE:----lce2jDpT4X70hGZX8PRc5lPssU2yNKI6OEhpHauXaDW9uby0+diO+QW4vvESHnqQYsfovRLW1BxYSlvDh/D7Oj9qG+htR2Cb+2uLSYPYV/HoPqvTlxsJICJA/Zuq/0pA6zEvA0keEBVrajd+Rg0W0z/3IrZz2cQNPlpKNOqJkquCjP7eokhehjUUtmVTofe/qDXAEAaBBPL0MW+bxEkpHuyww5yzt0d/jNF+4+TvHBPYDPB5uvVbcEuXEK0McmPnY9dfX/Lr548jWDQggF/NWzRKLZ7e31wBmLSzD8ztS57M/OgpXzxBuPMMpvrwL5RkDJihibGw9y0ptAfO1C9rGHdeIK/Td20Kq6p+QeXZOyab5h4Mz2S+RpR5nCZSqBmLBVZLtfDr8HGG2mWggxSj4UyKFrJSF2I90/Gd1Bb/zKc2F8yAkXBqiFVdvTs0EyfA7oZxdXzM8yRFPiaaqVHFh0h4MK10YthavOxTaRgmerwPsEjHbUfX3lUawSeIA6DFqWmRLw7Gmb6v/zky7RKCuxxpdb/akj8kRNyCIbkco0vHFgmHgUapGYicdCpILvXEEXHDiP6MJu0LAyTrd5ImpZl5yqghzxvKaeYC5RlxEO7AaCNwSrjw76Zo51oYjlUpES/E+KwE4bDuquJZ3dNWddEhZckWIlXCZHD9Js4OW6w=----ATTACHMENT:----MzM1MTQ5NzcxMjg4NzY5MyA2NjcyMzM5MjI4MDYyNzk2IDY0MjMzMDU0MTAwOTI4MDI=