TVSeries   F
last analyzed

Complexity

Total Complexity 115

Size/Duplication

Total Lines 1777
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 115
lcom 1
cbo 1
dl 0
loc 1777
rs 0.8
c 0
b 0
f 0

115 Methods

Rating   Name   Duplication   Size   Complexity  
A about() 0 4 1
A accessMode() 0 4 1
A accessModeSufficient() 0 4 1
A accessibilityAPI() 0 4 1
A accessibilityControl() 0 4 1
A accessibilityFeature() 0 4 1
A accessibilityHazard() 0 4 1
A accessibilitySummary() 0 4 1
A accountablePerson() 0 4 1
A actor() 0 4 1
A actors() 0 4 1
A additionalType() 0 4 1
A aggregateRating() 0 4 1
A alternateName() 0 4 1
A alternativeHeadline() 0 4 1
A associatedMedia() 0 4 1
A audience() 0 4 1
A audio() 0 4 1
A author() 0 4 1
A award() 0 4 1
A awards() 0 4 1
A character() 0 4 1
A citation() 0 4 1
A comment() 0 4 1
A commentCount() 0 4 1
A containsSeason() 0 4 1
A contentLocation() 0 4 1
A contentRating() 0 4 1
A contributor() 0 4 1
A copyrightHolder() 0 4 1
A copyrightYear() 0 4 1
A countryOfOrigin() 0 4 1
A creator() 0 4 1
A dateCreated() 0 4 1
A dateModified() 0 4 1
A datePublished() 0 4 1
A description() 0 4 1
A director() 0 4 1
A directors() 0 4 1
A disambiguatingDescription() 0 4 1
A discussionUrl() 0 4 1
A editor() 0 4 1
A educationalAlignment() 0 4 1
A educationalUse() 0 4 1
A encoding() 0 4 1
A encodingFormat() 0 4 1
A encodings() 0 4 1
A endDate() 0 4 1
A episode() 0 4 1
A episodes() 0 4 1
A exampleOfWork() 0 4 1
A expires() 0 4 1
A fileFormat() 0 4 1
A funder() 0 4 1
A genre() 0 4 1
A hasPart() 0 4 1
A headline() 0 4 1
A identifier() 0 4 1
A image() 0 4 1
A inLanguage() 0 4 1
A interactionStatistic() 0 4 1
A interactivityType() 0 4 1
A isAccessibleForFree() 0 4 1
A isBasedOn() 0 4 1
A isBasedOnUrl() 0 4 1
A isFamilyFriendly() 0 4 1
A isPartOf() 0 4 1
A issn() 0 4 1
A keywords() 0 4 1
A learningResourceType() 0 4 1
A license() 0 4 1
A locationCreated() 0 4 1
A mainEntity() 0 4 1
A mainEntityOfPage() 0 4 1
A material() 0 4 1
A mentions() 0 4 1
A musicBy() 0 4 1
A name() 0 4 1
A numberOfEpisodes() 0 4 1
A numberOfSeasons() 0 4 1
A offers() 0 4 1
A position() 0 4 1
A potentialAction() 0 4 1
A producer() 0 4 1
A productionCompany() 0 4 1
A provider() 0 4 1
A publication() 0 4 1
A publisher() 0 4 1
A publishingPrinciples() 0 4 1
A recordedAt() 0 4 1
A releasedEvent() 0 4 1
A review() 0 4 1
A reviews() 0 4 1
A sameAs() 0 4 1
A schemaVersion() 0 4 1
A season() 0 4 1
A seasons() 0 4 1
A sourceOrganization() 0 4 1
A spatial() 0 4 1
A spatialCoverage() 0 4 1
A sponsor() 0 4 1
A startDate() 0 4 1
A subjectOf() 0 4 1
A temporal() 0 4 1
A temporalCoverage() 0 4 1
A text() 0 4 1
A thumbnailUrl() 0 4 1
A timeRequired() 0 4 1
A trailer() 0 4 1
A translator() 0 4 1
A typicalAgeRange() 0 4 1
A url() 0 4 1
A version() 0 4 1
A video() 0 4 1
A workExample() 0 4 1

How to fix   Complexity   

Complex Class

Complex classes like TVSeries often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use TVSeries, and based on these observations, apply Extract Interface, too.

1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\TVSeriesContract;
6
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
7
use \Spatie\SchemaOrg\Contracts\CreativeWorkSeriesContract;
8
use \Spatie\SchemaOrg\Contracts\IntangibleContract;
9
use \Spatie\SchemaOrg\Contracts\SeriesContract;
10
use \Spatie\SchemaOrg\Contracts\ThingContract;
11
12
/**
13
 * CreativeWorkSeries dedicated to TV broadcast and associated online delivery.
14
 *
15
 * @see http://schema.org/TVSeries
16
 *
17
 */
