package com.hys.app.raycoswebapi.model.dto.product;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.hys.app.framework.database.BaseQueryParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.sql.Timestamp;

@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class StockInfoDto extends BaseQueryParam {

    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(hidden = true)
    private Long id;

    @ApiModelProperty(name = "company_id", value = "Company ID")
    private Long companyId;

    @ApiModelProperty(name = "import_task_seq", value = "importTaskSeq")
    private String importTaskSeq;

    @ApiModelProperty(name = "origin_import_task_seq", value = "原始批量导入序列号")
    private String originImportTaskSeq;

    @ApiModelProperty(name = "sales_sku_id", value = "主SKU（销售SKU） ID，可用于关联商品")
    private Long salesSkuId;

    @ApiModelProperty(name = "sales_sku_new_id", value = "主sku新表Id")
    private Long salesSkuNewId;

    @ApiModelProperty(name = "stock_sku", value = "stockSku")
    private String stockSku;

    @ApiModelProperty(name = "name_cn", value = "中文名")
    private String nameCn;

    @ApiModelProperty(name = "name_en", value = "英文名")
    @JsonProperty("name_en")
    private String nameEn;

    @ApiModelProperty(name = "parent_category_id", value = "父分类ID")
    private Long parentCategoryId;

    @ApiModelProperty(name = "category_id", value = "分类ID")
    private Long categoryId;

    @ApiModelProperty(name = "sale_price", value = "售价，默认1")
    private Double salePrice;

    @ApiModelProperty(name = "status", value = "状态：1.自动创建 2.待开发 3.正常 4.清仓 5.停止销售")
    private Long status;

    @ApiModelProperty(name = "has_battery", value = "是否含电池")
    private Long hasBattery;

    @ApiModelProperty(name = "is_tort", value = "是否侵权：1是 2否")
    private Long isTort;

    @ApiModelProperty(name = "hasVirtualSku", value = "是否有虚拟sku")
    private Long hasVirtualSku;

    @ApiModelProperty(name = "buyerId", value = "采购员ID（员工ID）")
    private Long buyerId;

    @ApiModelProperty(name = "salesId", value = "销售员ID（员工ID）")
    private Long salesId;

    @ApiModelProperty(name = "deliverId", value = "配货员（员工ID），多个之间用,分隔，1个时：,id,")
    private String deliverId;

    @ApiModelProperty(name = "artDesignerId", value = "美工")
    private Long artDesignerId;

    @ApiModelProperty(name = "defaultCost", value = "默认成本价")
    private Double defaultCost;

    @ApiModelProperty(name = "stockQuantity", value = "库存数量")
    private Long stockQuantity;

    @ApiModelProperty(name = "forecastDaySale", value = "forecastDaySale")
    private Double forecastDaySale;

    @ApiModelProperty(name = "shippingQuantity", value = "在途数量")
    private Long shippingQuantity;

    @ApiModelProperty(name = "waitingQuantity", value = "未发货数量")
    private Long waitingQuantity;

    @ApiModelProperty(name = "quantityInterval1", value = "本周")
    private Long quantityInterval1;

    @ApiModelProperty(name = "quantityInterval2", value = "上周")
    private Long quantityInterval2;

    @ApiModelProperty(name = "", value = "")
    private Long quantityInterval3;

    @ApiModelProperty(name = "", value = "")
    private Long quantityInterval4;

    @ApiModelProperty(name = "", value = "")
    private Long quantityInterval5;

    @ApiModelProperty(name = "", value = "")
    private Long quantityInterval6;

    @ApiModelProperty(name = "isSingleWarehouse", value = "是否单仓库 ： 1 是  2  否")
    private Long isSingleWarehouse;

    @ApiModelProperty(name = "defaultWarehouseId", value = "默认仓库ID（冗余字段，便于订单查找）")
    private Long defaultWarehouseId;

    @ApiModelProperty(name = "defaultStockWarehouseDetailId", value = "默认库存SKU对应仓位ID（冗余字段，便于订单查找）")
    private Long defaultStockWarehouseDetailId;

    @ApiModelProperty(name = "defaultGridCode", value = "默认仓位号")
    private String defaultGridCode;

    @ApiModelProperty(name = "timeCreated", value = "创建时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp timeCreated;

    @ApiModelProperty(name = "timeModify", value = "修改时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp timeModify;

    @ApiModelProperty(name = "purchaseType", value = "1.分仓采购 2.智能联合统一采购")
    private Long purchaseType;

    @ApiModelProperty(name = "isCloud", value = "是否云分销商品1:是；2:否")
    private Long isCloud;

    @ApiModelProperty(name = "retailSku", value = "供货商子sku")
    private String retailSku;

    @ApiModelProperty(name = "platformId", value = "平台类型id")
    private Long platformId;

    @ApiModelProperty(name = "platformUrl", value = "平台链接")
    private String platformUrl;

    @ApiModelProperty(name = "retailId", value = "供应商id")
    private Long retailId;

    @ApiModelProperty(name = "livenessType", value = "活跃度:1:爆款;2:旺款;3:平款;4:滞销款;")
    private Long livenessType;

    @ApiModelProperty(name = "isNewType", value = "是否新款:1:是")
    private Long isNewType;

    @ApiModelProperty(name = "isMachining", value = "是否有加工产品:1有,2无")
    private Long isMachining;

    @ApiModelProperty(name = "updateDate1", value = "最新出库时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp updateDate1;

    @ApiModelProperty(name = "updateDate2", value = "最新入库时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp updateDate2;

    @ApiModelProperty(name = "stopSelltime", value = "停止销售时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp stopSelltime;

    @ApiModelProperty(name = "defaultRetailId", value = "默认供应商编号")
    private Long defaultRetailId;

    @ApiModelProperty(name = "creatorId", value = "创建者id")
    private Long creatorId;

    @ApiModelProperty(name = "purchasePrice", value = "采购价")
    private Double purchasePrice;

    @ApiModelProperty(name = "processCost", value = "加工费用")
    private Double processCost;

    @ApiModelProperty(name = "shippingCost", value = "采购运费")
    private Double shippingCost;

    @ApiModelProperty(name = "parent_brand_id", value = "父级品牌ID")
    private Long parentBrandId;

    @ApiModelProperty(name = "brandId", value = "品牌ID")
    private Long brandId;

    @ApiModelProperty(name = "isList", value = "是否开启序列号管理 1.开启 2.不开启")
    private Long isList;

    @ApiModelProperty(name = "lastTime", value = "修改时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp lastTime;

    @ApiModelProperty(name = "minPaidtime", value = "未发货量订单最早时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp minPaidtime;

    @ApiModelProperty(name = "IsSynchro", value = "自动同步平台库存 1启用 2停用")
    private Long isSynchro;

    @ApiModelProperty(name = "third_category_id", value = "三级目录Id")
    private Long thirdCategoryId;

    @ApiModelProperty(name = "update_time", value = "最后更新时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp updateTime;

    @ApiModelProperty(name = "status_updatetime", value = "sku状态更新时间")
    private Timestamp statusUpdatetime;

    @ApiModelProperty(name = "all_quantity", value = "后台计算使用")
    private Long allQuantity;

    @ApiModelProperty(name = "unshipped", value = "新未发货量")
    private Long unshipped;

    @ApiModelProperty(name = "is_active", value = "是否活跃:1=是；2=否")
    private Long isActive;

    @ApiModelProperty(name = "last_paid_time", value = "最近付款时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Timestamp lastPaidTime;

    @ApiModelProperty(name = "last_provider_id", value = "最新入库供应商ID")
    private Long lastProviderId;

    @ApiModelProperty(name = "is_open_invoice_manage", value = "是否开启发票管理 0否 1是")
    private Long isOpenInvoiceManage;

    @ApiModelProperty(name = "forecast_daily_material_usage", value = "预测日原材料销量")
    private Double forecastDailyMaterialUsage;

}
