package cn.newfeifan.mall.module.product.controller.admin.spuapply.vo;

import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.newfeifan.mall.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 商品spu申请分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SpuApplyPageReqVO extends PageParam {

    @Schema(description = "商品名称", example = "非繁人")
    private String name;

    @Schema(description = "关键字")
    private String keyword;

    @Schema(description = "商品简介")
    private String introduction;

    @Schema(description = "商品详情", example = "你猜")
    private String description;

    @Schema(description = "产地")
    private String producerArea;

    @Schema(description = "商品类别", example = "2")
    private Integer spuType;

    @Schema(description = "商品分类编号", example = "1734")
    private Long categoryId;

    @Schema(description = "商品品牌编号", example = "4607")
    private Integer brandId;

    @Schema(description = "商品封面图", example = "https://www.zhongxing.cn")
    private String picUrl;

    @Schema(description = "商品轮播图地址数组，以逗号分隔最多上传15张")
    private String sliderPicUrls;

    @Schema(description = "排序字段")
    private Integer sort;

    @Schema(description = "商品状态: 0 上架（开启） 1 下架（禁用）-1 回收", example = "1")
    private Integer status;

    @Schema(description = "规格类型：0 单规格 1 多规格", example = "2")
    private Boolean specType;

    @Schema(description = "商品价格，单位使用：分", example = "2808")
    private Integer price;

    @Schema(description = "市场价，单位使用：分", example = "7922")
    private Integer marketPrice;

    @Schema(description = "成本价，单位： 分", example = "17622")
    private Integer costPrice;

    @Schema(description = "库存")
    private Integer stock;

    @Schema(description = "配送方式数组")
    private String deliveryTypes;

    @Schema(description = "物流配置模板编号", example = "3169")
    private Long deliveryTemplateId;

    @Schema(description = "赠送积分")
    private Integer giveIntegral;

    @Schema(description = "分销类型", example = "1")
    private Boolean subCommissionType;

    @Schema(description = "商品销量", example = "231")
    private Integer salesCount;

    @Schema(description = "虚拟销量", example = "24880")
    private Integer virtualSalesCount;

    @Schema(description = "商品点击量", example = "18493")
    private Integer browseCount;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "店铺id", example = "19626")
    private Long shopId;

    @Schema(description = "商户id", example = "14569")
    private Long merchantId;

    @Schema(description = "是否隐藏。隐藏：1，不隐藏：0")
    private Boolean hidden;

    @Schema(description = "推广费, 单位: 分，值为sku中最大的推广费")
    private Integer promotionFee;

    @Schema(description = "商品支付类别(1 rmb 2积分)", example = "1")
    private Integer spuPayType;

    @Schema(description = "高精度")
    private Boolean highPrecision;

    @Schema(description = "高精度价格", example = "23692")
    private BigDecimal highPrecisionPrice;

    @Schema(description = "申请用户id", example = "22602")
    private Long applyMemberUserId;

    @Schema(description = "审核系统用户id", example = "22820")
    private Long checkSystemUserId;

    @Schema(description = "审核时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] checkTime;

    @Schema(description = "审核意见")
    private String checkComment;

    @Schema(description = "审核状态：默认0表示未审核，1审核通过，2审核不通过", example = "1")
    private Integer checkStatus;

    @Schema(description = "前端请求的tab类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer tabType;

}