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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
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
 */
@Data
@ToString
@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;

}
