AggregateOffer::eligibleRegion()   A
last analyzed

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
use \Spatie\SchemaOrg\Contracts\AggregateOfferContract;
6
use \Spatie\SchemaOrg\Contracts\IntangibleContract;
7
use \Spatie\SchemaOrg\Contracts\OfferContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
10
/**
11
 * When a single product is associated with multiple offers (for example, the
12
 * same pair of shoes is offered by different merchants), then AggregateOffer
13
 * can be used.
14
 * 
15
 * Note: AggregateOffers are normally expected to associate multiple offers that
16
 * all share the same defined [[businessFunction]] value, or default to
17
 * http://purl.org/goodrelations/v1#Sell if businessFunction is not explicitly
18
 * defined.
19
 *
20
 * @see http://schema.org/AggregateOffer
21
 *
22
 */
23
class AggregateOffer extends BaseType implements AggregateOfferContract, IntangibleContract, OfferContract, ThingContract
24
{
25
    /**
26
     * The payment method(s) accepted by seller for this offer.
27
     *
28
     * @param \Spatie\SchemaOrg\Contracts\LoanOrCreditContract|\Spatie\SchemaOrg\Contracts\LoanOrCreditContract[]|\Spatie\SchemaOrg\Contracts\PaymentMethodContract|\Spatie\SchemaOrg\Contracts\PaymentMethodContract[] $acceptedPaymentMethod
29
     *
30
     * @return static
31
     *
32
     * @see http://schema.org/acceptedPaymentMethod
33
     */
34
    public function acceptedPaymentMethod($acceptedPaymentMethod)
35
    {
36
        return $this->setProperty('acceptedPaymentMethod', $acceptedPaymentMethod);
37
    }
38
39
    /**
40
     * An additional offer that can only be obtained in combination with the
41
     * first base offer (e.g. supplements and extensions that are available for
42
     * a surcharge).
43
     *
44
     * @param \Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $addOn
45
     *
46
     * @return static
47
     *
48
     * @see http://schema.org/addOn
49
     */
50
    public function addOn($addOn)
51
    {
52
        return $this->setProperty('addOn', $addOn);
53
    }
54
55
    /**
56
     * An additional type for the item, typically used for adding more specific
57
     * types from external vocabularies in microdata syntax. This is a
58
     * relationship between something and a class that the thing is in. In RDFa
59
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
60
     * attribute - for multiple types. Schema.org tools may have only weaker
61
     * understanding of extra types, in particular those defined externally.
62
     *
63
     * @param string|string[] $additionalType
64
     *
65
     * @return static
66
     *
67
     * @see http://schema.org/additionalType
68
     */
69
    public function additionalType($additionalType)
70
    {
71
        return $this->setProperty('additionalType', $additionalType);
72
    }
73
74
    /**
75
     * The amount of time that is required between accepting the offer and the
76
     * actual usage of the resource or service.
77
     *
78
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $advanceBookingRequirement
79
     *
80
     * @return static
81
     *
82
     * @see http://schema.org/advanceBookingRequirement
83
     */
84
    public function advanceBookingRequirement($advanceBookingRequirement)
85
    {
86
        return $this->setProperty('advanceBookingRequirement', $advanceBookingRequirement);
87
    }
88
89
    /**
90
     * The overall rating, based on a collection of reviews or ratings, of the
91
     * item.
92
     *
93
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
94
     *
95
     * @return static
96
     *
97
     * @see http://schema.org/aggregateRating
98
     */
99
    public function aggregateRating($aggregateRating)
100
    {
101
        return $this->setProperty('aggregateRating', $aggregateRating);
102
    }
103
104
    /**
105
     * An alias for the item.
106
     *
107
     * @param string|string[] $alternateName
108
     *
109
     * @return static
110
     *
111
     * @see http://schema.org/alternateName
112
     */
113
    public function alternateName($alternateName)
114
    {
115
        return $this->setProperty('alternateName', $alternateName);
116
    }
117
118
    /**
119
     * The geographic area where a service or offered item is provided.
120
     *
121
     * @param \Spatie\SchemaOrg\Contracts\AdministrativeAreaContract|\Spatie\SchemaOrg\Contracts\AdministrativeAreaContract[]|\Spatie\SchemaOrg\Contracts\GeoShapeContract|\Spatie\SchemaOrg\Contracts\GeoShapeContract[]|\Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|string|string[] $areaServed
122
     *
123
     * @return static
124
     *
125
     * @see http://schema.org/areaServed
126
     */
127
    public function areaServed($areaServed)
128
    {
129
        return $this->setProperty('areaServed', $areaServed);
130
    }
131
132
    /**
133
     * The availability of this item&#x2014;for example In stock, Out of stock,
134
     * Pre-order, etc.
135
     *
136
     * @param \Spatie\SchemaOrg\Contracts\ItemAvailabilityContract|\Spatie\SchemaOrg\Contracts\ItemAvailabilityContract[] $availability
137
     *
138
     * @return static
139
     *
140
     * @see http://schema.org/availability
141
     */
142
    public function availability($availability)
143
    {
144
        return $this->setProperty('availability', $availability);
145
    }
146
147
    /**
148
     * The end of the availability of the product or service included in the
149
     * offer.
150
     *
151
     * @param \DateTimeInterface|\DateTimeInterface[] $availabilityEnds
152
     *
153
     * @return static
154
     *
155
     * @see http://schema.org/availabilityEnds
156
     */
157
    public function availabilityEnds($availabilityEnds)
158
    {
159
        return $this->setProperty('availabilityEnds', $availabilityEnds);
160
    }
161
162
    /**
163
     * The beginning of the availability of the product or service included in
164
     * the offer.
165
     *
166
     * @param \DateTimeInterface|\DateTimeInterface[] $availabilityStarts
167
     *
168
     * @return static
169
     *
170
     * @see http://schema.org/availabilityStarts
171
     */
172
    public function availabilityStarts($availabilityStarts)
173
    {
174
        return $this->setProperty('availabilityStarts', $availabilityStarts);
175
    }
176
177
    /**
178
     * The place(s) from which the offer can be obtained (e.g. store locations).
179
     *
180
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $availableAtOrFrom
181
     *
182
     * @return static
183
     *
184
     * @see http://schema.org/availableAtOrFrom
185
     */
186
    public function availableAtOrFrom($availableAtOrFrom)
187
    {
188
        return $this->setProperty('availableAtOrFrom', $availableAtOrFrom);
189
    }
190
191
    /**
192
     * The delivery method(s) available for this offer.
193
     *
194
     * @param \Spatie\SchemaOrg\Contracts\DeliveryMethodContract|\Spatie\SchemaOrg\Contracts\DeliveryMethodContract[] $availableDeliveryMethod
195
     *
196
     * @return static
197
     *
198
     * @see http://schema.org/availableDeliveryMethod
199
     */
200
    public function availableDeliveryMethod($availableDeliveryMethod)
201
    {
202
        return $this->setProperty('availableDeliveryMethod', $availableDeliveryMethod);
203
    }
204
205
    /**
206
     * The business function (e.g. sell, lease, repair, dispose) of the offer or
207
     * component of a bundle (TypeAndQuantityNode). The default is
208
     * http://purl.org/goodrelations/v1#Sell.
209
     *
210
     * @param \Spatie\SchemaOrg\Contracts\BusinessFunctionContract|\Spatie\SchemaOrg\Contracts\BusinessFunctionContract[] $businessFunction
211
     *
212
     * @return static
213
     *
214
     * @see http://schema.org/businessFunction
215
     */
216
    public function businessFunction($businessFunction)
217
    {
218
        return $this->setProperty('businessFunction', $businessFunction);
219
    }
220
221
    /**
222
     * A category for the item. Greater signs or slashes can be used to
223
     * informally indicate a category hierarchy.
224
     *
225
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[]|string|string[] $category
226
     *
227
     * @return static
228
     *
229
     * @see http://schema.org/category
230
     */
231
    public function category($category)
232
    {
233
        return $this->setProperty('category', $category);
234
    }
235
236
    /**
237
     * The typical delay between the receipt of the order and the goods either
238
     * leaving the warehouse or being prepared for pickup, in case the delivery
239
     * method is on site pickup.
240
     *
241
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $deliveryLeadTime
242
     *
243
     * @return static
244
     *
245
     * @see http://schema.org/deliveryLeadTime
246
     */
247
    public function deliveryLeadTime($deliveryLeadTime)
248
    {
249
        return $this->setProperty('deliveryLeadTime', $deliveryLeadTime);
250
    }
251
252
    /**
253
     * A description of the item.
254
     *
255
     * @param string|string[] $description
256
     *
257
     * @return static
258
     *
259
     * @see http://schema.org/description
260
     */
261
    public function description($description)
262
    {
263
        return $this->setProperty('description', $description);
264
    }
265
266
    /**
267
     * A sub property of description. A short description of the item used to
268
     * disambiguate from other, similar items. Information from other properties
269
     * (in particular, name) may be necessary for the description to be useful
270
     * for disambiguation.
271
     *
272
     * @param string|string[] $disambiguatingDescription
273
     *
274
     * @return static
275
     *
276
     * @see http://schema.org/disambiguatingDescription
277
     */
278
    public function disambiguatingDescription($disambiguatingDescription)
279
    {
280
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
281
    }
282
283
    /**
284
     * The type(s) of customers for which the given offer is valid.
285
     *
286
     * @param \Spatie\SchemaOrg\Contracts\BusinessEntityTypeContract|\Spatie\SchemaOrg\Contracts\BusinessEntityTypeContract[] $eligibleCustomerType
287
     *
288
     * @return static
289
     *
290
     * @see http://schema.org/eligibleCustomerType
291
     */
292
    public function eligibleCustomerType($eligibleCustomerType)
293
    {
294
        return $this->setProperty('eligibleCustomerType', $eligibleCustomerType);
295
    }
296
297
    /**
298
     * The duration for which the given offer is valid.
299
     *
300
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $eligibleDuration
301
     *
302
     * @return static
303
     *
304
     * @see http://schema.org/eligibleDuration
305
     */
306
    public function eligibleDuration($eligibleDuration)
307
    {
308
        return $this->setProperty('eligibleDuration', $eligibleDuration);
309
    }
310
311
    /**
312
     * The interval and unit of measurement of ordering quantities for which the
313
     * offer or price specification is valid. This allows e.g. specifying that a
314
     * certain freight charge is valid only for a certain quantity.
315
     *
316
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $eligibleQuantity
317
     *
318
     * @return static
319
     *
320
     * @see http://schema.org/eligibleQuantity
321
     */
322
    public function eligibleQuantity($eligibleQuantity)
323
    {
324
        return $this->setProperty('eligibleQuantity', $eligibleQuantity);
325
    }
326
327
    /**
328
     * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the
329
     * GeoShape for the geo-political region(s) for which the offer or delivery
330
     * charge specification is valid.
331
     * 
332
     * See also [[ineligibleRegion]].
333
     *
334
     * @param \Spatie\SchemaOrg\Contracts\GeoShapeContract|\Spatie\SchemaOrg\Contracts\GeoShapeContract[]|\Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|string|string[] $eligibleRegion
335
     *
336
     * @return static
337
     *
338
     * @see http://schema.org/eligibleRegion
339
     */
340
    public function eligibleRegion($eligibleRegion)
341
    {
342
        return $this->setProperty('eligibleRegion', $eligibleRegion);
343
    }
344
345
    /**
346
     * The transaction volume, in a monetary unit, for which the offer or price
347
     * specification is valid, e.g. for indicating a minimal purchasing volume,
348
     * to express free shipping above a certain order volume, or to limit the
349
     * acceptance of credit cards to purchases to a certain minimal amount.
350
     *
351
     * @param \Spatie\SchemaOrg\Contracts\PriceSpecificationContract|\Spatie\SchemaOrg\Contracts\PriceSpecificationContract[] $eligibleTransactionVolume
352
     *
353
     * @return static
354
     *
355
     * @see http://schema.org/eligibleTransactionVolume
356
     */
357
    public function eligibleTransactionVolume($eligibleTransactionVolume)
358
    {
359
        return $this->setProperty('eligibleTransactionVolume', $eligibleTransactionVolume);
360
    }
361
362
    /**
363
     * The GTIN-12 code of the product, or the product to which the offer
364
     * refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a
365
     * U.P.C. Company Prefix, Item Reference, and Check Digit used to identify
366
     * trade items. See [GS1 GTIN
367
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
368
     * details.
369
     *
370
     * @param string|string[] $gtin12
371
     *
372
     * @return static
373
     *
374
     * @see http://schema.org/gtin12
375
     */
376
    public function gtin12($gtin12)
377
    {
378
        return $this->setProperty('gtin12', $gtin12);
379
    }
380
381
    /**
382
     * The GTIN-13 code of the product, or the product to which the offer
383
     * refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former
384
     * 12-digit UPC codes can be converted into a GTIN-13 code by simply adding
385
     * a preceeding zero. See [GS1 GTIN
386
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
387
     * details.
388
     *
389
     * @param string|string[] $gtin13
390
     *
391
     * @return static
392
     *
393
     * @see http://schema.org/gtin13
394
     */
395
    public function gtin13($gtin13)
396
    {
397
        return $this->setProperty('gtin13', $gtin13);
398
    }
399
400
    /**
401
     * The GTIN-14 code of the product, or the product to which the offer
402
     * refers. See [GS1 GTIN
403
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
404
     * details.
405
     *
406
     * @param string|string[] $gtin14
407
     *
408
     * @return static
409
     *
410
     * @see http://schema.org/gtin14
411
     */
412
    public function gtin14($gtin14)
413
    {
414
        return $this->setProperty('gtin14', $gtin14);
415
    }
416
417
    /**
418
     * The [GTIN-8](http://apps.gs1.org/GDD/glossary/Pages/GTIN-8.aspx) code of
419
     * the product, or the product to which the offer refers. This code is also
420
     * known as EAN/UCC-8 or 8-digit EAN. See [GS1 GTIN
421
     * Summary](http://www.gs1.org/barcodes/technical/idkeys/gtin) for more
422
     * details.
423
     *
424
     * @param string|string[] $gtin8
425
     *
426
     * @return static
427
     *
428
     * @see http://schema.org/gtin8
429
     */
430
    public function gtin8($gtin8)
431
    {
432
        return $this->setProperty('gtin8', $gtin8);
433
    }
434
435
    /**
436
     * The highest price of all offers available.
437
     * 
438
     * Usage guidelines:
439
     * 
440
     * * Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT
441
     * NINE' (U+0039)) rather than superficially similiar Unicode symbols.
442
     * * Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a
443
     * decimal point. Avoid using these symbols as a readability separator.
444
     *
445
     * @param float|float[]|int|int[]|string|string[] $highPrice
446
     *
447
     * @return static
448
     *
449
     * @see http://schema.org/highPrice
450
     */
451
    public function highPrice($highPrice)
452
    {
453
        return $this->setProperty('highPrice', $highPrice);
454
    }
455
456
    /**
457
     * The identifier property represents any kind of identifier for any kind of
458
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
459
     * dedicated properties for representing many of these, either as textual
460
     * strings or as URL (URI) links. See [background
461
     * notes](/docs/datamodel.html#identifierBg) for more details.
462
     *
463
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
464
     *
465
     * @return static
466
     *
467
     * @see http://schema.org/identifier
468
     */
469
    public function identifier($identifier)
470
    {
471
        return $this->setProperty('identifier', $identifier);
472
    }
473
474
    /**
475
     * An image of the item. This can be a [[URL]] or a fully described
476
     * [[ImageObject]].
477
     *
478
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
479
     *
480
     * @return static
481
     *
482
     * @see http://schema.org/image
483
     */
484
    public function image($image)
485
    {
486
        return $this->setProperty('image', $image);
487
    }
488
489
    /**
490
     * This links to a node or nodes indicating the exact quantity of the
491
     * products included in the offer.
492
     *
493
     * @param \Spatie\SchemaOrg\Contracts\TypeAndQuantityNodeContract|\Spatie\SchemaOrg\Contracts\TypeAndQuantityNodeContract[] $includesObject
494
     *
495
     * @return static
496
     *
497
     * @see http://schema.org/includesObject
498
     */
499
    public function includesObject($includesObject)
500
    {
501
        return $this->setProperty('includesObject', $includesObject);
502
    }
503
504
    /**
505
     * The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the
506
     * GeoShape for the geo-political region(s) for which the offer or delivery
507
     * charge specification is not valid, e.g. a region where the transaction is
508
     * not allowed.
509
     * 
510
     * See also [[eligibleRegion]].
511
     *
512
     * @param \Spatie\SchemaOrg\Contracts\GeoShapeContract|\Spatie\SchemaOrg\Contracts\GeoShapeContract[]|\Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|string|string[] $ineligibleRegion
513
     *
514
     * @return static
515
     *
516
     * @see http://schema.org/ineligibleRegion
517
     */
518
    public function ineligibleRegion($ineligibleRegion)
519
    {
520
        return $this->setProperty('ineligibleRegion', $ineligibleRegion);
521
    }
522
523
    /**
524
     * The current approximate inventory level for the item or items.
525
     *
526
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $inventoryLevel
527
     *
528
     * @return static
529
     *
530
     * @see http://schema.org/inventoryLevel
531
     */
532
    public function inventoryLevel($inventoryLevel)
533
    {
534
        return $this->setProperty('inventoryLevel', $inventoryLevel);
535
    }
536
537
    /**
538
     * A predefined value from OfferItemCondition or a textual description of
539
     * the condition of the product or service, or the products or services
540
     * included in the offer.
541
     *
542
     * @param \Spatie\SchemaOrg\Contracts\OfferItemConditionContract|\Spatie\SchemaOrg\Contracts\OfferItemConditionContract[] $itemCondition
543
     *
544
     * @return static
545
     *
546
     * @see http://schema.org/itemCondition
547
     */
548
    public function itemCondition($itemCondition)
549
    {
550
        return $this->setProperty('itemCondition', $itemCondition);
551
    }
552
553
    /**
554
     * An item being offered (or demanded). The transactional nature of the
555
     * offer or demand is documented using [[businessFunction]], e.g. sell,
556
     * lease etc. While several common expected types are listed explicitly in
557
     * this definition, others can be used. Using a second type, such as Product
558
     * or a subtype of Product, can clarify the nature of the offer.
559
     *
560
     * @param \Spatie\SchemaOrg\Contracts\AggregateOfferContract|\Spatie\SchemaOrg\Contracts\AggregateOfferContract[]|\Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[]|\Spatie\SchemaOrg\Contracts\MenuItemContract|\Spatie\SchemaOrg\Contracts\MenuItemContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|\Spatie\SchemaOrg\Contracts\ServiceContract|\Spatie\SchemaOrg\Contracts\ServiceContract[]|\Spatie\SchemaOrg\Contracts\TripContract|\Spatie\SchemaOrg\Contracts\TripContract[] $itemOffered
561
     *
562
     * @return static
563
     *
564
     * @see http://schema.org/itemOffered
565
     */
566
    public function itemOffered($itemOffered)
567
    {
568
        return $this->setProperty('itemOffered', $itemOffered);
569
    }
570
571
    /**
572
     * The lowest price of all offers available.
573
     * 
574
     * Usage guidelines:
575
     * 
576
     * * Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT
577
     * NINE' (U+0039)) rather than superficially similiar Unicode symbols.
578
     * * Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a
579
     * decimal point. Avoid using these symbols as a readability separator.
580
     *
581
     * @param float|float[]|int|int[]|string|string[] $lowPrice
582
     *
583
     * @return static
584
     *
585
     * @see http://schema.org/lowPrice
586
     */
587
    public function lowPrice($lowPrice)
588
    {
589
        return $this->setProperty('lowPrice', $lowPrice);
590
    }
591
592
    /**
593
     * Indicates a page (or other CreativeWork) for which this thing is the main
594
     * entity being described. See [background
595
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
596
     *
597
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
598
     *
599
     * @return static
600
     *
601
     * @see http://schema.org/mainEntityOfPage
602
     */
603
    public function mainEntityOfPage($mainEntityOfPage)
604
    {
605
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
606
    }
607
608
    /**
609
     * The Manufacturer Part Number (MPN) of the product, or the product to
610
     * which the offer refers.
611
     *
612
     * @param string|string[] $mpn
613
     *
614
     * @return static
615
     *
616
     * @see http://schema.org/mpn
617
     */
618
    public function mpn($mpn)
619
    {
620
        return $this->setProperty('mpn', $mpn);
621
    }
622
623
    /**
624
     * The name of the item.
625
     *
626
     * @param string|string[] $name
627
     *
628
     * @return static
629
     *
630
     * @see http://schema.org/name
631
     */
632
    public function name($name)
633
    {
634
        return $this->setProperty('name', $name);
635
    }
636
637
    /**
638
     * The number of offers for the product.
639
     *
640
     * @param int|int[] $offerCount
641
     *
642
     * @return static
643
     *
644
     * @see http://schema.org/offerCount
645
     */
646
    public function offerCount($offerCount)
647
    {
648
        return $this->setProperty('offerCount', $offerCount);
649
    }
650
651
    /**
652
     * An offer to provide this item&#x2014;for example, an offer to sell a
653
     * product, rent the DVD of a movie, perform a service, or give away tickets
654
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
655
     * offered, i.e. sell, lease, etc. This property can also be used to
656
     * describe a [[Demand]]. While this property is listed as expected on a
657
     * number of common types, it can be used in others. In that case, using a
658
     * second type, such as Product or a subtype of Product, can clarify the
659
     * nature of the offer.
660
     *
661
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
662
     *
663
     * @return static
664
     *
665
     * @see http://schema.org/offers
666
     */
667
    public function offers($offers)
668
    {
669
        return $this->setProperty('offers', $offers);
670
    }
671
672
    /**
673
     * Indicates a potential Action, which describes an idealized action in
674
     * which this thing would play an 'object' role.
675
     *
676
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
677
     *
678
     * @return static
679
     *
680
     * @see http://schema.org/potentialAction
681
     */
682
    public function potentialAction($potentialAction)
683
    {
684
        return $this->setProperty('potentialAction', $potentialAction);
685
    }
686
687
    /**
688
     * The offer price of a product, or of a price component when attached to
689
     * PriceSpecification and its subtypes.
690
     * 
691
     * Usage guidelines:
692
     * 
693
     * * Use the [[priceCurrency]] property (with standard formats: [ISO 4217
694
     * currency format](http://en.wikipedia.org/wiki/ISO_4217) e.g. "USD";
695
     * [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies)
696
     * for cryptocurrencies e.g. "BTC"; well known names for [Local Exchange
697
     * Tradings
698
     * Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system)
699
     * (LETS) and other currency types e.g. "Ithaca HOUR") instead of including
700
     * [ambiguous
701
     * symbols](http://en.wikipedia.org/wiki/Dollar_sign#Currencies_that_use_the_dollar_or_peso_sign)
702
     * such as '$' in the value.
703
     * * Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a
704
     * decimal point. Avoid using these symbols as a readability separator.
705
     * * Note that both
706
     * [RDFa](http://www.w3.org/TR/xhtml-rdfa-primer/#using-the-content-attribute)
707
     * and Microdata syntax allow the use of a "content=" attribute for
708
     * publishing simple machine-readable values alongside more human-friendly
709
     * formatting.
710
     * * Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT
711
     * NINE' (U+0039)) rather than superficially similiar Unicode symbols.
712
     *
713
     * @param float|float[]|int|int[]|string|string[] $price
714
     *
715
     * @return static
716
     *
717
     * @see http://schema.org/price
718
     */
719
    public function price($price)
720
    {
721
        return $this->setProperty('price', $price);
722
    }
723
724
    /**
725
     * The currency of the price, or a price component when attached to
726
     * [[PriceSpecification]] and its subtypes.
727
     * 
728
     * Use standard formats: [ISO 4217 currency
729
     * format](http://en.wikipedia.org/wiki/ISO_4217) e.g. "USD"; [Ticker
730
     * symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for
731
     * cryptocurrencies e.g. "BTC"; well known names for [Local Exchange
732
     * Tradings
733
     * Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system)
734
     * (LETS) and other currency types e.g. "Ithaca HOUR".
735
     *
736
     * @param string|string[] $priceCurrency
737
     *
738
     * @return static
739
     *
740
     * @see http://schema.org/priceCurrency
741
     */
742
    public function priceCurrency($priceCurrency)
743
    {
744
        return $this->setProperty('priceCurrency', $priceCurrency);
745
    }
746
747
    /**
748
     * One or more detailed price specifications, indicating the unit price and
749
     * delivery or payment charges.
750
     *
751
     * @param \Spatie\SchemaOrg\Contracts\PriceSpecificationContract|\Spatie\SchemaOrg\Contracts\PriceSpecificationContract[] $priceSpecification
752
     *
753
     * @return static
754
     *
755
     * @see http://schema.org/priceSpecification
756
     */
757
    public function priceSpecification($priceSpecification)
758
    {
759
        return $this->setProperty('priceSpecification', $priceSpecification);
760
    }
761
762
    /**
763
     * The date after which the price is no longer available.
764
     *
765
     * @param \DateTimeInterface|\DateTimeInterface[] $priceValidUntil
766
     *
767
     * @return static
768
     *
769
     * @see http://schema.org/priceValidUntil
770
     */
771
    public function priceValidUntil($priceValidUntil)
772
    {
773
        return $this->setProperty('priceValidUntil', $priceValidUntil);
774
    }
775
776
    /**
777
     * A review of the item.
778
     *
779
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
780
     *
781
     * @return static
782
     *
783
     * @see http://schema.org/review
784
     */
785
    public function review($review)
786
    {
787
        return $this->setProperty('review', $review);
788
    }
789
790
    /**
791
     * Review of the item.
792
     *
793
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
794
     *
795
     * @return static
796
     *
797
     * @see http://schema.org/reviews
798
     */
799
    public function reviews($reviews)
800
    {
801
        return $this->setProperty('reviews', $reviews);
802
    }
803
804
    /**
805
     * URL of a reference Web page that unambiguously indicates the item's
806
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
807
     * official website.
808
     *
809
     * @param string|string[] $sameAs
810
     *
811
     * @return static
812
     *
813
     * @see http://schema.org/sameAs
814
     */
815
    public function sameAs($sameAs)
816
    {
817
        return $this->setProperty('sameAs', $sameAs);
818
    }
819
820
    /**
821
     * An entity which offers (sells / leases / lends / loans) the services /
822
     * goods.  A seller may also be a provider.
823
     *
824
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $seller
825
     *
826
     * @return static
827
     *
828
     * @see http://schema.org/seller
829
     */
830
    public function seller($seller)
831
    {
832
        return $this->setProperty('seller', $seller);
833
    }
834
835
    /**
836
     * The serial number or any alphanumeric identifier of a particular product.
837
     * When attached to an offer, it is a shortcut for the serial number of the
838
     * product included in the offer.
839
     *
840
     * @param string|string[] $serialNumber
841
     *
842
     * @return static
843
     *
844
     * @see http://schema.org/serialNumber
845
     */
846
    public function serialNumber($serialNumber)
847
    {
848
        return $this->setProperty('serialNumber', $serialNumber);
849
    }
850
851
    /**
852
     * The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a
853
     * product or service, or the product to which the offer refers.
854
     *
855
     * @param string|string[] $sku
856
     *
857
     * @return static
858
     *
859
     * @see http://schema.org/sku
860
     */
861
    public function sku($sku)
862
    {
863
        return $this->setProperty('sku', $sku);
864
    }
865
866
    /**
867
     * A CreativeWork or Event about this Thing.
868
     *
869
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
870
     *
871
     * @return static
872
     *
873
     * @see http://schema.org/subjectOf
874
     */
875
    public function subjectOf($subjectOf)
876
    {
877
        return $this->setProperty('subjectOf', $subjectOf);
878
    }
879
880
    /**
881
     * URL of the item.
882
     *
883
     * @param string|string[] $url
884
     *
885
     * @return static
886
     *
887
     * @see http://schema.org/url
888
     */
889
    public function url($url)
890
    {
891
        return $this->setProperty('url', $url);
892
    }
893
894
    /**
895
     * The date when the item becomes valid.
896
     *
897
     * @param \DateTimeInterface|\DateTimeInterface[] $validFrom
898
     *
899
     * @return static
900
     *
901
     * @see http://schema.org/validFrom
902
     */
903
    public function validFrom($validFrom)
904
    {
905
        return $this->setProperty('validFrom', $validFrom);
906
    }
907
908
    /**
909
     * The date after when the item is not valid. For example the end of an
910
     * offer, salary period, or a period of opening hours.
911
     *
912
     * @param \DateTimeInterface|\DateTimeInterface[] $validThrough
913
     *
914
     * @return static
915
     *
916
     * @see http://schema.org/validThrough
917
     */
918
    public function validThrough($validThrough)
919
    {
920
        return $this->setProperty('validThrough', $validThrough);
921
    }
922
923
    /**
924
     * The warranty promise(s) included in the offer.
925
     *
926
     * @param \Spatie\SchemaOrg\Contracts\WarrantyPromiseContract|\Spatie\SchemaOrg\Contracts\WarrantyPromiseContract[] $warranty
927
     *
928
     * @return static
929
     *
930
     * @see http://schema.org/warranty
931
     */
932
    public function warranty($warranty)
933
    {
934
        return $this->setProperty('warranty', $warranty);
935
    }
936
937
}
938