package co.yixiang.yshop.module.product.controller.admin.storeproduct.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 商品 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class StoreProductBaseVO {

    @Schema(description = "商品图片", required = true)
    @NotNull(message = "商品图片不能为空")
    private String image;

    @Schema(description = "商品名称", required = true, example = "张三")
    @NotNull(message = "商品名称不能为空")
    private String storeName;

    @Schema(description = "商品价格", required = true, example = "18735")
    @NotNull(message = "商品价格不能为空")
    private BigDecimal price;

    @Schema(description = "单位名", example = "李四")
    private String unitName;

    @Schema(description = "销量")
    private Integer sales;

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

    @Schema(description = "上架状态")
    private Integer isShow;

    @Schema(description = "是否包邮")
    private Integer isPostage;

    /* 分销商相关 */
    /**
     * 是否分销:0-否，1-是
     */
    @Schema(description = "是否分销:0-否，1-是")
    private Integer isDistribution;

    // 分销规则 0-默认 1-自定义
    @Schema(description = "分销规则 0-默认 1-自定义")
    private Integer distributionRule;

    @Schema(description = "分销等级 1-一级 2-二级")
    private Integer distributionLevel;

    // 分销自购 0-关闭 1-开启
    @Schema(description = "分销自购 0-关闭 1-开启")
    private Integer distributionPurchase;

    // 商品结算方式 0-实际支付价格 1-商品价格
    @Schema(description = "商品结算方式 0-实际支付价格 1-商品价格")
    private Integer distributionProductSettlement;

    // 佣金结算方式 0-支付后结算 1-确认收获后结算 2-订单完成结算
    @Schema(description = "佣金结算方式 0-支付后结算 1-确认收获后结算 2-订单完成结算")
    private Integer distributionWagesSettlement;

}
