package com.alterdekim.game.component.game.inventory;

import com.alterdekim.game.entity.Incompatible;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.util.List;

@Getter
@AllArgsConstructor
@NoArgsConstructor
@JacksonXmlRootElement(localName = "user_avatar")
@JsonPropertyOrder({"Shape", "BodyParts", "Inventory", "Backgrounds", "Phones", "SportInventory", "Incompatibles"})
public class Inventory {
    @JacksonXmlProperty(localName = "Shape")
    private InventoryTab shape;

    @JacksonXmlProperty(localName = "BodyParts")
    private InventoryTab bodyparts;

    @JacksonXmlProperty(localName = "Inventory")
    private InventoryTab inventory;

    @JacksonXmlProperty(localName = "Backgrounds")
    private InventoryList backgrounds;

    @JacksonXmlProperty(localName = "Phones")
    private InventoryList phones;

    @JacksonXmlProperty(localName = "SportInventory")
    private InventoryList sportinv;

    @JacksonXmlProperty(localName = "Incompatibles")
    @JacksonXmlElementWrapper(useWrapping = true, localName = "Incompatibles")
    private List<Incompatible> items;
}
