Completed
Push — master ( 5ef641...47b2a6 )
by Sebastian
04:50
created

Offer::addOn()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
/**
6
 * An offer to transfer some rights to an item or to provide a service — for
7
 * example, an offer to sell tickets to an event, to rent the DVD of a movie, to
8
 * stream a TV show over the internet, to repair a motorcycle, or to loan a
9
 * book.
10
 * 
11
 * For [GTIN](http://www.gs1.org/barcodes/technical/idkeys/gtin)-related fields,
12
 * see [Check Digit
13
 * calculator](http://www.gs1.org/barcodes/support/check_digit_calculator) and
14
 * [validation
15
 * guide](http://www.gs1us.org/resources/standards/gtin-validation-guide) from
16
 * [GS1](http://www.gs1.org/).
17
 *
18
 * @see http://schema.org/Offer
19
 *
20
 * @mixin \Spatie\SchemaOrg\Intangible
21
 */
22
class Offer extends BaseType
23
{
24
    /**
25
     * The payment method(s) accepted by seller for this offer.
26
     *
27
     * @param LoanOrCredit|LoanOrCredit[]|PaymentMethod|PaymentMethod[] $acceptedPaymentMethod
28
     *
29
     * @return static
30
     *
31
     * @see http://schema.org/acceptedPaymentMethod
32
     */
33
    public function acceptedPaymentMethod($acceptedPaymentMethod)
34
    {
35
        return $this->setProperty('acceptedPaymentMethod', $acceptedPaymentMethod);
36
    }
37
38
    /**
39
     * An additional offer that can only be obtained in combination with the
40
     * first base offer (e.g. supplements and extensions that are available for
41
     * a surcharge).
42
     *
43
     * @param Offer|Offer[] $addOn
44
     *
45
     * @return static
46
     *
47
     * @see http://schema.org/addOn
48
     */
49
    public function addOn($addOn)
50
    {
51
        return $this->setProperty('addOn', $addOn);
52
    }
53
54
    /**
55
     * The amount of time that is required between accepting the offer and the
56
     * actual usage of the resource or service.
57
     *
58
     * @param QuantitativeValue|QuantitativeValue[] $advanceBookingRequirement
59
     *
60
     * @return static
61
     *
62
     * @see http://schema.org/advanceBookingRequirement
63
     */
64
    public function advanceBookingRequirement($advanceBookingRequirement)
65
    {
66
        return $this->setProperty('advanceBookingRequirement', $advanceBookingRequirement);
67
    }
68
69
    /**
70
     * The overall rating, based on a collection of reviews or ratings, of the
71
     * item.
72
     *
73
     * @param AggregateRating|AggregateRating[] $aggregateRating
74
     *
75
     * @return static
76
     *
77
     * @see http://schema.org/aggregateRating
78
     */
79
    public function aggregateRating($aggregateRating)
80
    {
81
        return $this->setProperty('aggregateRating', $aggregateRating);
82
    }
83
84
    /**
85
     * The geographic area where a service or offered item is provided.
86
     *
87
     * @param AdministrativeArea|AdministrativeArea[]|GeoShape|GeoShape[]|Place|Place[]|string|string[] $areaServed
88
     *
89
     * @return static
90
     *
91
     * @see http://schema.org/areaServed
92
     */
93
    public function areaServed($areaServed)
94
    {
95
        return $this->setProperty('areaServed', $areaServed);
96
    }
97
98
    /**
99
     * The availability of this item&#x2014;for example In stock, Out of stock,
100
     * Pre-order, etc.
101
     *
102
     * @param ItemAvailability|ItemAvailability[] $availability
103
     *
104
     * @return static
105
     *
106
     * @see http://schema.org/availability
107
     */
108
    public function availability($availability)
109
    {
110
        return $this->setProperty('availability', $availability);
111
    }
112
113
    /**
114
     * The end of the availability of the product or service included in the
115
     * offer.
116
     *
117
     * @param \DateTimeInterface|\DateTimeInterface[] $availabilityEnds
118
     *
119
     * @return static
120
     *
121
     * @see http://schema.org/availabilityEnds
122
     */
123
    public function availabilityEnds($availabilityEnds)
124
    {
125
        return $this->setProperty('availabilityEnds', $availabilityEnds);
126
    }
127
128
    /**
129
     * The beginning of the availability of the product or service included in
130
     * the offer.
131
     *
132
     * @param \DateTimeInterface|\DateTimeInterface[] $availabilityStarts
133
     *
134
     * @return static
135
     *
136
     * @see http://schema.org/availabilityStarts
137
     */
138
    public function availabilityStarts($availabilityStarts)
139
    {
140
        return $this->setProperty('availabilityStarts', $availabilityStarts);
141
    }
142
143
    /**
144
     * The place(s) from which the offer can be obtained (e.g. store locations).
145
     *
146
     * @param Place|Place[] $availableAtOrFrom
147
     *
148
     * @return static
149
     *
150
     * @see http://schema.org/availableAtOrFrom
151
     */
152
    public function availableAtOrFrom($availableAtOrFrom)
153
    {
154
        return $this->setProperty('availableAtOrFrom', $availableAtOrFrom);
155
    }
156
157
    /**
158
     * The delivery method(s) available for this offer.
159
     *
160
     * @param DeliveryMethod|DeliveryMethod[] $availableDeliveryMethod
161
     *
162
     * @return static
163
     *
164
     * @see http://schema.org/availableDeliveryMethod
165
     */
166
    public function availableDeliveryMethod($availableDeliveryMethod)
167
    {
168
        return $this->setProperty('availableDeliveryMethod', $availableDeliveryMethod);
169
    }
170
171
    /**
172
     * The business function (e.g. sell, lease, repair, dispose) of the offer or
173
     * component of a bundle (TypeAndQuantityNode). The default is
174
     * http://purl.org/goodrelations/v1#Sell.
175
     *
176
     * @param BusinessFunction|BusinessFunction[] $businessFunction
177
     *
178
     * @return static
179
     *
180
     * @see http://schema.org/businessFunction
181
     */
182
    public function businessFunction($businessFunction)
183
    {
184
        return $this->setProperty('businessFunction', $businessFunction);
185
    }
186
187
    /**
188
     * A category for the item. Greater signs or slashes can be used to
189
     * informally indicate a category hierarchy.
190
     *
191
     * @param Thing|Thing[]|string|string[] $category
192
     *
193
     * @return static
194
     *
195
     * @see http://schema.org/category
196
     */
197
    public function category($category)
198
    {
199
        return $this->setProperty('category', $category);
200
    }
201
202
    /**
203
     * The typical delay between the receipt of the order and the goods either
204
     * leaving the warehouse or being prepared for pickup, in case the delivery
205
     * method is on site pickup.
206
     *
207
     * @param QuantitativeValue|QuantitativeValue[] $deliveryLeadTime
208
     *
209
     * @return static
210
     *
211
     * @see http://schema.org/deliveryLeadTime
212
     */
213
    public function deliveryLeadTime($deliveryLeadTime)
214
    {
215
        return $this->setProperty('deliveryLeadTime', $deliveryLeadTime);
216
    }
217
218
    /**
219
     * The type(s) of customers for which the given offer is valid.
220
     *
221
     * @param BusinessEntityType|BusinessEntityType[] $eligibleCustomerType
222
     *
223
     * @return static
224
     *
225
     * @see http://schema.org/eligibleCustomerType
226
     */
227
    public function eligibleCustomerType($eligibleCustomerType)
228
    {
229
        return $this->setProperty('eligibleCustomerType', $eligibleCustomerType);
230
    }
231
232
    /**
233
     * The duration for which the given offer is valid.
234
     *
235
     * @param QuantitativeValue|QuantitativeValue[] $eligibleDuration
236
     *
237
     * @return static
238
     *
239
     * @see http://schema.org/eligibleDuration
240
     */
241
    public function eligibleDuration($eligibleDuration)
242
    {
243
        return $this->setProperty('eligibleDuration', $eligibleDuration);
244
    }
245
246
    /**
247
     * The interval and unit of measurement of ordering quantities for which the
248
     * offer or price specification is valid. This allows e.g. specifying that a
249
     * certain freight charge is valid only for a certain quantity.
250
     *
251
     * @param QuantitativeValue|QuantitativeValue[] $eligibleQuantity
252
     *
253
     * @return static
254
     *
255
     * @see http://schema.org/eligibleQuantity
256
     */
257
    public function eligibleQuantity($eligibleQuantity)
258
    {
259
        return $this->setProperty('eligibleQuantity', $eligibleQuantity);
260
    }
261
262
    /**
263
     * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the
264
     * GeoShape for the geo-political region(s) for which the offer or delivery
265
     * charge specification is valid.
266
     * 
267
     * See also [[ineligibleRegion]].
268
     *
269
     * @param GeoShape|GeoShape[]|Place|Place[]|string|string[] $eligibleRegion
270
     *
271
     * @return static
272
     *
273
     * @see http://schema.org/eligibleRegion
274
     */
275
    public function eligibleRegion($eligibleRegion)
276
    {
277
        return $this->setProperty('eligibleRegion', $eligibleRegion);
278
    }
279
280
    /**
281
     * The transaction volume, in a monetary unit, for which the offer or price
282
     * specification is valid, e.g. for indicating a minimal purchasing volume,
283
     * to express free shipping above a certain order volume, or to limit the
284
     * acceptance of credit cards to purchases to a certain minimal amount.
285
     *
286
     * @param PriceSpecification|PriceSpecification[] $eligibleTransactionVolume
287
     *
288
     * @return static
289
     *
290
     * @see http://schema.org/eligibleTransactionVolume
291
     */
292
    public function eligibleTransactionVolume($eligibleTransactionVolume)
293
    {
294
        return $this->setProperty('eligibleTransactionVolume', $eligibleTransactionVolume);
295
    }
296
297
    /**
298
     * The GTIN-12 code of the product, or the product to which the offer
299
     * refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a
300
     * U.P.C. Company Prefix, Item Reference, and Check Digit used to identify
301
     * trade items. See [GS1 GTIN
302
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
303
     * details.
304
     *
305
     * @param string|string[] $gtin12
306
     *
307
     * @return static
308
     *
309
     * @see http://schema.org/gtin12
310
     */
311
    public function gtin12($gtin12)
312
    {
313
        return $this->setProperty('gtin12', $gtin12);
314
    }
315
316
    /**
317
     * The GTIN-13 code of the product, or the product to which the offer
318
     * refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former
319
     * 12-digit UPC codes can be converted into a GTIN-13 code by simply adding
320
     * a preceeding zero. See [GS1 GTIN
321
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
322
     * details.
323
     *
324
     * @param string|string[] $gtin13
325
     *
326
     * @return static
327
     *
328
     * @see http://schema.org/gtin13
329
     */
330
    public function gtin13($gtin13)
331
    {
332
        return $this->setProperty('gtin13', $gtin13);
333
    }
334
335
    /**
336
     * The GTIN-14 code of the product, or the product to which the offer
337
     * refers. See [GS1 GTIN
338
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
339
     * details.
340
     *
341
     * @param string|string[] $gtin14
342
     *
343
     * @return static
344
     *
345
     * @see http://schema.org/gtin14
346
     */
347
    public function gtin14($gtin14)
348
    {
349
        return $this->setProperty('gtin14', $gtin14);
350
    }
351
352
    /**
353
     * The [GTIN-8](http://apps.gs1.org/GDD/glossary/Pages/GTIN-8.aspx) code of
354
     * the product, or the product to which the offer refers. This code is also
355
     * known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN
356
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
357
     * details.
358
     *
359
     * @param string|string[] $gtin8
360
     *
361
     * @return static
362
     *
363
     * @see http://schema.org/gtin8
364
     */
365
    public function gtin8($gtin8)
366
    {
367
        return $this->setProperty('gtin8', $gtin8);
368
    }
369
370
    /**
371
     * This links to a node or nodes indicating the exact quantity of the
372
     * products included in the offer.
373
     *
374
     * @param TypeAndQuantityNode|TypeAndQuantityNode[] $includesObject
375
     *
376
     * @return static
377
     *
378
     * @see http://schema.org/includesObject
379
     */
380
    public function includesObject($includesObject)
381
    {
382
        return $this->setProperty('includesObject', $includesObject);
383
    }
384
385
    /**
386
     * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the
387
     * GeoShape for the geo-political region(s) for which the offer or delivery
388
     * charge specification is not valid, e.g. a region where the transaction is
389
     * not allowed.
390
     * 
391
     * See also [[eligibleRegion]].
392
     *
393
     * @param GeoShape|GeoShape[]|Place|Place[]|string|string[] $ineligibleRegion
394
     *
395
     * @return static
396
     *
397
     * @see http://schema.org/ineligibleRegion
398
     */
399
    public function ineligibleRegion($ineligibleRegion)
400
    {
401
        return $this->setProperty('ineligibleRegion', $ineligibleRegion);
402
    }
403
404
    /**
405
     * The current approximate inventory level for the item or items.
406
     *
407
     * @param QuantitativeValue|QuantitativeValue[] $inventoryLevel
408
     *
409
     * @return static
410
     *
411
     * @see http://schema.org/inventoryLevel
412
     */
413
    public function inventoryLevel($inventoryLevel)
414
    {
415
        return $this->setProperty('inventoryLevel', $inventoryLevel);
416
    }
417
418
    /**
419
     * A predefined value from OfferItemCondition or a textual description of
420
     * the condition of the product or service, or the products or services
421
     * included in the offer.
422
     *
423
     * @param OfferItemCondition|OfferItemCondition[] $itemCondition
424
     *
425
     * @return static
426
     *
427
     * @see http://schema.org/itemCondition
428
     */
429
    public function itemCondition($itemCondition)
430
    {
431
        return $this->setProperty('itemCondition', $itemCondition);
432
    }
433
434
    /**
435
     * The item being offered.
436
     *
437
     * @param Product|Product[]|Service|Service[] $itemOffered
438
     *
439
     * @return static
440
     *
441
     * @see http://schema.org/itemOffered
442
     */
443
    public function itemOffered($itemOffered)
444
    {
445
        return $this->setProperty('itemOffered', $itemOffered);
446
    }
447
448
    /**
449
     * The Manufacturer Part Number (MPN) of the product, or the product to
450
     * which the offer refers.
451
     *
452
     * @param string|string[] $mpn
453
     *
454
     * @return static
455
     *
456
     * @see http://schema.org/mpn
457
     */
458
    public function mpn($mpn)
459
    {
460
        return $this->setProperty('mpn', $mpn);
461
    }
462
463
    /**
464
     * The offer price of a product, or of a price component when attached to
465
     * PriceSpecification and its subtypes.
466
     * 
467
     * Usage guidelines:
468
     * 
469
     * * Use the [[priceCurrency]] property (with standard formats: [ISO 4217
470
     * currency format](http://en.wikipedia.org/wiki/ISO_4217) e.g. "USD";
471
     * [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies)
472
     * for cryptocurrencies e.g. "BTC"; well known names for [Local Exchange
473
     * Tradings
474
     * Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system)
475
     * (LETS) and other currency types e.g. "Ithaca HOUR") instead of including
476
     * [ambiguous
477
     * symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign)
478
     * such as '$' in the value.
479
     * * Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a
480
     * decimal point. Avoid using these symbols as a readability separator.
481
     * * Note that both
482
     * [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute)
483
     * and Microdata syntax allow the use of a "content=" attribute for
484
     * publishing simple machine-readable values alongside more human-friendly
485
     * formatting.
486
     * * Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT
487
     * NINE' (U+0039)) rather than superficially similiar Unicode symbols.
488
     *
489
     * @param float|float[]|int|int[]|string|string[] $price
490
     *
491
     * @return static
492
     *
493
     * @see http://schema.org/price
494
     */
495
    public function price($price)
496
    {
497
        return $this->setProperty('price', $price);
498
    }
499
500
    /**
501
     * The currency of the price, or a price component when attached to
502
     * [[PriceSpecification]] and its subtypes.
503
     * 
504
     * Use standard formats: [ISO 4217 currency
505
     * format](http://en.wikipedia.org/wiki/ISO_4217) e.g. "USD"; [Ticker
506
     * symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for
507
     * cryptocurrencies e.g. "BTC"; well known names for [Local Exchange
508
     * Tradings
509
     * Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system)
510
     * (LETS) and other currency types e.g. "Ithaca HOUR".
511
     *
512
     * @param string|string[] $priceCurrency
513
     *
514
     * @return static
515
     *
516
     * @see http://schema.org/priceCurrency
517
     */
518
    public function priceCurrency($priceCurrency)
519
    {
520
        return $this->setProperty('priceCurrency', $priceCurrency);
521
    }
522
523
    /**
524
     * One or more detailed price specifications, indicating the unit price and
525
     * delivery or payment charges.
526
     *
527
     * @param PriceSpecification|PriceSpecification[] $priceSpecification
528
     *
529
     * @return static
530
     *
531
     * @see http://schema.org/priceSpecification
532
     */
533
    public function priceSpecification($priceSpecification)
534
    {
535
        return $this->setProperty('priceSpecification', $priceSpecification);
536
    }
537
538
    /**
539
     * The date after which the price is no longer available.
540
     *
541
     * @param \DateTimeInterface|\DateTimeInterface[] $priceValidUntil
542
     *
543
     * @return static
544
     *
545
     * @see http://schema.org/priceValidUntil
546
     */
547
    public function priceValidUntil($priceValidUntil)
548
    {
549
        return $this->setProperty('priceValidUntil', $priceValidUntil);
550
    }
551
552
    /**
553
     * A review of the item.
554
     *
555
     * @param Review|Review[] $review
556
     *
557
     * @return static
558
     *
559
     * @see http://schema.org/review
560
     */
561
    public function review($review)
562
    {
563
        return $this->setProperty('review', $review);
564
    }
565
566
    /**
567
     * Review of the item.
568
     *
569
     * @param Review|Review[] $reviews
570
     *
571
     * @return static
572
     *
573
     * @see http://schema.org/reviews
574
     */
575
    public function reviews($reviews)
576
    {
577
        return $this->setProperty('reviews', $reviews);
578
    }
579
580
    /**
581
     * An entity which offers (sells / leases / lends / loans) the services /
582
     * goods.  A seller may also be a provider.
583
     *
584
     * @param Organization|Organization[]|Person|Person[] $seller
585
     *
586
     * @return static
587
     *
588
     * @see http://schema.org/seller
589
     */
590
    public function seller($seller)
591
    {
592
        return $this->setProperty('seller', $seller);
593
    }
594
595
    /**
596
     * The serial number or any alphanumeric identifier of a particular product.
597
     * When attached to an offer, it is a shortcut for the serial number of the
598
     * product included in the offer.
599
     *
600
     * @param string|string[] $serialNumber
601
     *
602
     * @return static
603
     *
604
     * @see http://schema.org/serialNumber
605
     */
606
    public function serialNumber($serialNumber)
607
    {
608
        return $this->setProperty('serialNumber', $serialNumber);
609
    }
610
611
    /**
612
     * The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a
613
     * product or service, or the product to which the offer refers.
614
     *
615
     * @param string|string[] $sku
616
     *
617
     * @return static
618
     *
619
     * @see http://schema.org/sku
620
     */
621
    public function sku($sku)
622
    {
623
        return $this->setProperty('sku', $sku);
624
    }
625
626
    /**
627
     * The date when the item becomes valid.
628
     *
629
     * @param \DateTimeInterface|\DateTimeInterface[] $validFrom
630
     *
631
     * @return static
632
     *
633
     * @see http://schema.org/validFrom
634
     */
635
    public function validFrom($validFrom)
636
    {
637
        return $this->setProperty('validFrom', $validFrom);
638
    }
639
640
    /**
641
     * The date after when the item is not valid. For example the end of an
642
     * offer, salary period, or a period of opening hours.
643
     *
644
     * @param \DateTimeInterface|\DateTimeInterface[] $validThrough
645
     *
646
     * @return static
647
     *
648
     * @see http://schema.org/validThrough
649
     */
650
    public function validThrough($validThrough)
651
    {
652
        return $this->setProperty('validThrough', $validThrough);
653
    }
654
655
    /**
656
     * The warranty promise(s) included in the offer.
657
     *
658
     * @param WarrantyPromise|WarrantyPromise[] $warranty
659
     *
660
     * @return static
661
     *
662
     * @see http://schema.org/warranty
663
     */
664
    public function warranty($warranty)
665
    {
666
        return $this->setProperty('warranty', $warranty);
667
    }
668
669
}
670