18
class TVSeries extends BaseType implements TVSeriesContract, CreativeWorkContract, CreativeWorkSeriesContract, IntangibleContract, SeriesContract, ThingContract
19
{
20
    /**
21
     * The subject matter of the content.
22
     *
23
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
24
     *
25
     * @return static
26
     *
27
     * @see http://schema.org/about
28
     */
29
    public function about($about)
30
    {
31
        return $this->setProperty('about', $about);
32
    }
33
34
    /**
35
     * The human sensory perceptual system or cognitive faculty through which a
36
     * person may process or perceive information. Expected values include:
37
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
38
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
39
     *
40
     * @param string|string[] $accessMode
41
     *
42
     * @return static
43
     *
44
     * @see http://schema.org/accessMode
45
     */
46
    public function accessMode($accessMode)
47
    {
48
        return $this->setProperty('accessMode', $accessMode);
49
    }
50
51
    /**
52
     * A list of single or combined accessModes that are sufficient to
53
     * understand all the intellectual content of a resource. Expected values
54
     * include:  auditory, tactile, textual, visual.
55
     *
56
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
57
     *
58
     * @return static
59
     *
60
     * @see http://schema.org/accessModeSufficient
61
     */
62
    public function accessModeSufficient($accessModeSufficient)
63
    {
64
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
65
    }
66
67
    /**
68
     * Indicates that the resource is compatible with the referenced
69
     * accessibility API ([WebSchemas wiki lists possible
70
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
71
     *
72
     * @param string|string[] $accessibilityAPI
73
     *
74
     * @return static
75
     *
76
     * @see http://schema.org/accessibilityAPI
77
     */
78
    public function accessibilityAPI($accessibilityAPI)
79
    {
80
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
81
    }
82
83
    /**
84
     * Identifies input methods that are sufficient to fully control the
85
     * described resource ([WebSchemas wiki lists possible
86
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
87
     *
88
     * @param string|string[] $accessibilityControl
89
     *
90
     * @return static
91
     *
92
     * @see http://schema.org/accessibilityControl
93
     */
94
    public function accessibilityControl($accessibilityControl)
95
    {
96
        return $this->setProperty('accessibilityControl', $accessibilityControl);
97
    }
98
99
    /**
100
     * Content features of the resource, such as accessible media, alternatives
101
     * and supported enhancements for accessibility ([WebSchemas wiki lists
102
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
103
     *
104
     * @param string|string[] $accessibilityFeature
105
     *
106
     * @return static
107
     *
108
     * @see http://schema.org/accessibilityFeature
109
     */
110
    public function accessibilityFeature($accessibilityFeature)
111
    {
112
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
113
    }
114
115
    /**
116
     * A characteristic of the described resource that is physiologically
117
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
118
     * wiki lists possible
119
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
120
     *
121
     * @param string|string[] $accessibilityHazard
122
     *
123
     * @return static
124
     *
125
     * @see http://schema.org/accessibilityHazard
126
     */
127
    public function accessibilityHazard($accessibilityHazard)
128
    {
129
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
130
    }
131
132
    /**
133
     * A human-readable summary of specific accessibility features or
134
     * deficiencies, consistent with the other accessibility metadata but
135
     * expressing subtleties such as "short descriptions are present but long
136
     * descriptions will be needed for non-visual users" or "short descriptions
137
     * are present and no long descriptions are needed."
138
     *
139
     * @param string|string[] $accessibilitySummary
140
     *
141
     * @return static
142
     *
143
     * @see http://schema.org/accessibilitySummary
144
     */
145
    public function accessibilitySummary($accessibilitySummary)
146
    {
147
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
148
    }
149
150
    /**
151
     * Specifies the Person that is legally accountable for the CreativeWork.
152
     *
153
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
154
     *
155
     * @return static
156
     *
157
     * @see http://schema.org/accountablePerson
158
     */
159
    public function accountablePerson($accountablePerson)
160
    {
161
        return $this->setProperty('accountablePerson', $accountablePerson);
162
    }
163
164
    /**
165
     * An actor, e.g. in tv, radio, movie, video games etc., or in an event.
166
     * Actors can be associated with individual items or with a series, episode,
167
     * clip.
168
     *
169
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $actor
170
     *
171
     * @return static
172
     *
173
     * @see http://schema.org/actor
174
     */
175
    public function actor($actor)
176
    {
177
        return $this->setProperty('actor', $actor);
178
    }
179
180
    /**
181
     * An actor, e.g. in tv, radio, movie, video games etc. Actors can be
182
     * associated with individual items or with a series, episode, clip.
183
     *
184
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $actors
185
     *
186
     * @return static
187
     *
188
     * @see http://schema.org/actors
189
     */
190
    public function actors($actors)
191
    {
192
        return $this->setProperty('actors', $actors);
193
    }
194
195
    /**
196
     * An additional type for the item, typically used for adding more specific
197
     * types from external vocabularies in microdata syntax. This is a
198
     * relationship between something and a class that the thing is in. In RDFa
199
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
200
     * attribute - for multiple types. Schema.org tools may have only weaker
201
     * understanding of extra types, in particular those defined externally.
202
     *
203
     * @param string|string[] $additionalType
204
     *
205
     * @return static
206
     *
207
     * @see http://schema.org/additionalType
208
     */
209
    public function additionalType($additionalType)
210
    {
211
        return $this->setProperty('additionalType', $additionalType);
212
    }
213
214
    /**
215
     * The overall rating, based on a collection of reviews or ratings, of the
216
     * item.
217
     *
218
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
219
     *
220
     * @return static
221
     *
222
     * @see http://schema.org/aggregateRating
223
     */
224
    public function aggregateRating($aggregateRating)
225
    {
226
        return $this->setProperty('aggregateRating', $aggregateRating);
227
    }
228
229
    /**
230
     * An alias for the item.
231
     *
232
     * @param string|string[] $alternateName
233
     *
234
     * @return static
235
     *
236
     * @see http://schema.org/alternateName
237
     */
238
    public function alternateName($alternateName)
239
    {
240
        return $this->setProperty('alternateName', $alternateName);
241
    }
242
243
    /**
244
     * A secondary title of the CreativeWork.
245
     *
246
     * @param string|string[] $alternativeHeadline
247
     *
248
     * @return static
249
     *
250
     * @see http://schema.org/alternativeHeadline
251
     */
252
    public function alternativeHeadline($alternativeHeadline)
253
    {
254
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
255
    }
256
257
    /**
258
     * A media object that encodes this CreativeWork. This property is a synonym
259
     * for encoding.
260
     *
261
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
262
     *
263
     * @return static
264
     *
265
     * @see http://schema.org/associatedMedia
266
     */
267
    public function associatedMedia($associatedMedia)
268
    {
269
        return $this->setProperty('associatedMedia', $associatedMedia);
270
    }
271
272
    /**
273
     * An intended audience, i.e. a group for whom something was created.
274
     *
275
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
276
     *
277
     * @return static
278
     *
279
     * @see http://schema.org/audience
280
     */
281
    public function audience($audience)
282
    {
283
        return $this->setProperty('audience', $audience);
284
    }
285
286
    /**
287
     * An embedded audio object.
288
     *
289
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
290
     *
291
     * @return static
292
     *
293
     * @see http://schema.org/audio
294
     */
295
    public function audio($audio)
296
    {
297
        return $this->setProperty('audio', $audio);
298
    }
299
300
    /**
301
     * The author of this content or rating. Please note that author is special
302
     * in that HTML 5 provides a special mechanism for indicating authorship via
303
     * the rel tag. That is equivalent to this and may be used interchangeably.
304
     *
305
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
306
     *
307
     * @return static
308
     *
309
     * @see http://schema.org/author
310
     */
311
    public function author($author)
312
    {
313
        return $this->setProperty('author', $author);
314
    }
315
316
    /**
317
     * An award won by or for this item.
318
     *
319
     * @param string|string[] $award
320
     *
321
     * @return static
322
     *
323
     * @see http://schema.org/award
324
     */
325
    public function award($award)
326
    {
327
        return $this->setProperty('award', $award);
328
    }
329
330
    /**
331
     * Awards won by or for this item.
332
     *
333
     * @param string|string[] $awards
334
     *
335
     * @return static
336
     *
337
     * @see http://schema.org/awards
338
     */
339
    public function awards($awards)
340
    {
341
        return $this->setProperty('awards', $awards);
342
    }
343
344
    /**
345
     * Fictional person connected with a creative work.
346
     *
347
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
348
     *
349
     * @return static
350
     *
351
     * @see http://schema.org/character
352
     */
353
    public function character($character)
354
    {
355
        return $this->setProperty('character', $character);
356
    }
357
358
    /**
359
     * A citation or reference to another creative work, such as another
360
     * publication, web page, scholarly article, etc.
361
     *
362
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
363
     *
364
     * @return static
365
     *
366
     * @see http://schema.org/citation
367
     */
368
    public function citation($citation)
369
    {
370
        return $this->setProperty('citation', $citation);
371
    }
372
373
    /**
374
     * Comments, typically from users.
375
     *
376
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
377
     *
378
     * @return static
379
     *
380
     * @see http://schema.org/comment
381
     */
382
    public function comment($comment)
383
    {
384
        return $this->setProperty('comment', $comment);
385
    }
386
387
    /**
388
     * The number of comments this CreativeWork (e.g. Article, Question or
389
     * Answer) has received. This is most applicable to works published in Web
390
     * sites with commenting system; additional comments may exist elsewhere.
391
     *
392
     * @param int|int[] $commentCount
393
     *
394
     * @return static
395
     *
396
     * @see http://schema.org/commentCount
397
     */
398
    public function commentCount($commentCount)
399
    {
400
        return $this->setProperty('commentCount', $commentCount);
401
    }
402
403
    /**
404
     * A season that is part of the media series.
405
     *
406
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkSeasonContract|\Spatie\SchemaOrg\Contracts\CreativeWorkSeasonContract[] $containsSeason
407
     *
408
     * @return static
409
     *
410
     * @see http://schema.org/containsSeason
411
     */
412
    public function containsSeason($containsSeason)
413
    {
414
        return $this->setProperty('containsSeason', $containsSeason);
415
    }
416
417
    /**
418
     * The location depicted or described in the content. For example, the
419
     * location in a photograph or painting.
420
     *
421
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
422
     *
423
     * @return static
424
     *
425
     * @see http://schema.org/contentLocation
426
     */
427
    public function contentLocation($contentLocation)
428
    {
429
        return $this->setProperty('contentLocation', $contentLocation);
430
    }
431
432
    /**
433
     * Official rating of a piece of content&#x2014;for example,'MPAA PG-13'.
434
     *
435
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
436
     *
437
     * @return static
438
     *
439
     * @see http://schema.org/contentRating
440
     */
441
    public function contentRating($contentRating)
442
    {
443
        return $this->setProperty('contentRating', $contentRating);
444
    }
445
446
    /**
447
     * A secondary contributor to the CreativeWork or Event.
448
     *
449
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
450
     *
451
     * @return static
452
     *
453
     * @see http://schema.org/contributor
454
     */
455
    public function contributor($contributor)
456
    {
457
        return $this->setProperty('contributor', $contributor);
458
    }
459
460
    /**
461
     * The party holding the legal copyright to the CreativeWork.
462
     *
463
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
464
     *
465
     * @return static
466
     *
467
     * @see http://schema.org/copyrightHolder
468
     */
469
    public function copyrightHolder($copyrightHolder)
470
    {
471
        return $this->setProperty('copyrightHolder', $copyrightHolder);
472
    }
473
474
    /**
475
     * The year during which the claimed copyright for the CreativeWork was
476
     * first asserted.
477
     *
478
     * @param float|float[]|int|int[] $copyrightYear
479
     *
480
     * @return static
481
     *
482
     * @see http://schema.org/copyrightYear
483
     */
484
    public function copyrightYear($copyrightYear)
485
    {
486
        return $this->setProperty('copyrightYear', $copyrightYear);
487
    }
488
489
    /**
490
     * The country of the principal offices of the production company or
491
     * individual responsible for the movie or program.
492
     *
493
     * @param \Spatie\SchemaOrg\Contracts\CountryContract|\Spatie\SchemaOrg\Contracts\CountryContract[] $countryOfOrigin
494
     *
495
     * @return static
496
     *
497
     * @see http://schema.org/countryOfOrigin
498
     */
499
    public function countryOfOrigin($countryOfOrigin)
500
    {
501
        return $this->setProperty('countryOfOrigin', $countryOfOrigin);
502
    }
503
504
    /**
505
     * The creator/author of this CreativeWork. This is the same as the Author
506
     * property for CreativeWork.
507
     *
508
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
509
     *
510
     * @return static
511
     *
512
     * @see http://schema.org/creator
513
     */
514
    public function creator($creator)
515
    {
516
        return $this->setProperty('creator', $creator);
517
    }
518
519
    /**
520
     * The date on which the CreativeWork was created or the item was added to a
521
     * DataFeed.
522
     *
523
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
524
     *
525
     * @return static
526
     *
527
     * @see http://schema.org/dateCreated
528
     */
529
    public function dateCreated($dateCreated)
530
    {
531
        return $this->setProperty('dateCreated', $dateCreated);
532
    }
533
534
    /**
535
     * The date on which the CreativeWork was most recently modified or when the
536
     * item's entry was modified within a DataFeed.
537
     *
538
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
539
     *
540
     * @return static
541
     *
542
     * @see http://schema.org/dateModified
543
     */
544
    public function dateModified($dateModified)
545
    {
546
        return $this->setProperty('dateModified', $dateModified);
547
    }
548
549
    /**
550
     * Date of first broadcast/publication.
551
     *
552
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
553
     *
554
     * @return static
555
     *
556
     * @see http://schema.org/datePublished
557
     */
558
    public function datePublished($datePublished)
559
    {
560
        return $this->setProperty('datePublished', $datePublished);
561
    }
562
563
    /**
564
     * A description of the item.
565
     *
566
     * @param string|string[] $description
567
     *
568
     * @return static
569
     *
570
     * @see http://schema.org/description
571
     */
572
    public function description($description)
573
    {
574
        return $this->setProperty('description', $description);
575
    }
576
577
    /**
578
     * A director of e.g. tv, radio, movie, video gaming etc. content, or of an
579
     * event. Directors can be associated with individual items or with a
580
     * series, episode, clip.
581
     *
582
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $director
583
     *
584
     * @return static
585
     *
586
     * @see http://schema.org/director
587
     */
588
    public function director($director)
589
    {
590
        return $this->setProperty('director', $director);
591
    }
592
593
    /**
594
     * A director of e.g. tv, radio, movie, video games etc. content. Directors
595
     * can be associated with individual items or with a series, episode, clip.
596
     *
597
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $directors
598
     *
599
     * @return static
600
     *
601
     * @see http://schema.org/directors
602
     */
603
    public function directors($directors)
604
    {
605
        return $this->setProperty('directors', $directors);
606
    }
607
608
    /**
609
     * A sub property of description. A short description of the item used to
610
     * disambiguate from other, similar items. Information from other properties
611
     * (in particular, name) may be necessary for the description to be useful
612
     * for disambiguation.
613
     *
614
     * @param string|string[] $disambiguatingDescription
615
     *
616
     * @return static
617
     *
618
     * @see http://schema.org/disambiguatingDescription
619
     */
620
    public function disambiguatingDescription($disambiguatingDescription)
621
    {
622
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
623
    }
624
625
    /**
626
     * A link to the page containing the comments of the CreativeWork.
627
     *
628
     * @param string|string[] $discussionUrl
629
     *
630
     * @return static
631
     *
632
     * @see http://schema.org/discussionUrl
633
     */
634
    public function discussionUrl($discussionUrl)
635
    {
636
        return $this->setProperty('discussionUrl', $discussionUrl);
637
    }
638
639
    /**
640
     * Specifies the Person who edited the CreativeWork.
641
     *
642
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
643
     *
644
     * @return static
645
     *
646
     * @see http://schema.org/editor
647
     */
648
    public function editor($editor)
649
    {
650
        return $this->setProperty('editor', $editor);
651
    }
652
653
    /**
654
     * An alignment to an established educational framework.
655
     *
656
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
657
     *
658
     * @return static
659
     *
660
     * @see http://schema.org/educationalAlignment
661
     */
662
    public function educationalAlignment($educationalAlignment)
663
    {
664
        return $this->setProperty('educationalAlignment', $educationalAlignment);
665
    }
666
667
    /**
668
     * The purpose of a work in the context of education; for example,
669
     * 'assignment', 'group work'.
670
     *
671
     * @param string|string[] $educationalUse
672
     *
673
     * @return static
674
     *
675
     * @see http://schema.org/educationalUse
676
     */
677
    public function educationalUse($educationalUse)
678
    {
679
        return $this->setProperty('educationalUse', $educationalUse);
680
    }
681
682
    /**
683
     * A media object that encodes this CreativeWork. This property is a synonym
684
     * for associatedMedia.
685
     *
686
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
687
     *
688
     * @return static
689
     *
690
     * @see http://schema.org/encoding
691
     */
692
    public function encoding($encoding)
693
    {
694
        return $this->setProperty('encoding', $encoding);
695
    }
696
697
    /**
698
     * Media type typically expressed using a MIME format (see [IANA
699
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
700
     * [MDN
701
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
702
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
703
     * .mp3 etc.).
704
     * 
705
     * In cases where a [[CreativeWork]] has several media type representations,
706
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
707
     * particular [[encodingFormat]] information.
708
     * 
709
     * Unregistered or niche encoding and file formats can be indicated instead
710
     * via the most appropriate URL, e.g. defining Web page or a
711
     * Wikipedia/Wikidata entry.
712
     *
713
     * @param string|string[] $encodingFormat
714
     *
715
     * @return static
716
     *
717
     * @see http://schema.org/encodingFormat
718
     */
719
    public function encodingFormat($encodingFormat)
720
    {
721
        return $this->setProperty('encodingFormat', $encodingFormat);
722
    }
723
724
    /**
725
     * A media object that encodes this CreativeWork.
726
     *
727
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
728
     *
729
     * @return static
730
     *
731
     * @see http://schema.org/encodings
732
     */
733
    public function encodings($encodings)
734
    {
735
        return $this->setProperty('encodings', $encodings);
736
    }
737
738
    /**
739
     * The end date and time of the item (in [ISO 8601 date
740
     * format](http://en.wikipedia.org/wiki/ISO_8601)).
741
     *
742
     * @param \DateTimeInterface|\DateTimeInterface[] $endDate
743
     *
744
     * @return static
745
     *
746
     * @see http://schema.org/endDate
747
     */
748
    public function endDate($endDate)
749
    {
750
        return $this->setProperty('endDate', $endDate);
751
    }
752
753
    /**
754
     * An episode of a tv, radio or game media within a series or season.
755
     *
756
     * @param \Spatie\SchemaOrg\Contracts\EpisodeContract|\Spatie\SchemaOrg\Contracts\EpisodeContract[] $episode
757
     *
758
     * @return static
759
     *
760
     * @see http://schema.org/episode
761
     */
762
    public function episode($episode)
763
    {
764
        return $this->setProperty('episode', $episode);
765
    }
766
767
    /**
768
     * An episode of a TV/radio series or season.
769
     *
770
     * @param \Spatie\SchemaOrg\Contracts\EpisodeContract|\Spatie\SchemaOrg\Contracts\EpisodeContract[] $episodes
771
     *
772
     * @return static
773
     *
774
     * @see http://schema.org/episodes
775
     */
776
    public function episodes($episodes)
777
    {
778
        return $this->setProperty('episodes', $episodes);
779
    }
780
781
    /**
782
     * A creative work that this work is an
783
     * example/instance/realization/derivation of.
784
     *
785
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
786
     *
787
     * @return static
788
     *
789
     * @see http://schema.org/exampleOfWork
790
     */
791
    public function exampleOfWork($exampleOfWork)
792
    {
793
        return $this->setProperty('exampleOfWork', $exampleOfWork);
794
    }
795
796
    /**
797
     * Date the content expires and is no longer useful or available. For
798
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
799
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
800
     * publisher wants to indicate that it may no longer be relevant (or helpful
801
     * to highlight) after some date.
802
     *
803
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
804
     *
805
     * @return static
806
     *
807
     * @see http://schema.org/expires
808
     */
809
    public function expires($expires)
810
    {
811
        return $this->setProperty('expires', $expires);
812
    }
813
814
    /**
815
     * Media type, typically MIME format (see [IANA
816
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
817
     * the content e.g. application/zip of a SoftwareApplication binary. In
818
     * cases where a CreativeWork has several media type representations,
819
     * 'encoding' can be used to indicate each MediaObject alongside particular
820
     * fileFormat information. Unregistered or niche file formats can be
821
     * indicated instead via the most appropriate URL, e.g. defining Web page or
822
     * a Wikipedia entry.
823
     *
824
     * @param string|string[] $fileFormat
825
     *
826
     * @return static
827
     *
828
     * @see http://schema.org/fileFormat
829
     */
830
    public function fileFormat($fileFormat)
831
    {
832
        return $this->setProperty('fileFormat', $fileFormat);
833
    }
834
835
    /**
836
     * A person or organization that supports (sponsors) something through some
837
     * kind of financial contribution.
838
     *
839
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
840
     *
841
     * @return static
842
     *
843
     * @see http://schema.org/funder
844
     */
845
    public function funder($funder)
846
    {
847
        return $this->setProperty('funder', $funder);
848
    }
849
850
    /**
851
     * Genre of the creative work, broadcast channel or group.
852
     *
853
     * @param string|string[] $genre
854
     *
855
     * @return static
856
     *
857
     * @see http://schema.org/genre
858
     */
859
    public function genre($genre)
860
    {
861
        return $this->setProperty('genre', $genre);
862
    }
863
864
    /**
865
     * Indicates an item or CreativeWork that is part of this item, or
866
     * CreativeWork (in some sense).
867
     *
868
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
869
     *
870
     * @return static
871
     *
872
     * @see http://schema.org/hasPart
873
     */
874
    public function hasPart($hasPart)
875
    {
876
        return $this->setProperty('hasPart', $hasPart);
877
    }
878
879
    /**
880
     * Headline of the article.
881
     *
882
     * @param string|string[] $headline
883
     *
884
     * @return static
885
     *
886
     * @see http://schema.org/headline
887
     */
888
    public function headline($headline)
889
    {
890
        return $this->setProperty('headline', $headline);
891
    }
892
893
    /**
894
     * The identifier property represents any kind of identifier for any kind of
895
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
896
     * dedicated properties for representing many of these, either as textual
897
     * strings or as URL (URI) links. See [background
898
     * notes](/docs/datamodel.html#identifierBg) for more details.
899
     *
900
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
901
     *
902
     * @return static
903
     *
904
     * @see http://schema.org/identifier
905
     */
906
    public function identifier($identifier)
907
    {
908
        return $this->setProperty('identifier', $identifier);
909
    }
910
911
    /**
912
     * An image of the item. This can be a [[URL]] or a fully described
913
     * [[ImageObject]].
914
     *
915
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
916
     *
917
     * @return static
918
     *
919
     * @see http://schema.org/image
920
     */
921
    public function image($image)
922
    {
923
        return $this->setProperty('image', $image);
924
    }
925
926
    /**
927
     * The language of the content or performance or used in an action. Please
928
     * use one of the language codes from the [IETF BCP 47
929
     * standard](http://tools.ietf.org/html/bcp47). See also
930
     * [[availableLanguage]].
931
     *
932
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
933
     *
934
     * @return static
935
     *
936
     * @see http://schema.org/inLanguage
937
     */
938
    public function inLanguage($inLanguage)
939
    {
940
        return $this->setProperty('inLanguage', $inLanguage);
941
    }
942
943
    /**
944
     * The number of interactions for the CreativeWork using the WebSite or
945
     * SoftwareApplication. The most specific child type of InteractionCounter
946
     * should be used.
947
     *
948
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
949
     *
950
     * @return static
951
     *
952
     * @see http://schema.org/interactionStatistic
953
     */
954
    public function interactionStatistic($interactionStatistic)
955
    {
956
        return $this->setProperty('interactionStatistic', $interactionStatistic);
957
    }
958
959
    /**
960
     * The predominant mode of learning supported by the learning resource.
961
     * Acceptable values are 'active', 'expositive', or 'mixed'.
962
     *
963
     * @param string|string[] $interactivityType
964
     *
965
     * @return static
966
     *
967
     * @see http://schema.org/interactivityType
968
     */
969
    public function interactivityType($interactivityType)
970
    {
971
        return $this->setProperty('interactivityType', $interactivityType);
972
    }
973
974
    /**
975
     * A flag to signal that the item, event, or place is accessible for free.
976
     *
977
     * @param bool|bool[] $isAccessibleForFree
978
     *
979
     * @return static
980
     *
981
     * @see http://schema.org/isAccessibleForFree
982
     */
983
    public function isAccessibleForFree($isAccessibleForFree)
984
    {
985
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
986
    }
987
988
    /**
989
     * A resource from which this work is derived or from which it is a
990
     * modification or adaption.
991
     *
992
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
993
     *
994
     * @return static
995
     *
996
     * @see http://schema.org/isBasedOn
997
     */
998
    public function isBasedOn($isBasedOn)
999
    {
1000
        return $this->setProperty('isBasedOn', $isBasedOn);
1001
    }
1002
1003
    /**
1004
     * A resource that was used in the creation of this resource. This term can
1005
     * be repeated for multiple sources. For example,
1006
     * http://example.com/great-multiplication-intro.html.
1007
     *
1008
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
1009
     *
1010
     * @return static
1011
     *
1012
     * @see http://schema.org/isBasedOnUrl
1013
     */
1014
    public function isBasedOnUrl($isBasedOnUrl)
1015
    {
1016
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
1017
    }
1018
1019
    /**
1020
     * Indicates whether this content is family friendly.
1021
     *
1022
     * @param bool|bool[] $isFamilyFriendly
1023
     *
1024
     * @return static
1025
     *
1026
     * @see http://schema.org/isFamilyFriendly
1027
     */
1028
    public function isFamilyFriendly($isFamilyFriendly)
1029
    {
1030
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
1031
    }
1032
1033
    /**
1034
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
1035
     * some sense), is part of.
1036
     *
1037
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
1038
     *
1039
     * @return static
1040
     *
1041
     * @see http://schema.org/isPartOf
1042
     */
1043
    public function isPartOf($isPartOf)
1044
    {
1045
        return $this->setProperty('isPartOf', $isPartOf);
1046
    }
1047
1048
    /**
1049
     * The International Standard Serial Number (ISSN) that identifies this
1050
     * serial publication. You can repeat this property to identify different
1051
     * formats of, or the linking ISSN (ISSN-L) for, this serial publication.
1052
     *
1053
     * @param string|string[] $issn
1054
     *
1055
     * @return static
1056
     *
1057
     * @see http://schema.org/issn
1058
     */
1059
    public function issn($issn)
1060
    {
1061
        return $this->setProperty('issn', $issn);
1062
    }
1063
1064
    /**
1065
     * Keywords or tags used to describe this content. Multiple entries in a
1066
     * keywords list are typically delimited by commas.
1067
     *
1068
     * @param string|string[] $keywords
1069
     *
1070
     * @return static
1071
     *
1072
     * @see http://schema.org/keywords
1073
     */
1074
    public function keywords($keywords)
1075
    {
1076
        return $this->setProperty('keywords', $keywords);
1077
    }
1078
1079
    /**
1080
     * The predominant type or kind characterizing the learning resource. For
1081
     * example, 'presentation', 'handout'.
1082
     *
1083
     * @param string|string[] $learningResourceType
1084
     *
1085
     * @return static
1086
     *
1087
     * @see http://schema.org/learningResourceType
1088
     */
1089
    public function learningResourceType($learningResourceType)
1090
    {
1091
        return $this->setProperty('learningResourceType', $learningResourceType);
1092
    }
1093
1094
    /**
1095
     * A license document that applies to this content, typically indicated by
1096
     * URL.
1097
     *
1098
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
1099
     *
1100
     * @return static
1101
     *
1102
     * @see http://schema.org/license
1103
     */
1104
    public function license($license)
1105
    {
1106
        return $this->setProperty('license', $license);
1107
    }
1108
1109
    /**
1110
     * The location where the CreativeWork was created, which may not be the
1111
     * same as the location depicted in the CreativeWork.
1112
     *
1113
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
1114
     *
1115
     * @return static
1116
     *
1117
     * @see http://schema.org/locationCreated
1118
     */
1119
    public function locationCreated($locationCreated)
1120
    {
1121
        return $this->setProperty('locationCreated', $locationCreated);
1122
    }
1123
1124
    /**
1125
     * Indicates the primary entity described in some page or other
1126
     * CreativeWork.
1127
     *
1128
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1129
     *
1130
     * @return static
1131
     *
1132
     * @see http://schema.org/mainEntity
1133
     */
1134
    public function mainEntity($mainEntity)
1135
    {
1136
        return $this->setProperty('mainEntity', $mainEntity);
1137
    }
1138
1139
    /**
1140
     * Indicates a page (or other CreativeWork) for which this thing is the main
1141
     * entity being described. See [background
1142
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1143
     *
1144
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1145
     *
1146
     * @return static
1147
     *
1148
     * @see http://schema.org/mainEntityOfPage
1149
     */
1150
    public function mainEntityOfPage($mainEntityOfPage)
1151
    {
1152
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1153
    }
1154
1155
    /**
1156
     * A material that something is made from, e.g. leather, wool, cotton,
1157
     * paper.
1158
     *
1159
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1160
     *
1161
     * @return static
1162
     *
1163
     * @see http://schema.org/material
1164
     */
1165
    public function material($material)
1166
    {
1167
        return $this->setProperty('material', $material);
1168
    }
1169
1170
    /**
1171
     * Indicates that the CreativeWork contains a reference to, but is not
1172
     * necessarily about a concept.
1173
     *
1174
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1175
     *
1176
     * @return static
1177
     *
1178
     * @see http://schema.org/mentions
1179
     */
1180
    public function mentions($mentions)
1181
    {
1182
        return $this->setProperty('mentions', $mentions);
1183
    }
1184
1185
    /**
1186
     * The composer of the soundtrack.
1187
     *
1188
     * @param \Spatie\SchemaOrg\Contracts\MusicGroupContract|\Spatie\SchemaOrg\Contracts\MusicGroupContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $musicBy
1189
     *
1190
     * @return static
1191
     *
1192
     * @see http://schema.org/musicBy
1193
     */
1194
    public function musicBy($musicBy)
1195
    {
1196
        return $this->setProperty('musicBy', $musicBy);
1197
    }
1198
1199
    /**
1200
     * The name of the item.
1201
     *
1202
     * @param string|string[] $name
1203
     *
1204
     * @return static
1205
     *
1206
     * @see http://schema.org/name
1207
     */
1208
    public function name($name)
1209
    {
1210
        return $this->setProperty('name', $name);
1211
    }
1212
1213
    /**
1214
     * The number of episodes in this season or series.
1215
     *
1216
     * @param int|int[] $numberOfEpisodes
1217
     *
1218
     * @return static
1219
     *
1220
     * @see http://schema.org/numberOfEpisodes
1221
     */
1222
    public function numberOfEpisodes($numberOfEpisodes)
1223
    {
1224
        return $this->setProperty('numberOfEpisodes', $numberOfEpisodes);
1225
    }
1226
1227
    /**
1228
     * The number of seasons in this series.
1229
     *
1230
     * @param int|int[] $numberOfSeasons
1231
     *
1232
     * @return static
1233
     *
1234
     * @see http://schema.org/numberOfSeasons
1235
     */
1236
    public function numberOfSeasons($numberOfSeasons)
1237
    {
1238
        return $this->setProperty('numberOfSeasons', $numberOfSeasons);
1239
    }
1240
1241
    /**
1242
     * An offer to provide this item&#x2014;for example, an offer to sell a
1243
     * product, rent the DVD of a movie, perform a service, or give away tickets
1244
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1245
     * offered, i.e. sell, lease, etc. This property can also be used to
1246
     * describe a [[Demand]]. While this property is listed as expected on a
1247
     * number of common types, it can be used in others. In that case, using a
1248
     * second type, such as Product or a subtype of Product, can clarify the
1249
     * nature of the offer.
1250
     *
1251
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1252
     *
1253
     * @return static
1254
     *
1255
     * @see http://schema.org/offers
1256
     */
1257
    public function offers($offers)
1258
    {
1259
        return $this->setProperty('offers', $offers);
1260
    }
1261
1262
    /**
1263
     * The position of an item in a series or sequence of items.
1264
     *
1265
     * @param int|int[]|string|string[] $position
1266
     *
1267
     * @return static
1268
     *
1269
     * @see http://schema.org/position
1270
     */
1271
    public function position($position)
1272
    {
1273
        return $this->setProperty('position', $position);
1274
    }
1275
1276
    /**
1277
     * Indicates a potential Action, which describes an idealized action in
1278
     * which this thing would play an 'object' role.
1279
     *
1280
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1281
     *
1282
     * @return static
1283
     *
1284
     * @see http://schema.org/potentialAction
1285
     */
1286
    public function potentialAction($potentialAction)
1287
    {
1288
        return $this->setProperty('potentialAction', $potentialAction);
1289
    }
1290
1291
    /**
1292
     * The person or organization who produced the work (e.g. music album,
1293
     * movie, tv/radio series etc.).
1294
     *
1295
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1296
     *
1297
     * @return static
1298
     *
1299
     * @see http://schema.org/producer
1300
     */
1301
    public function producer($producer)
1302
    {
1303
        return $this->setProperty('producer', $producer);
1304
    }
1305
1306
    /**
1307
     * The production company or studio responsible for the item e.g. series,
1308
     * video game, episode etc.
1309
     *
1310
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $productionCompany
1311
     *
1312
     * @return static
1313
     *
1314
     * @see http://schema.org/productionCompany
1315
     */
1316
    public function productionCompany($productionCompany)
1317
    {
1318
        return $this->setProperty('productionCompany', $productionCompany);
1319
    }
1320
1321
    /**
1322
     * The service provider, service operator, or service performer; the goods
1323
     * producer. Another party (a seller) may offer those services or goods on
1324
     * behalf of the provider. A provider may also serve as the seller.
1325
     *
1326
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1327
     *
1328
     * @return static
1329
     *
1330
     * @see http://schema.org/provider
1331
     */
1332
    public function provider($provider)
1333
    {
1334
        return $this->setProperty('provider', $provider);
1335
    }
1336
1337
    /**
1338
     * A publication event associated with the item.
1339
     *
1340
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1341
     *
1342
     * @return static
1343
     *
1344
     * @see http://schema.org/publication
1345
     */
1346
    public function publication($publication)
1347
    {
1348
        return $this->setProperty('publication', $publication);
1349
    }
1350
1351
    /**
1352
     * The publisher of the creative work.
1353
     *
1354
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1355
     *
1356
     * @return static
1357
     *
1358
     * @see http://schema.org/publisher
1359
     */
1360
    public function publisher($publisher)
1361
    {
1362
        return $this->setProperty('publisher', $publisher);
1363
    }
1364
1365
    /**
1366
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1367
     * document describing the editorial principles of an [[Organization]] (or
1368
     * individual e.g. a [[Person]] writing a blog) that relate to their
1369
     * activities as a publisher, e.g. ethics or diversity policies. When
1370
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1371
     * those of the party primarily responsible for the creation of the
1372
     * [[CreativeWork]].
1373
     * 
1374
     * While such policies are most typically expressed in natural language,
1375
     * sometimes related information (e.g. indicating a [[funder]]) can be
1376
     * expressed using schema.org terminology.
1377
     *
1378
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1379
     *
1380
     * @return static
1381
     *
1382
     * @see http://schema.org/publishingPrinciples
1383
     */
1384
    public function publishingPrinciples($publishingPrinciples)
1385
    {
1386
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1387
    }
1388
1389
    /**
1390
     * The Event where the CreativeWork was recorded. The CreativeWork may
1391
     * capture all or part of the event.
1392
     *
1393
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1394
     *
1395
     * @return static
1396
     *
1397
     * @see http://schema.org/recordedAt
1398
     */
1399
    public function recordedAt($recordedAt)
1400
    {
1401
        return $this->setProperty('recordedAt', $recordedAt);
1402
    }
1403
1404
    /**
1405
     * The place and time the release was issued, expressed as a
1406
     * PublicationEvent.
1407
     *
1408
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1409
     *
1410
     * @return static
1411
     *
1412
     * @see http://schema.org/releasedEvent
1413
     */
1414
    public function releasedEvent($releasedEvent)
1415
    {
1416
        return $this->setProperty('releasedEvent', $releasedEvent);
1417
    }
1418
1419
    /**
1420
     * A review of the item.
1421
     *
1422
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1423
     *
1424
     * @return static
1425
     *
1426
     * @see http://schema.org/review
1427
     */
1428
    public function review($review)
1429
    {
1430
        return $this->setProperty('review', $review);
1431
    }
1432
1433
    /**
1434
     * Review of the item.
1435
     *
1436
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1437
     *
1438
     * @return static
1439
     *
1440
     * @see http://schema.org/reviews
1441
     */
1442
    public function reviews($reviews)
1443
    {
1444
        return $this->setProperty('reviews', $reviews);
1445
    }
1446
1447
    /**
1448
     * URL of a reference Web page that unambiguously indicates the item's
1449
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1450
     * official website.
1451
     *
1452
     * @param string|string[] $sameAs
1453
     *
1454
     * @return static
1455
     *
1456
     * @see http://schema.org/sameAs
1457
     */
1458
    public function sameAs($sameAs)
1459
    {
1460
        return $this->setProperty('sameAs', $sameAs);
1461
    }
1462
1463
    /**
1464
     * Indicates (by URL or string) a particular version of a schema used in
1465
     * some CreativeWork. For example, a document could declare a schemaVersion
1466
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1467
     * of schema version was required by some application.
1468
     *
1469
     * @param string|string[] $schemaVersion
1470
     *
1471
     * @return static
1472
     *
1473
     * @see http://schema.org/schemaVersion
1474
     */
1475
    public function schemaVersion($schemaVersion)
1476
    {
1477
        return $this->setProperty('schemaVersion', $schemaVersion);
1478
    }
1479
1480
    /**
1481
     * A season in a media series.
1482
     *
1483
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkSeasonContract|\Spatie\SchemaOrg\Contracts\CreativeWorkSeasonContract[]|string|string[] $season
1484
     *
1485
     * @return static
1486
     *
1487
     * @see http://schema.org/season
1488
     */
1489
    public function season($season)
1490
    {
1491
        return $this->setProperty('season', $season);
1492
    }
1493
1494
    /**
1495
     * A season in a media series.
1496
     *
1497
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkSeasonContract|\Spatie\SchemaOrg\Contracts\CreativeWorkSeasonContract[] $seasons
1498
     *
1499
     * @return static
1500
     *
1501
     * @see http://schema.org/seasons
1502
     */
1503
    public function seasons($seasons)
1504
    {
1505
        return $this->setProperty('seasons', $seasons);
1506
    }
1507
1508
    /**
1509
     * The Organization on whose behalf the creator was working.
1510
     *
1511
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1512
     *
1513
     * @return static
1514
     *
1515
     * @see http://schema.org/sourceOrganization
1516
     */
1517
    public function sourceOrganization($sourceOrganization)
1518
    {
1519
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1520
    }
1521
1522
    /**
1523
     * The "spatial" property can be used in cases when more specific properties
1524
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1525
     * not known to be appropriate.
1526
     *
1527
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1528
     *
1529
     * @return static
1530
     *
1531
     * @see http://schema.org/spatial
1532
     */
1533
    public function spatial($spatial)
1534
    {
1535
        return $this->setProperty('spatial', $spatial);
1536
    }
1537
1538
    /**
1539
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1540
     * the focus of the content. It is a subproperty of
1541
     *       contentLocation intended primarily for more technical and detailed
1542
     * materials. For example with a Dataset, it indicates
1543
     *       areas that the dataset describes: a dataset of New York weather
1544
     * would have spatialCoverage which was the place: the state of New York.
1545
     *
1546
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1547
     *
1548
     * @return static
1549
     *
1550
     * @see http://schema.org/spatialCoverage
1551
     */
1552
    public function spatialCoverage($spatialCoverage)
1553
    {
1554
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1555
    }
1556
1557
    /**
1558
     * A person or organization that supports a thing through a pledge, promise,
1559
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1560
     * corporate sponsor of an event.
1561
     *
1562
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1563
     *
1564
     * @return static
1565
     *
1566
     * @see http://schema.org/sponsor
1567
     */
1568
    public function sponsor($sponsor)
1569
    {
1570
        return $this->setProperty('sponsor', $sponsor);
1571
    }
1572
1573
    /**
1574
     * The start date and time of the item (in [ISO 8601 date
1575
     * format](http://en.wikipedia.org/wiki/ISO_8601)).
1576
     *
1577
     * @param \DateTimeInterface|\DateTimeInterface[] $startDate
1578
     *
1579
     * @return static
1580
     *
1581
     * @see http://schema.org/startDate
1582
     */
1583
    public function startDate($startDate)
1584
    {
1585
        return $this->setProperty('startDate', $startDate);
1586
    }
1587
1588
    /**
1589
     * A CreativeWork or Event about this Thing.
1590
     *
1591
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1592
     *
1593
     * @return static
1594
     *
1595
     * @see http://schema.org/subjectOf
1596
     */
1597
    public function subjectOf($subjectOf)
1598
    {
1599
        return $this->setProperty('subjectOf', $subjectOf);
1600
    }
1601
1602
    /**
1603
     * The "temporal" property can be used in cases where more specific
1604
     * properties
1605
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1606
     * [[datePublished]]) are not known to be appropriate.
1607
     *
1608
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1609
     *
1610
     * @return static
1611
     *
1612
     * @see http://schema.org/temporal
1613
     */
1614
    public function temporal($temporal)
1615
    {
1616
        return $this->setProperty('temporal', $temporal);
1617
    }
1618
1619
    /**
1620
     * The temporalCoverage of a CreativeWork indicates the period that the
1621
     * content applies to, i.e. that it describes, either as a DateTime or as a
1622
     * textual string indicating a time period in [ISO 8601 time interval
1623
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1624
     *       the case of a Dataset it will typically indicate the relevant time
1625
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1626
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1627
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1628
     * temporalCoverage in broader terms - textually or via well-known URL.
1629
     *       Written works such as books may sometimes have precise temporal
1630
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1631
     * interval format format via "1939/1945".
1632
     * 
1633
     * Open-ended date ranges can be written with ".." in place of the end date.
1634
     * For example, "2015-11/.." indicates a range beginning in November 2015
1635
     * and with no specified final date. This is tentative and might be updated
1636
     * in future when ISO 8601 is officially updated.
1637
     *
1638
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1639
     *
1640
     * @return static
1641
     *
1642
     * @see http://schema.org/temporalCoverage
1643
     */
1644
    public function temporalCoverage($temporalCoverage)
1645
    {
1646
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1647
    }
1648
1649
    /**
1650
     * The textual content of this CreativeWork.
1651
     *
1652
     * @param string|string[] $text
1653
     *
1654
     * @return static
1655
     *
1656
     * @see http://schema.org/text
1657
     */
1658
    public function text($text)
1659
    {
1660
        return $this->setProperty('text', $text);
1661
    }
1662
1663
    /**
1664
     * A thumbnail image relevant to the Thing.
1665
     *
1666
     * @param string|string[] $thumbnailUrl
1667
     *
1668
     * @return static
1669
     *
1670
     * @see http://schema.org/thumbnailUrl
1671
     */
1672
    public function thumbnailUrl($thumbnailUrl)
1673
    {
1674
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1675
    }
1676
1677
    /**
1678
     * Approximate or typical time it takes to work with or through this
1679
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1680
     * 'PT1H25M'.
1681
     *
1682
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1683
     *
1684
     * @return static
1685
     *
1686
     * @see http://schema.org/timeRequired
1687
     */
1688
    public function timeRequired($timeRequired)
1689
    {
1690
        return $this->setProperty('timeRequired', $timeRequired);
1691
    }
1692
1693
    /**
1694
     * The trailer of a movie or tv/radio series, season, episode, etc.
1695
     *
1696
     * @param \Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $trailer
1697
     *
1698
     * @return static
1699
     *
1700
     * @see http://schema.org/trailer
1701
     */
1702
    public function trailer($trailer)
1703
    {
1704
        return $this->setProperty('trailer', $trailer);
1705
    }
1706
1707
    /**
1708
     * Organization or person who adapts a creative work to different languages,
1709
     * regional differences and technical requirements of a target market, or
1710
     * that translates during some event.
1711
     *
1712
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1713
     *
1714
     * @return static
1715
     *
1716
     * @see http://schema.org/translator
1717
     */
1718
    public function translator($translator)
1719
    {
1720
        return $this->setProperty('translator', $translator);
1721
    }
1722
1723
    /**
1724
     * The typical expected age range, e.g. '7-9', '11-'.
1725
     *
1726
     * @param string|string[] $typicalAgeRange
1727
     *
1728
     * @return static
1729
     *
1730
     * @see http://schema.org/typicalAgeRange
1731
     */
1732
    public function typicalAgeRange($typicalAgeRange)
1733
    {
1734
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1735
    }
1736
1737
    /**
1738
     * URL of the item.
1739
     *
1740
     * @param string|string[] $url
1741
     *
1742
     * @return static
1743
     *
1744
     * @see http://schema.org/url
1745
     */
1746
    public function url($url)
1747
    {
1748
        return $this->setProperty('url', $url);
1749
    }
1750
1751
    /**
1752
     * The version of the CreativeWork embodied by a specified resource.
1753
     *
1754
     * @param float|float[]|int|int[]|string|string[] $version
1755
     *
1756
     * @return static
1757
     *
1758
     * @see http://schema.org/version
1759
     */
1760
    public function version($version)
1761
    {
1762
        return $this->setProperty('version', $version);
1763
    }
1764
1765
    /**
1766
     * An embedded video object.
1767
     *
1768
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1769
     *
1770
     * @return static
1771
     *
1772
     * @see http://schema.org/video
1773
     */
1774
    public function video($video)
1775
    {
1776
        return $this->setProperty('video', $video);
1777
    }
1778
1779
    /**
1780
     * Example/instance/realization/derivation of the concept of this creative
1781
     * work. eg. The paperback edition, first edition, or eBook.
1782
     *
1783
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1784
     *
1785
     * @return static
1786
     *
1787
     * @see http://schema.org/workExample
1788
     */
1789
    public function workExample($workExample)
1790
    {
1791
        return $this->setProperty('workExample', $workExample);
1792
    }
1793
1794
}
1795