package cn.iocoder.yudao.module.order.dal.dataobject.orderException;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

/**
 * 订单异常 DO
 *
 * @author 系统管理员
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_order_exception")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OrderExceptionDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 订单商品id
     */
    private Long orderItemId;
    /**
     * 商品id
     */
    private Long prodId;
    /**
     * 订单号
     */
    private String orderNumber;
    /**
     * 客户ID
     */
    private Long customerId;
    /**
     * 异常类型
     */
    private String orderExceptionType;
    /**
     * 异常描述
     */
    private String orderExceptionRemark;
    /**
     * 异常详情
     */
    private String orderExceptionDetails;
    /**
     * 异常备注
     */
    private String orderExceptionNotes;
    /**
     * 异常金额
     */
    private java.math.BigDecimal orderExceptionAmount;
    /**
     * 异常金额币种ID
     */
    private Long orderExceptionAmountCurrencyId;
    /**
     * 附件,多个,拼接
     */
    private String orderExceptionAttr;
    /**
     * 异常状态0:待处理，1处理中，2已处理
     */
    private Integer orderExceptionStatus;

    /**
     * 流程ID
     */
    private String bpmId;

    /**
     * 流程申请状态  1, "处理中",
     * APPROVE(2, "通过"),
     * REJECT(3, "不通过"),
     * CANCEL(4, "已取消");
     */
    private Integer bpmStatus;


    /**
     * 附加的json串，用于传递产生异常时的信息，目的是溯源。因异常多种多样，参数也各不相同，故不转化为固定对象，建议转换为JsonObject，使用get("属性名")获取值
     */
    private String additionalJson;

    /**
     * 用于异常时旧的价格
     */
    private String oldPriceJson;
}
