package org.dromara.zhishu.domain;

import lombok.*;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import org.dromara.common.mybatis.core.domain.BaseEntity;


/**
 * 账务记录实体类
 * 对应表名：account
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("account")
public class Account extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 业务号（唯一）
     */
    private String accountNo;

    /**
     * 相关id
     */
    private Long aboutId;

    /**
     * 业务类型 0-预留   1225 闲鱼  1221 pdd  1222 孔夫子
     */
    private Integer type;

    /**
     * 交易类型 1-收入 2-支出
     */
    private Integer tradeType;

    /**
     * 支付渠道 wechat/alipay/...
     */
    private String payType;

    /**
     * 订单总金额（分）
     */
    private Long totalAmount;

    /**
     * 入账相关ID
     */
    private Long getById;

    /**
     * 出账相关ID
     */
    private Long setById;

    /**
     * 交易状态 0-预留 1-待处理 2-成功 3-失败 4-回滚
     */
    private Integer tradeStatus;

    /**
     * 重试次数
     */
    private Integer retryCount;

    /**
     * 备注
     */
    private String note;

    /**
     * 扩展字段（JSON）
     */
    private String extendJson;

    /**
     * 创建人
     */
    private Long createdBy;

    /**
     * 创建时间戳（毫秒）
     */
    private Long createdTime;

    /**
     * 更新人
     */
    private Long updatedBy;

    /**
     * 更新时间戳（毫秒）
     */
    private Long updatedTime;

    /**
     * 删除标识 0-正常 1-删除
     */
    private Integer isDel;

    /**
     * 当时余额
     */
    private Long balance;
}