cfcoreapi/CFCoreAPI/Endpoints/Games/Responses/GamesResponse.cs

95 lines
2.5 KiB
C#

using System.Text.Json.Serialization;
namespace CFCoreAPI.Endpoints.Games.Responses
{
public struct GamesResponse
{
[JsonConstructor]
public GamesResponse(
List<DataModel> data,
PaginationModel pagination
)
{
this.Data = data;
this.Pagination = pagination;
}
public IReadOnlyList<DataModel> Data { get; }
public PaginationModel Pagination { get; }
public struct AssetsModel
{
[JsonConstructor]
public AssetsModel(
string iconUrl,
string tileUrl,
string coverUrl
)
{
this.IconUrl = iconUrl;
this.TileUrl = tileUrl;
this.CoverUrl = coverUrl;
}
public string IconUrl { get; }
public string TileUrl { get; }
public string CoverUrl { get; }
}
public struct DataModel
{
[JsonConstructor]
public DataModel(
int id,
string name,
string slug,
DateTime dateModified,
AssetsModel assets,
int status,
int apiStatus
)
{
this.Id = id;
this.Name = name;
this.Slug = slug;
this.DateModified = dateModified;
this.Assets = assets;
this.Status = status;
this.ApiStatus = apiStatus;
}
public int Id { get; }
public string Name { get; }
public string Slug { get; }
public DateTime DateModified { get; }
public AssetsModel Assets { get; }
public int Status { get; }
public int ApiStatus { get; }
}
public struct PaginationModel
{
[JsonConstructor]
public PaginationModel(
int index,
int pageSize,
int resultCount,
int totalCount
)
{
this.Index = index;
this.PageSize = pageSize;
this.ResultCount = resultCount;
this.TotalCount = totalCount;
}
public int Index { get; }
public int PageSize { get; }
public int ResultCount { get; }
public int TotalCount { get; }
}
}
}