package com.hzs.sale.wares.param;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.domain.sale.wares.BdWaresAuthorize;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: yuhui
 * @Time: 2022/9/9 14:14
 * @Classname: WaresParams
 * @PackageName: com.hzs.sale.wares.controller.manage.params
 */
@Data
public class  WaresParams implements Serializable {
    /**
     * 商品主键
     */
    private Integer waresId;

    /**
     * 商品编号
     */
    private String waresCode;

    /**
     * 商品名称
     */
    private String waresName;


    /**
     * 商品价格
     */
    @BigDecimalFormat("#0.0000")
    private BigDecimal waresPrice;


    /**
     * 商品业绩
     */
    @BigDecimalFormat("#0.0000")
    private BigDecimal waresAchieve;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 商品分类
     */

    private Integer pkAreaClassify;

    /**
     * 封面1
     */

    private String cover1;

    /**
     * 封面2
     */
    private String cover2;

    /**
     * 封面3
     */
    private String cover3;

    /**
     * 封面4
     */
    private String cover4;

    /**
     * 封面5
     */
    private String cover5;

    /**
     * 封面6
     */
    private String cover6;

    /**
     * 所属专区
     */

    private Integer specialArea;


    /**
     * 是否单品 （套餐类型）
     */
    private Integer isSingle;

    /**
     * 是否上架
     */
    private Integer isPutOn;

    /**
     * 预售状态
     */
    private Integer preSaleStatus;

    /**
     * 上架时间
     */
    private Date putOnTime;

    /**
     * 下架时间
     */
    private Date putOffTime;

    /**
     * 经营范围 （供应方式） 枚举：ESupplyWay
     */
    private Integer operateScope;

    /**
     * 虚拟销量累加值
     */
    private Integer sales;

    /**
     * 是否出售 0 是 1 否 （销售状态）
     */
    private Integer isSale;

    /**
     * 是否陆运
     */
    private Integer isLandTrans;

    /**
     * 是否空运
     */
    private Integer isAirTrans;

    /**
     * 是否海运
     */
    private Integer isOceanTrans;

    /**
     * 陆运邮费
     */
    private Integer pkLandPostage;
    /**
     * 空运邮费
     */

    private Integer pkAirPostage;

    /**
     * 海运邮费
     */

    private Integer pkOceanPostage;


    /**
     * 生成产品明细表
     */
    private List<WaresDetailParams> waresDetailList;


    /**
     * 生成产品规格明细
     */
    private List<WaresSpecsSkuParams> waresSpecsSkuList;

    /**
     * 视频主图
     */
    private String cover;

    /**
     * 补充协议 存储主键
     */
    private Integer pkAgreement;

    /**
     * 包装与规格列表
     */
    private List<WaresSpecsPackParams> waresSpecsPackList;

    /**
     * 商品标签主键集合
     */
    private List<Integer> waresLabelIdList;

    /**
     * 商品特殊明细表
     */
    private List<WaresAuthorityParam> waresAuthorityList;



    /**
     * 商品视频地址
     */
    private String videoUrl;

    /**
     * 商品图文详情
     */
    private String details;

    /**
     * 商品详情类型 (1 图文 2 纯图 )
     */
    private Integer detailsType;




    /////////////////////////////////
    /**
     * 前缀标签 最大4个字
     */
    private String prefixLabel;

    /**
     * 酷炫标签
     */
    private String coolLabel;

    /**
     * 小标签 以逗号分隔，4个字一组
     */
    private String sLabel;

    /**
     * 提示信息
     */
    private String warnMessage;

    /**
     * 商品卖点
     */
    private String sellingPoints;
    /**
     * 前缀标签id
     */
    private Integer pkPrefixLabel;

    /**
     * 酷炫标签id
     */
    private Integer pkCoolLabel;

    /**
     * 保证标签id集合
     */
    private List<Integer> pkGuaranteeLabel;
    /**
     * 卖点标签id集合
     */
    private List<Integer> pkSellingPoint;


    /**
     * 是否包邮
     */
    private Integer isFreeMail;

    /**
     * 到货时间 （预计发货时间）
     */
    private Date arrivalTime;

    /**
     * 售后保障
     */
    private String afterGuarantee;


    /**
     * 极差明细表
     */
    List<WaresRangeParams> waresRangeList;

    /**
     * 其他参数
     */
    private Map<String,Object> params;

    /**
     * 创建时间开始
     */
    private Date startCreateDate;
    /**
     * 创建时间结束
     */
    private Date endCreateDate;
    /**
     * 开始生效时间
     */
    private Date startPutInfoTime;

    /**
     *  开始生效时间
     */
    private Date endPutInfoTime;
    /**
     * 开始上架时间
     */
    private Date startPutOnTime;
    /**
     * 结束上架时间
     */
    private Date endPutOnTime;
    /**
     * 开始上架时间
     */
    private Date startPutOffTime;
    /**
     * 开始下架时间
     */
    private Date endPutOffTime;
    /**
     * 预计发货时间 （秒）
     */
    private Long deliveryTimeMs;


    private Integer parentPkAreaClassify;


    private Integer pkCountry;

    /**
     * 是否推荐  0 推荐  1 不推荐
     */
    private Integer isRecommend;

    /**
     * 等级配置
     */
    private List<Integer> waresGradeIds;


    /**
     * 奖衔配置
     */
    private List<Integer> waresAwardsIds;

    /**
     *  是否创客礼包
     */
    private Integer isMakerGift;


    /**
     *  消费配置主键
     */
    private Integer pkSpecialCurrency;


    /**
     * 商品权限配置
     */
    List<Integer> waresMemberAuthorizeList;
}
