package common.model.base;

import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;

/**
 * Generated by JFinal, do not modify this file.
 */
@SuppressWarnings("serial")
public abstract class BaseOrder<M extends BaseOrder<M>> extends Model<M> implements IBean {
	/**
	 * 主键ID，自增
	 */
	public void setId(java.lang.Long id) {
		set("id", id);
	}
	
	/**
	 * 主键ID，自增
	 */
	public java.lang.Long getId() {
		return getLong("id");
	}
	/**
	 * 订单唯一编号 (如 UUID, 时间戳+随机数), 业务主键
	 */
	public void setOrderSn(java.lang.String orderSn) {
		set("order_sn", orderSn);
	}
	
	/**
	 * 订单唯一编号 (如 UUID, 时间戳+随机数), 业务主键
	 */
	public java.lang.String getOrderSn() {
		return getStr("order_sn");
	}
	/**
	 * 用户ID，关联t_user表的主键
	 */
	public void setUserId(java.lang.Long userId) {
		set("user_id", userId);
	}
	
	/**
	 * 用户ID，关联t_user表的主键
	 */
	public java.lang.Long getUserId() {
		return getLong("user_id");
	}
	/**
	 * NFT商品ID，关联t_nftt表的主键
	 */
	public void setNfttId(java.lang.Long nfttId) {
		set("nftt_id", nfttId);
	}
	
	/**
	 * NFT商品ID，关联t_nftt表的主键
	 */
	public java.lang.Long getNfttId() {
		return getLong("nftt_id");
	}
	/**
	 * 订单状态：100=已取消, 10=待支付, 20=预购待确认, 30=预购成功, 40=已支付, 50=已发货/已确权, 60=已完成, 70=退款中, 80=退款成功, 90=退款失败
	 */
	public void setOrderStatus(java.lang.Integer orderStatus) {
		set("order_status", orderStatus);
	}
	
	/**
	 * 订单状态：100=已取消, 10=待支付, 20=预购待确认, 30=预购成功, 40=已支付, 50=已发货/已确权, 60=已完成, 70=退款中, 80=退款成功, 90=退款失败
	 */
	public java.lang.Integer getOrderStatus() {
		return getInt("order_status");
	}
	/**
	 * 订单类型：1=正式购买, 2=预购
	 */
	public void setOrderType(java.lang.Integer orderType) {
		set("order_type", orderType);
	}
	
	/**
	 * 订单类型：1=正式购买, 2=预购
	 */
	public java.lang.Integer getOrderType() {
		return getInt("order_type");
	}
	/**
	 * 购买数量
	 */
	public void setQuantity(java.lang.Integer quantity) {
		set("quantity", quantity);
	}
	
	/**
	 * 购买数量
	 */
	public java.lang.Integer getQuantity() {
		return getInt("quantity");
	}
	/**
	 * 购买时的商品单价
	 */
	public void setUnitPrice(java.lang.Integer unitPrice) {
		set("unit_price", unitPrice);
	}
	
	/**
	 * 购买时的商品单价
	 */
	public java.lang.Integer getUnitPrice() {
		return getInt("unit_price");
	}
	/**
	 * 订单总价 (quantity * unit_price)
	 */
	public void setTotalPrice(java.lang.Integer totalPrice) {
		set("total_price", totalPrice);
	}
	
	/**
	 * 订单总价 (quantity * unit_price)
	 */
	public java.lang.Integer getTotalPrice() {
		return getInt("total_price");
	}
	/**
	 * 支付方式：1=支付宝, 2=微信支付, 3=数字货币等
	 */
	public void setPaymentMethod(java.lang.Integer paymentMethod) {
		set("payment_method", paymentMethod);
	}
	
	/**
	 * 支付方式：1=支付宝, 2=微信支付, 3=数字货币等
	 */
	public java.lang.Integer getPaymentMethod() {
		return getInt("payment_method");
	}
	/**
	 * 支付流水号 (第三方支付返回的交易号)
	 */
	public void setPaymentSn(java.lang.String paymentSn) {
		set("payment_sn", paymentSn);
	}
	
	/**
	 * 支付流水号 (第三方支付返回的交易号)
	 */
	public java.lang.String getPaymentSn() {
		return getStr("payment_sn");
	}
	/**
	 * 支付完成时间戳 (Unix timestamp)
	 */
	public void setPayTime(java.lang.Long payTime) {
		set("pay_time", payTime);
	}
	
	/**
	 * 支付完成时间戳 (Unix timestamp)
	 */
	public java.lang.Long getPayTime() {
		return getLong("pay_time");
	}
	/**
	 * 交付状态：0=未交付, 1=已交付, 2=交付失败 (针对实物发货或链上确权转移)
	 */
	public void setDeliveryStatus(java.lang.Integer deliveryStatus) {
		set("delivery_status", deliveryStatus);
	}
	
