package com.tashow.cloud.product.vo.sku;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.tashow.cloud.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 单品SKU分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class SkuPageReqVO extends PageParam {

    @Schema(description = "商品ID", example = "18784")
    private Long prodId;

    @Schema(description = "销售属性组合字符串 格式是p1:v1;p2:v2")
    private String properties;

    @Schema(description = "别名")
    private String alias;

    @Schema(description = "价格", example = "32405")
    private BigDecimal price;

    @Schema(description = "最低价格", example = "5040")
    private BigDecimal minPrice;

    @Schema(description = "最高价格", example = "11547")
    private BigDecimal maxPrice;

    @Schema(description = "成本价", example = "28062")
    private BigDecimal originalPrice;

    @Schema(description = "市场价", example = "11547")
    private BigDecimal marketPrice;

    @Schema(description = "单位")
    private String unit;

    @Schema(description = "0:主服务1:待定", example = "1")
    private Integer type;

    @Schema(description = "概述")
    private String overview;

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

    @Schema(description = "预警库存")
    private Integer warnStocks;

    @Schema(description = "库存扣款时机0:付款扣1：下单扣", example = "1")
    private Boolean stocksType;

    @Schema(description = "sku编码")
    private String skuCode;

    @Schema(description = "商品条形码", example = "14390")
    private String modelId;

    @Schema(description = "sku图片")
    private String pic;

    @Schema(description = "sku名称", example = "张三")
    private String skuName;

    @Schema(description = "商品名称", example = "芋艿")
    private String prodName;

    @Schema(description = "版本号")
    private Integer version;

    @Schema(description = "商品重量")
    private Double weight;

    @Schema(description = "商品体积")
    private Double volume;

    @Schema(description = "0 禁用 1 启用", example = "1")
    private Integer status;

    @Schema(description = "0 正常 1 已被删除")
    private Integer isDelete;

    @Schema(description = "最小购买数量")
    private Integer moq;

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

}