package com.kxs.product.api.model;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 客小爽机具表(KxsMachine)表实体类
 *
 * @author 系统
 * @since 2023-12-20 10:09:35
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class KxsMachine extends Model<KxsMachine> implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    
    
    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    @TableId(type = IdType.AUTO)
    private Integer id;


    /**
     * 新增时间
     */
    @TableField(fill = FieldFill.INSERT)
    @Schema(description = "新增时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;


    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;


    /**
     * 删除标记，0未删除，1已删除
     */
    @Schema(description = "删除标记，0未删除，1已删除")
    private String delFlag;


    /**
     * 版本
     */
    @Schema(description = "版本")
    private Integer version;


    /**
     * 机具码
     */
    @Schema(description = "机具码")
    private String posSn;


    /**
     * 仓库ID
     */
    @Schema(description = "仓库ID")
    private Integer warehouseId;

    /**
     * 仓库名称
     */
    @Schema(description = "仓库名称")
    private String warehouseName;


    /**
     * 所属创客ID
     */
    @Schema(description = "所属创客ID")
    private Integer userId;


    /**
     * 商户ID
     */
    @Schema(description = "商户ID")
    private Integer merchantId;


    /**
     * 品牌ID
     */
    @Schema(description = "品牌ID")
    private Integer brandId;


    /**
     * 循环状态 0不可循环 1可循环
     */
    @Schema(description = "循环状态 0不可循环 1可循环")
    private Integer recycleStatus;


    /**
     * 循环结束时间
     */
    @Schema(description = "循环结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime recycleEndTime;


    /**
     * 机具类型 0兑换机 1循环机
     */
    @Schema(description = "机具类型 0兑换机 1循环机")
    private Integer machineType;


    /**
     * 机具押金
     */
    @Schema(description = "机具押金")
    private BigDecimal cashPledge;


    /**
     * 厂家押金
     */
    @Schema(description = "厂家押金")
    private BigDecimal sourcePledge;


    /**
     * 机具轨迹路径
     */
    @Schema(description = "机具轨迹路径")
    private String allotPath;


    /**
     * 绑定时间
     */
    @Schema(description = "绑定时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime bindTime;


    /**
     * 激活时间
     */
    @Schema(description = "激活时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime actTime;


    /**
     * 出库时间
     */
    @Schema(description = "出库时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime deliveryTime;


    /**
     * 箱码
     */
    @Schema(description = "箱码")
    private String boxSn;


    /**
     * 机具费率
     */
    @Schema(description = "机具费率")
    private BigDecimal machineRatio;


    /**
     * 是否激活 0未激活 1已激活
     */
    @Schema(description = "是否激活 0未激活 1已激活")
    private Integer isAct;


    /**
     * 绑定状态 0未绑定 1已绑定 2已解绑
     */
    @Schema(description = "绑定状态 0未绑定 1已绑定 2已解绑")
    private Integer bindStatus;


    /**
     * 状态 0在库 1出库
     */
    @Schema(description = "状态 0在库 1出库 2已退回 3可回收 4回收中 5已回收 6已预发")
    private Integer status;

    /**
     * 回收状态 待回收=1 待确认=2 已确认=3 已驳回=4 已撤回=-1
     */
    @Schema(description = "回收状态 待回收=1 待确认=2 已确认=3 已驳回=4 已撤回=-1")
    private Integer returnStatus;


    /**
     * 是否首台 0否 1是
     */
    @Schema(description = "是否首台 0否 1是")
    private Integer isFirst;


    /**
     * 费率调升标记
     */
    @Schema(description = "费率调升标记 0未调 1已调整")
    private Integer upFeeFlag;

    /**
     * 费率调降标记
     */
    @Schema(description = "费率调升标记 0未调 1已调整")
    private Integer downFeeFlag;


    /**
     * 盟主用户ID
     */
    @Schema(description = "盟主用户ID")
    private Integer leaderId;

    /**
     * 合伙人用户ID
     */
    @Schema(description = "合伙人用户ID")
    private Integer partnerId;

    /**
     * 预发到用户的ID
     */
    @Schema(description = "预发到用户的ID")
    private Integer preUserId;


    /**
     * 补录标识 0未补录 1已补录
     */
    @Schema(description = "补录标识 0未补录 1已补录")
    private Integer isSupply;

    /**
     * 补激活奖标记 0未补录 1已补录
     */
    @Schema(description = "补录标识 0未补录 1已补录")
    private Integer isOpAct;

    /**
     * 业务批次号
     */
    @Schema(description = "业务批次号")
    private String batchNo;

    /**
     * 贷记卡交易额
     */
    @Schema(description = "贷记卡交易额")
    private BigDecimal creditTrade;

    /**
     * 借记卡交易额
     */
    @Schema(description = "借记卡交易额")
    private BigDecimal debitCardTrade;

    /**
     * 扫码交易额
     */
    @Schema(description = "扫码交易额")
    private BigDecimal scanQrTrade;

    /**
     * 溯源机具和兑换券
     */
    @Schema(description = "溯源机具和兑换券")
    private String sourcePosSn;

    /**
     * 机具地址
     */
    @Schema(description = "机具地址")
    private String devLocation;


}

