using System;
using System.Collections.Generic;
using UnityEngine.Scripting;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Unity.Services.Lobbies.Http;
namespace Unity.Services.Lobbies.Models
{
///
/// The body of a Query request which defines how to sort and filter results, how many results to return, etc.
/// The number of results to return.
/// The number of results to skip before selecting results to return.
/// Whether a random sample of results that match the search filter should be returned.
/// A list of filters which can be used to narrow down which lobbies to return.
/// A list of orders which define how the results should be ordered in the response.
/// A continuation token that can be passed to subsequent query requests to fetch the next page of results.
///
[Preserve]
[DataContract(Name = "QueryRequest")]
public class QueryRequest
{
///
/// The body of a Query request which defines how to sort and filter results, how many results to return, etc.
///
/// The number of results to return.
/// The number of results to skip before selecting results to return.
/// Whether a random sample of results that match the search filter should be returned.
/// A list of filters which can be used to narrow down which lobbies to return.
/// A list of orders which define how the results should be ordered in the response.
/// A continuation token that can be passed to subsequent query requests to fetch the next page of results.
[Preserve]
public QueryRequest(int? count = 10, int? skip = 0, bool sampleResults = false, List filter = default, List order = default, string continuationToken = default)
{
Count = count;
Skip = skip;
SampleResults = sampleResults;
Filter = filter;
Order = order;
ContinuationToken = continuationToken;
}
///
/// The number of results to return.
///
[Preserve]
[DataMember(Name = "count", EmitDefaultValue = false)]
public int? Count{ get; }
///
/// The number of results to skip before selecting results to return.
///
[Preserve]
[DataMember(Name = "skip", EmitDefaultValue = false)]
public int? Skip{ get; }
///
/// Whether a random sample of results that match the search filter should be returned.
///
[Preserve]
[DataMember(Name = "sampleResults", EmitDefaultValue = true)]
public bool SampleResults{ get; }
///
/// A list of filters which can be used to narrow down which lobbies to return.
///
[Preserve]
[DataMember(Name = "filter", EmitDefaultValue = false)]
public List Filter{ get; }
///
/// A list of orders which define how the results should be ordered in the response.
///
[Preserve]
[DataMember(Name = "order", EmitDefaultValue = false)]
public List Order{ get; }
///
/// A continuation token that can be passed to subsequent query requests to fetch the next page of results.
///
[Preserve]
[DataMember(Name = "continuationToken", EmitDefaultValue = false)]
public string ContinuationToken{ get; }
}
}