/*
* GameBrain API
*
* GameBrain API
*
* The version of the OpenAPI document: 1.0.1
* Contact: mail@gamebrain.co
* Generated by: https://github.com/openapitools/openapi-generator.git
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.IO;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System.ComponentModel.DataAnnotations;
using OpenAPIDateConverter = gamebrain.Client.OpenAPIDateConverter;
namespace gamebrain.Model
{
/// <summary>
/// GameResponse
/// </summary>
[DataContract(Name = "GameResponse")]
public partial class GameResponse : IValidatableObject
{
/// <summary>
/// Initializes a new instance of the <see cref="GameResponse" /> class.
/// </summary>
/// <param name="id">id.</param>
/// <param name="name">name.</param>
/// <param name="image">image.</param>
/// <param name="gameplay">gameplay.</param>
/// <param name="link">link.</param>
/// <param name="xUrl">xUrl.</param>
/// <param name="rating">rating.</param>
/// <param name="description">description.</param>
/// <param name="shortDescription">shortDescription.</param>
/// <param name="releaseDate">releaseDate.</param>
/// <param name="developer">developer.</param>
/// <param name="playtime">playtime.</param>
/// <param name="platforms">platforms.</param>
/// <param name="tags">tags.</param>
/// <param name="genres">genres.</param>
/// <param name="genre">genre.</param>
/// <param name="themes">themes.</param>
/// <param name="adultOnly">adultOnly.</param>
/// <param name="playModes">playModes.</param>
/// <param name="screenshots">screenshots.</param>
/// <param name="videos">videos.</param>
/// <param name="offers">offers.</param>
/// <param name="officialStores">officialStores.</param>
/// <param name="microTrailer">microTrailer.</param>
public GameResponse(int id = default(int), string name = default(string), string image = default(string), string gameplay = default(string), string link = default(string), string xUrl = default(string), GameResponseRating rating = default(GameResponseRating), string description = default(string), string shortDescription = default(string), DateOnly releaseDate = default(DateOnly), string developer = default(string), GameResponsePlaytime playtime = default(GameResponsePlaytime), List<GameResponsePlatformsInner> platforms = default(List<GameResponsePlatformsInner>), List<string> tags = default(List<string>), List<GameResponsePlatformsInner> genres = default(List<GameResponsePlatformsInner>), string genre = default(string), List<GameResponsePlatformsInner> themes = default(List<GameResponsePlatformsInner>), bool adultOnly = default(bool), List<GameResponsePlatformsInner> playModes = default(List<GameResponsePlatformsInner>), List<string> screenshots = default(List<string>), List<string> videos = default(List<string>), List<GameResponseOffersInner> offers = default(List<GameResponseOffersInner>), List<GameResponseOfficialStoresInner> officialStores = default(List<GameResponseOfficialStoresInner>), string microTrailer = default(string))
{
this.Id = id;
this.Name = name;
this.Image = image;
this.Gameplay = gameplay;
this.Link = link;
this.XUrl = xUrl;
this.Rating = rating;
this.Description = description;
this.ShortDescription = shortDescription;
this.ReleaseDate = releaseDate;
this.Developer = developer;
this.Playtime = playtime;
this.Platforms = platforms;
this.Tags = tags;
this.Genres = genres;
this.Genre = genre;
this.Themes = themes;
this.AdultOnly = adultOnly;
this.PlayModes = playModes;
this.Screenshots = screenshots;
this.Videos = videos;
this.Offers = offers;
this.OfficialStores = officialStores;
this.MicroTrailer = microTrailer;
}
/// <summary>
/// Gets or Sets Id
/// </summary>
[DataMember(Name = "id", EmitDefaultValue = false)]
public int Id { get; set; }
/// <summary>
/// Gets or Sets Name
/// </summary>
[DataMember(Name = "name", EmitDefaultValue = false)]
public string Name { get; set; }
/// <summary>
/// Gets or Sets Image
/// </summary>
[DataMember(Name = "image", EmitDefaultValue = false)]
public string Image { get; set; }
/// <summary>
/// Gets or Sets Gameplay
/// </summary>
[DataMember(Name = "gameplay", EmitDefaultValue = false)]
public string Gameplay { get; set; }
/// <summary>
/// Gets or Sets Link
/// </summary>
[DataMember(Name = "link", EmitDefaultValue = false)]
public string Link { get; set; }
/// <summary>
/// Gets or Sets XUrl
/// </summary>
[DataMember(Name = "x_url", EmitDefaultValue = false)]
public string XUrl { get; set; }
/// <summary>
/// Gets or Sets Rating
/// </summary>
[DataMember(Name = "rating", EmitDefaultValue = false)]
public GameResponseRating Rating { get; set; }
/// <summary>
/// Gets or Sets Description
/// </summary>
[DataMember(Name = "description", EmitDefaultValue = false)]
public string Description { get; set; }
/// <summary>
/// Gets or Sets ShortDescription
/// </summary>
[DataMember(Name = "short_description", EmitDefaultValue = false)]
public string ShortDescription { get; set; }
/// <summary>
/// Gets or Sets ReleaseDate
/// </summary>
[DataMember(Name = "release_date", EmitDefaultValue = false)]
public DateOnly ReleaseDate { get; set; }
/// <summary>
/// Gets or Sets Developer
/// </summary>
[DataMember(Name = "developer", EmitDefaultValue = false)]
public string Developer { get; set; }
/// <summary>
/// Gets or Sets Playtime
/// </summary>
[DataMember(Name = "playtime", EmitDefaultValue = false)]
public GameResponsePlaytime Playtime { get; set; }
/// <summary>
/// Gets or Sets Platforms
/// </summary>
[DataMember(Name = "platforms", EmitDefaultValue = false)]
public List<GameResponsePlatformsInner> Platforms { get; set; }
/// <summary>
/// Gets or Sets Tags
/// </summary>
[DataMember(Name = "tags", EmitDefaultValue = false)]
public List<string> Tags { get; set; }
/// <summary>
/// Gets or Sets Genres
/// </summary>
[DataMember(Name = "genres", EmitDefaultValue = false)]
public List<GameResponsePlatformsInner> Genres { get; set; }
/// <summary>
/// Gets or Sets Genre
/// </summary>
[DataMember(Name = "genre", EmitDefaultValue = false)]
public string Genre { get; set; }
/// <summary>
/// Gets or Sets Themes
/// </summary>
[DataMember(Name = "themes", EmitDefaultValue = false)]
public List<GameResponsePlatformsInner> Themes { get; set; }
/// <summary>
/// Gets or Sets AdultOnly
/// </summary>
[DataMember(Name = "adult_only", EmitDefaultValue = true)]
public bool AdultOnly { get; set; }
/// <summary>
/// Gets or Sets PlayModes
/// </summary>
[DataMember(Name = "play_modes", EmitDefaultValue = false)]
public List<GameResponsePlatformsInner> PlayModes { get; set; }
/// <summary>
/// Gets or Sets Screenshots
/// </summary>
[DataMember(Name = "screenshots", EmitDefaultValue = false)]
public List<string> Screenshots { get; set; }
/// <summary>
/// Gets or Sets Videos
/// </summary>
[DataMember(Name = "videos", EmitDefaultValue = false)]
public List<string> Videos { get; set; }
/// <summary>
/// Gets or Sets Offers
/// </summary>
[DataMember(Name = "offers", EmitDefaultValue = false)]
public List<GameResponseOffersInner> Offers { get; set; }
/// <summary>
/// Gets or Sets OfficialStores
/// </summary>
[DataMember(Name = "official_stores", EmitDefaultValue = false)]
public List<GameResponseOfficialStoresInner> OfficialStores { get; set; }
/// <summary>
/// Gets or Sets MicroTrailer
/// </summary>
[DataMember(Name = "micro_trailer", EmitDefaultValue = false)]
public string MicroTrailer { get; set; }
/// <summary>
/// Returns the string presentation of the object
/// </summary>
/// <returns>String presentation of the object</returns>
public override string ToString()
{
StringBuilder sb = new StringBuilder();
sb.Append("class GameResponse {\n");
sb.Append(" Id: ").Append(Id).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" Image: ").Append(Image).Append("\n");
sb.Append(" Gameplay: ").Append(Gameplay).Append("\n");
sb.Append(" Link: ").Append(Link).Append("\n");
sb.Append(" XUrl: ").Append(XUrl).Append("\n");
sb.Append(" Rating: ").Append(Rating).Append("\n");
sb.Append(" Description: ").Append(Description).Append("\n");
sb.Append(" ShortDescription: ").Append(ShortDescription).Append("\n");
sb.Append(" ReleaseDate: ").Append(ReleaseDate).Append("\n");
sb.Append(" Developer: ").Append(Developer).Append("\n");
sb.Append(" Playtime: ").Append(Playtime).Append("\n");
sb.Append(" Platforms: ").Append(Platforms).Append("\n");
sb.Append(" Tags: ").Append(Tags).Append("\n");
sb.Append(" Genres: ").Append(Genres).Append("\n");
sb.Append(" Genre: ").Append(Genre).Append("\n");
sb.Append(" Themes: ").Append(Themes).Append("\n");
sb.Append(" AdultOnly: ").Append(AdultOnly).Append("\n");
sb.Append(" PlayModes: ").Append(PlayModes).Append("\n");
sb.Append(" Screenshots: ").Append(Screenshots).Append("\n");
sb.Append(" Videos: ").Append(Videos).Append("\n");
sb.Append(" Offers: ").Append(Offers).Append("\n");
sb.Append(" OfficialStores: ").Append(OfficialStores).Append("\n");
sb.Append(" MicroTrailer: ").Append(MicroTrailer).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
/// <summary>
/// Returns the JSON string presentation of the object
/// </summary>
/// <returns>JSON string presentation of the object</returns>
public virtual string ToJson()
{
return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented);
}
/// <summary>
/// To validate all properties of the instance
/// </summary>
/// <param name="validationContext">Validation context</param>
/// <returns>Validation Result</returns>
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}
}
}