package com.trade.service.trade.salesorder.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.trade.common.core.domain.BizBaseEntity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.trade.service.trade.salesorder.constant.SaleOrderConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 销售订单-关联商品
 * </p>
 *
 * @author zhangchenm
 * @since 2024-09-06
 */
@Getter
@Setter
@TableName("sales_order_goods")
public class SalesOrderGoods extends BizBaseEntity {

    private static final long serialVersionUID = 1L;
    @ApiModelProperty(name = "saleOrderId", value = "销售订单ID")
    private Long saleOrderId;
    @ApiModelProperty(name = "salesCommodityId", value = "销售合同商品ID")
    private Long salesCommodityId;
    @ApiModelProperty(name = "vendorEntityNo", value = "供应商编号")
    @NotNull(message = "供应商编号不能为空")
    private String vendorEntityNo;
    @ApiModelProperty(name = "hsCode", value = "HS CODE")
    @NotNull(message = "HS CODE不能为空")
    private String hsCode;
    @ApiModelProperty(name = "declarationName", value = "报关品名")
    private String declarationName;
    @ApiModelProperty(name = "name", value = "商品名称")
    @NotNull(message = "商品名称不能为空")
    private String name;
    @ApiModelProperty(name = "unit", value = "计量单位")
    @NotNull(message = "计量单位不能为空")
    private String unit;
    @ApiModelProperty(name = "packingSpecifications", value = "包装规格")
    @NotNull(message = "包装规格不能为空")
    private String packingSpecifications;
    @ApiModelProperty(name = "price", value = "销售单价")
    @NotNull(message = "销售单价不能为空")
    private BigDecimal price;
    @ApiModelProperty(name = "taxRefundRate", value = "退税率")
    private BigDecimal taxRefundRate;
    @ApiModelProperty(name = "count", value = "商品数量")
    @NotNull(message = "商品数量不能为空")
    private BigDecimal count;
    @ApiModelProperty(name = "priceTotal", value = "商品总额")
    @NotNull(message = "商品总额不能为空")
    private BigDecimal priceTotal;
    @ApiModelProperty(name = "model", value = "商品型号")
    private String model;
    @ApiModelProperty(name = "receivePaymentStatus", value = "收款状态0未收款1审核中2已收款3已转出")
    private Integer receivePaymentStatus = SaleOrderConstant.GOODS_STATUS_UNCOLLECTED;
}
