import { JsonAlias, JsonClassType, JsonDeserialize, JsonManagedReference, JsonProperty } from "jackson-js";
export class BggPlaysPlayDto {
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_id"] })
id!: number;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_userid"] })
userid!: number;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_date"] })
date!: string;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_quantity"] })
quantity!: number;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_length"] })
length!: number;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_incomplete"] })
incomplete!: number;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_nowinstats"] })
nowinstats!: number;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_location"] })
location!: string;
@JsonProperty()
@JsonClassType({ type: () => [BggPlaysPlayItemDto] })
@JsonAlias({ values: ["item"] })
@JsonManagedReference()
@JsonDeserialize({
//eslint-disable-next-line @typescript-eslint/no-explicit-any
using: (items: any[]) => items[0]
})
item!: BggPlaysPlayItemDto;
@JsonProperty()
@JsonClassType({ type: () => [BggPlaysPlayItemDto] })
@JsonAlias({ values: ["players"] })
@JsonManagedReference()
@JsonDeserialize({
//eslint-disable-next-line @typescript-eslint/no-explicit-any
using: (items: any[]) => items[0].player
})
players!: BggPlaysPlayPlayerDto[];
}
class BggPlaysPlayItemDto {
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_name"] })
name!: string;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_objecttype"] })
objecttype!: string;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_objectid"] })
objectid!: number;
@JsonProperty()
@JsonClassType({ type: () => [Array, [BggPlaysPlayItemSubtypes]] })
@JsonDeserialize({
//eslint-disable-next-line @typescript-eslint/no-explicit-any
using: (items: any[]) => items[0].subtype
})
@JsonManagedReference()
subtypes!: BggPlaysPlayItemSubtypes[]
}
class BggPlaysPlayItemSubtypes {
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_value"] })
value!: string;
}
class BggPlaysPlayPlayerDto {
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_color"] })
color!: string;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_name"] })
name!: string;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_new"] })
new!: number;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_rating"] })
rating!: number;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_score"] })
score!: string;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_startposition"] })
startposition!: string;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_userid"] })
userid!: number;
@JsonProperty()
@JsonClassType({ type: () => [String] })
@JsonAlias({ values: ["@_username"] })
username!: string;
@JsonProperty()
@JsonClassType({ type: () => [Number] })
@JsonAlias({ values: ["@_win"] })
win!: number;
}