package com.izouma.nineth.domain; import com.izouma.nineth.annotations.Searchable; import com.izouma.nineth.converter.FileObjectConverter; import com.izouma.nineth.converter.FileObjectListConverter; import com.izouma.nineth.converter.PrivilegeListConverter; import com.izouma.nineth.converter.PropertyListConverter; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.*; import java.math.BigDecimal; import java.util.List; @Data @Entity @Table(indexes = { @Index(columnList = "blindBoxId"), @Index(columnList = "collectionId"), @Index(columnList = "minterId"), }) @AllArgsConstructor @NoArgsConstructor @Builder public class BlindBoxItem extends BaseEntity { private Long blindBoxId; private Long collectionId; @ApiModelProperty("名称") @Searchable private String name; @ApiModelProperty("图片") @Column(columnDefinition = "TEXT") @Convert(converter = FileObjectListConverter.class) private List pic; @Column(columnDefinition = "TEXT") @Convert(converter = FileObjectConverter.class) private FileObject model3d; @ApiModelProperty("铸造者") @Searchable private String minter; @ApiModelProperty("铸造者ID") private Long minterId; @ApiModelProperty("铸造者头像") private String minterAvatar; @ApiModelProperty("详情") @Column(columnDefinition = "TEXT") private String detail; @ApiModelProperty("已售") private int sale; @ApiModelProperty("库存") private int stock; @ApiModelProperty("发行数量") private int total; @ApiModelProperty("价格") @Column(precision = 10, scale = 2) private BigDecimal price; @Column(columnDefinition = "TEXT") @Convert(converter = PropertyListConverter.class) @ApiModelProperty("特性") private List properties; @Column(columnDefinition = "TEXT") @Convert(converter = PrivilegeListConverter.class) @ApiModelProperty("特权") private List privileges; @ApiModelProperty("是否可转售") private boolean canResale; @ApiModelProperty("版税比例") private int royalties; @ApiModelProperty("手续费比例") private int serviceCharge; @ApiModelProperty("分类") private String category; @ApiModelProperty("稀有") private boolean rare; @ApiModelProperty("持有几天") private Integer holdDays; }