Collection.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package com.izouma.nineth.domain;
  2. import com.izouma.nineth.annotations.Searchable;
  3. import com.izouma.nineth.converter.FileObjectConverter;
  4. import com.izouma.nineth.converter.FileObjectListConverter;
  5. import com.izouma.nineth.converter.PrivilegeListConverter;
  6. import com.izouma.nineth.converter.PropertyListConverter;
  7. import com.izouma.nineth.enums.CollectionSource;
  8. import com.izouma.nineth.enums.CollectionType;
  9. import io.swagger.annotations.ApiModel;
  10. import io.swagger.annotations.ApiModelProperty;
  11. import lombok.AllArgsConstructor;
  12. import lombok.Builder;
  13. import lombok.Data;
  14. import lombok.NoArgsConstructor;
  15. import org.hibernate.annotations.Formula;
  16. import javax.persistence.*;
  17. import java.math.BigDecimal;
  18. import java.time.LocalDateTime;
  19. import java.util.List;
  20. @Data
  21. @Entity
  22. @Table(name = "collection_info", indexes = {
  23. @Index(columnList = "type,source"),
  24. @Index(columnList = "minterId"),
  25. @Index(columnList = "onShelf"),
  26. @Index(columnList = "ownerId"),
  27. @Index(columnList = "assetId")
  28. })
  29. @AllArgsConstructor
  30. @NoArgsConstructor
  31. @Builder
  32. @ApiModel("藏品")
  33. public class Collection extends BaseEntity {
  34. @ApiModelProperty("名称")
  35. @Searchable
  36. private String name;
  37. @ApiModelProperty("图片")
  38. @Column(columnDefinition = "TEXT")
  39. @Convert(converter = FileObjectListConverter.class)
  40. private List<FileObject> pic;
  41. @Column(columnDefinition = "TEXT")
  42. @Convert(converter = FileObjectConverter.class)
  43. private FileObject model3d;
  44. @ApiModelProperty("铸造者")
  45. @Searchable
  46. private String minter;
  47. @ApiModelProperty("铸造者ID")
  48. private Long minterId;
  49. @ApiModelProperty("铸造者头像")
  50. private String minterAvatar;
  51. @ApiModelProperty("铸造者")
  52. @Searchable
  53. private String owner;
  54. @ApiModelProperty("铸造者ID")
  55. private Long ownerId;
  56. @ApiModelProperty("铸造者头像")
  57. private String ownerAvatar;
  58. @ApiModelProperty("详情")
  59. @Column(columnDefinition = "TEXT")
  60. private String detail;
  61. @ApiModelProperty("类型")
  62. @Enumerated(EnumType.STRING)
  63. private CollectionType type;
  64. @Column(columnDefinition = "TEXT")
  65. @Convert(converter = PropertyListConverter.class)
  66. @ApiModelProperty("特性")
  67. private List<CollectionProperty> properties;
  68. @Column(columnDefinition = "TEXT")
  69. @Convert(converter = PrivilegeListConverter.class)
  70. @ApiModelProperty("特权")
  71. private List<Privilege> privileges;
  72. @ApiModelProperty("编号")
  73. private Integer number;
  74. @ApiModelProperty("是否可转售")
  75. private boolean canResale;
  76. @ApiModelProperty("版税比例")
  77. private int royalties;
  78. @ApiModelProperty("手续费比例")
  79. private int serviceCharge;
  80. @ApiModelProperty("分类")
  81. private String category;
  82. @ApiModelProperty("来源")
  83. @Enumerated(EnumType.STRING)
  84. private CollectionSource source;
  85. @ApiModelProperty("已售")
  86. private int sale;
  87. @ApiModelProperty("库存")
  88. private int stock;
  89. @ApiModelProperty("发行数量")
  90. private int total;
  91. @ApiModelProperty("点赞")
  92. private int likes;
  93. @ApiModelProperty("上架")
  94. private boolean onShelf;
  95. @ApiModelProperty("可售")
  96. private boolean salable;
  97. @ApiModelProperty("价格")
  98. @Column(precision = 10, scale = 2)
  99. private BigDecimal price;
  100. @ApiModelProperty("盲盒开售时间")
  101. private LocalDateTime startTime;
  102. private boolean scheduleSale;
  103. private int sort;
  104. private Long assetId;
  105. private BigDecimal originalPrice;
  106. private Integer currentNumber;
  107. @Formula(value = "if(stock <= 0, 1, 0)")
  108. private int soldOut;
  109. private int projectId;
  110. }