package com.tmerclub.cloud.product.vo.mongo;

import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 对应MongoDB存储出入库日志emp
 *
 * @author track
 */
@Document("stock_bill_log")
public class MongoStockBillLogVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "出入库明细id")
    private Long stockBillLogId;

    @Schema(description = "出入库单号")
    private String stockBillNo;

    @Schema(description = "关联订单号")
    private String sourceOrderNo;

    @Schema(description = "单据类型")
    private Integer stockBillType;

    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "更新时间")
    private Date updateTime;

    @Schema(description = "出入库原因id")
    private Long stockChangeReasonId;

    @Schema(description = "出入库原因")
    private String reason;

    @Schema(description = "操作员工id")
    private Long employeeId;

    @Schema(description = "状态，0：已作废，1：已出/入库，2：待提交")
    private Integer status;

    @Schema(description = "出入库时间")
    private Date businessTime;

    @Schema(description = "总出入库数量")
    private Integer totalCount;

    @Schema(description = "总出入库金额")
    private Long totalAmount;

    @Schema(description = "出入库凭证")
    private String qualifications;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "供应商id")
    private Long supplierId;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "类型，1：出库 2：入库")
    private Integer type;

    @Schema(description = "制单人手机号")
    private String makerMobile;

    @Schema(description = "制单人姓名")
    private String makerName;

    @Schema(description = "出入库项列表")
    List<MongoStockBillLogItemVO> stockBillItemLogs;

    @Schema(description = "库存点id")
    private Long stockPointId;

    @Schema(description = "库存点名称")
    private String stockPointName;

    @Schema(description = "库存点类型(1:仓库 2:门店)")
    private Integer stockPointType;

    public Long getStockPointId() {
        return stockPointId;
    }

    public void setStockPointId(Long stockPointId) {
        this.stockPointId = stockPointId;
    }

    public String getStockPointName() {
        return stockPointName;
    }

    public void setStockPointName(String stockPointName) {
        this.stockPointName = stockPointName;
    }

    public Integer getStockPointType() {
        return stockPointType;
    }

    public void setStockPointType(Integer stockPointType) {
        this.stockPointType = stockPointType;
    }

    public Long getStockBillLogId() {
        return stockBillLogId;
    }

    public void setStockBillLogId(Long stockBillLogId) {
        this.stockBillLogId = stockBillLogId;
    }

    public String getStockBillNo() {
        return stockBillNo;
    }

    public void setStockBillNo(String stockBillNo) {
        this.stockBillNo = stockBillNo;
    }

    public String getSourceOrderNo() {
        return sourceOrderNo;
    }

    public void setSourceOrderNo(String sourceOrderNo) {
        this.sourceOrderNo = sourceOrderNo;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Integer getStockBillType() {
        return stockBillType;
    }

    public void setStockBillType(Integer stockBillType) {
        this.stockBillType = stockBillType;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getStockChangeReasonId() {
        return stockChangeReasonId;
    }

    public void setStockChangeReasonId(Long stockChangeReasonId) {
        this.stockChangeReasonId = stockChangeReasonId;
    }

    public Long getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Long employeeId) {
        this.employeeId = employeeId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getBusinessTime() {
        return businessTime;
    }

    public void setBusinessTime(Date businessTime) {
        this.businessTime = businessTime;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    public Long getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Long totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getQualifications() {
        return qualifications;
    }

    public void setQualifications(String qualifications) {
        this.qualifications = qualifications;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getMakerMobile() {
        return makerMobile;
    }

    public void setMakerMobile(String makerMobile) {
        this.makerMobile = makerMobile;
    }

    public List<MongoStockBillLogItemVO> getStockBillItemLogs() {
        return stockBillItemLogs;
    }

    public void setStockBillItemLogs(List<MongoStockBillLogItemVO> stockBillItemLogs) {
        this.stockBillItemLogs = stockBillItemLogs;
    }

    public String getMakerName() {
        return makerName;
    }

    public void setMakerName(String makerName) {
        this.makerName = makerName;
    }

    @Override
    public String toString() {
        return "MongoStockBillLogVO{" +
                "stockBillLogId=" + stockBillLogId +
                ", stockBillNo='" + stockBillNo + '\'' +
                ", sourceOrderNo='" + sourceOrderNo + '\'' +
                ", stockBillType=" + stockBillType +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", stockChangeReasonId=" + stockChangeReasonId +
                ", reason='" + reason + '\'' +
                ", employeeId=" + employeeId +
                ", status=" + status +
                ", businessTime=" + businessTime +
                ", totalCount=" + totalCount +
                ", totalAmount=" + totalAmount +
                ", qualifications='" + qualifications + '\'' +
                ", shopId=" + shopId +
                ", supplierId=" + supplierId +
                ", remark='" + remark + '\'' +
                ", type=" + type +
                ", makerMobile='" + makerMobile + '\'' +
                ", makerName='" + makerName + '\'' +
                ", stockBillItemLogs=" + stockBillItemLogs +
                ", stockPointId=" + stockPointId +
                ", stockPointName='" + stockPointName + '\'' +
                ", stockPointType=" + stockPointType +
                '}';
    }
}
