package com.caliverse.admin.domain.entity.metadata;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;


@Getter @Setter
public class MetaItemData {

    @JsonProperty("item_id")
    private Integer itemId;

    @JsonProperty("name")
    private String name;

    @JsonProperty("desc")
    private String desc;

    @JsonProperty("gender")
    private String gender;

    @JsonProperty("image_3D_DP")
    private String image3dDp;

    @JsonProperty("image_3D_DP_opacity")
    private String image3dDpOpacity;

    @JsonProperty("image_3D")
    private String image3d;

    @JsonProperty("image_3D_opacity")
    private String image3dOpacity;

    @JsonProperty("image_2D")
    private String image2d;

    @JsonProperty("release_date")
    private LocalDateTime releaseDate;

    @JsonProperty("Brand")
    private Integer brand;

    @JsonProperty("isNFT")
    private Boolean isNft;

    @JsonProperty("type_large")
    private String largeType;

    @JsonProperty("type_small")
    private String smallType;

    @JsonProperty("register_id")
    private Integer registerId;

    @JsonProperty("max_count")
    private Integer maxCount;

    @JsonProperty("stack_max_count")
    private Integer stackMaxCount;

    @JsonProperty("expire_type")
    private String expireType;

    @JsonProperty("expire_fixedTerm_start")
    private LocalDateTime expireFixedTermStart;

    @JsonProperty("expire_fixedTerm_end")
    private LocalDateTime expireFixedTermEnd;

    @JsonProperty("expire_time_sec")
    private Integer expireTimeSec;

    @JsonProperty("is_user_tradable")
    private Boolean isUserTradable;

    @JsonProperty("is_system_tradable")
    private Boolean isSystemTradable;

    @JsonProperty("sell_price_type")
    private String sellPriceType;

    @JsonProperty("sell_id")
    private Integer sellId;

    @JsonProperty("sell_price")
    private Integer sellPrice;

    @JsonProperty("order")
    private Integer order;

    @JsonProperty("is_throwable")
    private Boolean isThrowable;

    @JsonProperty("ActionType")
    private String actionType;

    @JsonProperty("ActionValue")
    private Integer actionValue;

    @JsonProperty("DetailOffset")
    private Float detailOffset;

    @JsonProperty("DetailScale")
    private Float detailScale;

    @JsonProperty("GuidePopup")
    private Integer guidePopup;

    @JsonProperty("DetailRoll")
    private Float detailRoll;

    @JsonProperty("DetailPitch")
    private Float detailPitch;

    @JsonProperty("DetailCameraRight")
    private Float detailCameraRight;

    @JsonProperty("DetailCameraHeight")
    private Float detailCameraHeight;

    @JsonProperty("DetailCameraAngle")
    private Float detailCameraAngle;

    @JsonProperty("Rarity")
    private String rarity;

    @JsonProperty("DefaultAttribute")
    private String defaultAttribute;

    @JsonProperty("AttributeRandomGroupID")
    private String attributeRandomGroupId;

    @JsonProperty("ItemSetID")
    private Integer itemSetId;

    @JsonProperty("GachaGroupId")
    private Integer gachaGroupId;

    @JsonProperty("Buy_Price_Type")
    private String buyPriceType;

    @JsonProperty("Buy_id")
    private Integer buyId;

    @JsonProperty("Buy_price")
    private Integer buyPrice;

    @JsonProperty("buff_id")
    private Integer buffId;

    @JsonProperty("ProductLink")
    private String productLink;

    @JsonProperty("is_CartNBuy")
    private Boolean isCartNBuy;

    @JsonProperty("Buy_Discount_Rate")
    private Integer buyDiscountRate;

    @JsonProperty("PropSmallType")
    private String propSmallType;

    @JsonProperty("UGQAction")
    private String ugqAction;

    @JsonProperty("LinkedLand")
    private Integer linkedLand;

    @JsonProperty("IsUiOnly")
    private Boolean isUiOnly;

    @JsonProperty("BeaconShopGoldFee")
    private Integer beaconShopGoldFee;

    @JsonProperty("is_BeaconShop")
    private Boolean isBeaconShop;
}