	/**
	 * 交付状态：0=未交付, 1=已交付, 2=交付失败 (针对实物发货或链上确权转移)
	 */
	public java.lang.Integer getDeliveryStatus() {
		return getInt("delivery_status");
	}
	/**
	 * 交付或确权完成时间戳
	 */
	public void setDeliveryTime(java.lang.Long deliveryTime) {
		set("delivery_time", deliveryTime);
	}
	
	/**
	 * 交付或确权完成时间戳
	 */
	public java.lang.Long getDeliveryTime() {
		return getLong("delivery_time");
	}
	/**
	 * NFT铸造状态: 0=未铸造, 1=铸造中, 2=铸造成功, 3=铸造失败, 4=已确权转移
	 */
	public void setNftMintStatus(java.lang.Integer nftMintStatus) {
		set("nft_mint_status", nftMintStatus);
	}
	
	/**
	 * NFT铸造状态: 0=未铸造, 1=铸造中, 2=铸造成功, 3=铸造失败, 4=已确权转移
	 */
	public java.lang.Integer getNftMintStatus() {
		return getInt("nft_mint_status");
	}
	/**
	 * BSN交易代码
	 */
	public void setBsnTransferCode(java.lang.String bsnTransferCode) {
		set("bsn_transfer_code", bsnTransferCode);
	}
	
	/**
	 * BSN交易代码
	 */
	public java.lang.String getBsnTransferCode() {
		return getStr("bsn_transfer_code");
	}
	/**
	 * BSN转账状态
	 */
	public void setBsnTransferStatus(java.lang.String bsnTransferStatus) {
		set("bsn_transfer_status", bsnTransferStatus);
	}
	
	/**
	 * BSN转账状态
	 */
	public java.lang.String getBsnTransferStatus() {
		return getStr("bsn_transfer_status");
	}
	/**
	 * 退款状态：0=无退款, 1=退款中, 2=退款成功, 3=退款失败
	 */
	public void setRefundStatus(java.lang.Integer refundStatus) {
		set("refund_status", refundStatus);
	}
	
	/**
	 * 退款状态：0=无退款, 1=退款中, 2=退款成功, 3=退款失败
	 */
	public java.lang.Integer getRefundStatus() {
		return getInt("refund_status");
	}
	/**
	 * 退款金额
	 */
	public void setRefundAmount(java.math.BigDecimal refundAmount) {
		set("refund_amount", refundAmount);
	}
	
	/**
	 * 退款金额
	 */
	public java.math.BigDecimal getRefundAmount() {
		return getBigDecimal("refund_amount");
	}
	/**
	 * 退款原因说明
	 */
	public void setRefundReason(java.lang.String refundReason) {
		set("refund_reason", refundReason);
	}
	
	/**
	 * 退款原因说明
	 */
	public java.lang.String getRefundReason() {
		return getStr("refund_reason");
	}
	/**
	 * 订单备注或附加信息
	 */
	public void setMemo(java.lang.String memo) {
		set("memo", memo);
	}
	
	/**
	 * 订单备注或附加信息
	 */
	public java.lang.String getMemo() {
		return getStr("memo");
	}
	/**
	 * 订单取消时间戳
	 */
	public void setCancelTime(java.lang.Long cancelTime) {
		set("cancel_time", cancelTime);
	}
	
	/**
	 * 订单取消时间戳
	 */
	public java.lang.Long getCancelTime() {
		return getLong("cancel_time");
	}
	/**
	 * 订单完成或关闭时间戳
	 */
	public void setClosedTime(java.lang.Long closedTime) {
		set("closed_time", closedTime);
	}
	
	/**
	 * 订单完成或关闭时间戳
	 */
	public java.lang.Long getClosedTime() {
		return getLong("closed_time");
	}
	/**
	 * 订单创建时间戳
	 */
	public void setCreateTime(java.lang.Long createTime) {
		set("create_time", createTime);
	}
	
	/**
	 * 订单创建时间戳
	 */
	public java.lang.Long getCreateTime() {
		return getLong("create_time");
	}
	/**
	 * 订单最后更新时间戳
	 */
	public void setUpdateTime(java.lang.Long updateTime) {
		set("update_time", updateTime);
	}
	
	/**
	 * 订单最后更新时间戳
	 */
	public java.lang.Long getUpdateTime() {
		return getLong("update_time");
	}
	/**
	 * 软删除标记：0=未删除, 1=已删除
	 */
	public void setIsDeleted(java.lang.Boolean isDeleted) {
		set("is_deleted", isDeleted);
	}
	
	/**
	 * 软删除标记：0=未删除, 1=已删除
	 */
	public java.lang.Boolean getIsDeleted() {
		return getBoolean("is_deleted");
	}
	
	public boolean save() {
		set("create_time", System.currentTimeMillis());
		
		return super.save();
	}
	
	public boolean update() {
		set("update_time", System.currentTimeMillis());
		
		return super.update();
	}

	public boolean delete() {
		set("is_deleted", 1);

		return super.update();
	}
}