package com.wzj.soopin.goods.domain.query;

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

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品信息 查询 对象
 *
 * @author zcc
 */
@Schema(description = "商品信息查询对象")
@Data
public class ProductQuery {
    @Schema(description = "BRAND_ID 精确匹配")
    private Long brandId;

    @Schema(description = "CATEGORY_ID 精确匹配")
    private Long categoryId;

    @Schema(description = "商品编码 精确匹配")
    private String outProductId;

    @Schema(description = "NAME 模糊匹配")
    private String nameLike;

    @Schema(description = "主图 精确匹配")
    private String pic;

    @Schema(description = "画册图片，连产品图片限制为5张，以逗号分割 精确匹配")
    private String albumPics;

    @Schema(description = "上架状态：0->下架；1->上架 精确匹配")
    private Integer publishStatus;

    @Schema(description = "排序 精确匹配")
    private Integer sort;

    @Schema(description = "PRICE 精确匹配")
    private BigDecimal price;

    @Schema(description = "单位 精确匹配")
    private String unit;

    @Schema(description = "商品销售属性，JSON格式")
    private String productAttr;

    @Schema(description = "商品重量，默认为克 精确匹配")
    private BigDecimal weight;

    @Schema(description = "产品详情网页内容 精确匹配")
    private String detailHtml;

    @Schema(description = "移动端网页详情 精确匹配")
    private String detailMobileHtml;

    @Schema(description = "品牌名称 模糊匹配")
    private String brandNameLike;

    @Schema(description = "商品分类名称 模糊匹配")
    private String productCategoryNameLike;

    @Schema(description = "排序字段，默认值：sort")
    private String orderField = "sort";

    @Schema(description = "排序规则，默认值：desc")
    private String orderSort = "desc";

    @Schema(description = "搜索关键字，支持多字段模糊匹配")
    private String search;

    @Schema(description = "排除的商品ID列表")
    private List<Long> excludeProductIds;

    @Schema(description = "包含的商品ID列表")
    private List<Long> ids;
}
