/// <summary>
 /// Initializes a new instance of the <see cref="ProgramRelations" /> class.
 /// </summary>
 /// <param name="Items">Items.</param>
 /// <param name="Blocks">Blocks.</param>
 /// <param name="Broadcasts">Broadcasts.</param>
 /// <param name="Presenters">Presenters.</param>
 /// <param name="Tags">Tags.</param>
 /// <param name="ModelType">ModelType.</param>
 public ProgramRelations(ProgramRelationsItems Items = default(ProgramRelationsItems), ProgramRelationsBlocks Blocks = default(ProgramRelationsBlocks), ProgramRelationsBroadcasts Broadcasts = default(ProgramRelationsBroadcasts), ProgramRelationsPresenters Presenters = default(ProgramRelationsPresenters), ProgramRelationsTags Tags = default(ProgramRelationsTags), BroadcastRelationsModelType ModelType = default(BroadcastRelationsModelType))
 {
     this.Items      = Items;
     this.Blocks     = Blocks;
     this.Broadcasts = Broadcasts;
     this.Presenters = Presenters;
     this.Tags       = Tags;
     this.ModelType  = ModelType;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ProgramResult" /> class.
 /// </summary>
 /// <param name="Id">Id (required).</param>
 /// <param name="UpdatedAt">UpdatedAt (required).</param>
 /// <param name="CreatedAt">CreatedAt (required).</param>
 /// <param name="DeletedAt">DeletedAt (required).</param>
 /// <param name="ExternalStationId">ExternalStationId.</param>
 /// <param name="ModelTypeId">ModelTypeId (required).</param>
 /// <param name="FieldValues">FieldValues.</param>
 /// <param name="Title">Title (required).</param>
 /// <param name="Disabled">Disabled.</param>
 /// <param name="GenreId">GenreId.</param>
 /// <param name="Description">Description.</param>
 /// <param name="ShortName">ShortName.</param>
 /// <param name="MediumName">MediumName.</param>
 /// <param name="Website">Website.</param>
 /// <param name="Email">Email.</param>
 /// <param name="Recommended">Recommended.</param>
 /// <param name="Language">Language.</param>
 /// <param name="PtyCodeId">PtyCodeId.</param>
 /// <param name="Items">Items.</param>
 /// <param name="Blocks">Blocks.</param>
 /// <param name="Broadcasts">Broadcasts.</param>
 /// <param name="Presenters">Presenters.</param>
 /// <param name="Tags">Tags.</param>
 /// <param name="ModelType">ModelType.</param>
 public ProgramResult(long?Id = default(long?), DateTime?UpdatedAt = default(DateTime?), DateTime?CreatedAt = default(DateTime?), DateTime?DeletedAt = default(DateTime?), long?ExternalStationId = default(long?), long?ModelTypeId = default(long?), ProgramFieldValues FieldValues = default(ProgramFieldValues), string Title = default(string), bool?Disabled = default(bool?), long?GenreId = default(long?), string Description = default(string), string ShortName = default(string), string MediumName = default(string), string Website = default(string), string Email = default(string), bool?Recommended = default(bool?), string Language = default(string), long?PtyCodeId = default(long?), ProgramRelationsItems Items = default(ProgramRelationsItems), ProgramRelationsBlocks Blocks = default(ProgramRelationsBlocks), ProgramRelationsBroadcasts Broadcasts = default(ProgramRelationsBroadcasts), ProgramRelationsPresenters Presenters = default(ProgramRelationsPresenters), ProgramRelationsTags Tags = default(ProgramRelationsTags), BroadcastRelationsModelType ModelType = default(BroadcastRelationsModelType))
 {
     // to ensure "Id" is required (not null)
     if (Id == null)
     {
         throw new InvalidDataException("Id is a required property for ProgramResult and cannot be null");
     }
     else
     {
         this.Id = Id;
     }
     // to ensure "UpdatedAt" is required (not null)
     if (UpdatedAt == null)
     {
         throw new InvalidDataException("UpdatedAt is a required property for ProgramResult and cannot be null");
     }
     else
     {
         this.UpdatedAt = UpdatedAt;
     }
     // to ensure "CreatedAt" is required (not null)
     if (CreatedAt == null)
     {
         throw new InvalidDataException("CreatedAt is a required property for ProgramResult and cannot be null");
     }
     else
     {
         this.CreatedAt = CreatedAt;
     }
     // to ensure "DeletedAt" is required (not null)
     if (DeletedAt == null)
     {
         throw new InvalidDataException("DeletedAt is a required property for ProgramResult and cannot be null");
     }
     else
     {
         this.DeletedAt = DeletedAt;
     }
     // to ensure "ModelTypeId" is required (not null)
     if (ModelTypeId == null)
     {
         throw new InvalidDataException("ModelTypeId is a required property for ProgramResult and cannot be null");
     }
     else
     {
         this.ModelTypeId = ModelTypeId;
     }
     // to ensure "Title" is required (not null)
     if (Title == null)
     {
         throw new InvalidDataException("Title is a required property for ProgramResult and cannot be null");
     }
     else
     {
         this.Title = Title;
     }
     this.ExternalStationId = ExternalStationId;
     this.FieldValues       = FieldValues;
     this.Disabled          = Disabled;
     this.GenreId           = GenreId;
     this.Description       = Description;
     this.ShortName         = ShortName;
     this.MediumName        = MediumName;
     this.Website           = Website;
     this.Email             = Email;
     this.Recommended       = Recommended;
     this.Language          = Language;
     this.PtyCodeId         = PtyCodeId;
     this.Items             = Items;
     this.Blocks            = Blocks;
     this.Broadcasts        = Broadcasts;
     this.Presenters        = Presenters;
     this.Tags      = Tags;
     this.ModelType = ModelType;
 }