/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.martial.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 报名订单实体类
 *
 * @author BladeX
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("martial_registration_order")
@Schema(description = "报名订单")
public class MartialRegistrationOrder extends TenantEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 订单号
	 */
	@Schema(description = "订单号")
	private String orderNo;

	/**
	 * 赛事ID
	 */
	@Schema(description = "赛事ID")
	private Long competitionId;

	/**
	 * 用户ID
	 */
	@Schema(description = "用户ID")
	private Long userId;

	/**
	 * 用户名
	 */
	@Schema(description = "用户名")
	private String userName;

	/**
	 * 联系人
	 */
	@Schema(description = "联系人")
	private String contactPerson;

	/**
	 * 联系电话
	 */
	@Schema(description = "联系电话")
	private String contactPhone;

	/**
	 * 所属单位
	 */
	@Schema(description = "所属单位")
	private String organization;

	/**
	 * 参赛总人数
	 */
	@Schema(description = "参赛总人数")
	private Integer totalParticipants;

	/**
	 * 订单总金额
	 */
	@Schema(description = "订单总金额")
	private BigDecimal totalAmount;

	/**
	 * 已支付金额
	 */
	@Schema(description = "已支付金额")
	private BigDecimal paidAmount;

	/**
	 * 支付方式(1-微信,2-支付宝,3-线下)
	 */
	@Schema(description = "支付方式")
	private Integer paymentMethod;

	/**
	 * 支付时间
	 */
	@Schema(description = "支付时间")
	private LocalDateTime paymentTime;

	/**
	 * 支付交易号
	 */
	@Schema(description = "支付交易号")
	private String transactionNo;

	/**
	 * 退款金额
	 */
	@Schema(description = "退款金额")
	private BigDecimal refundAmount;

	/**
	 * 退款时间
	 */
	@Schema(description = "退款时间")
	private LocalDateTime refundTime;

	/**
	 * 退款原因
	 */
	@Schema(description = "退款原因")
	private String refundReason;

	/**
	 * 发票类型(0-不需要,1-普通,2-增值税)
	 */
	@Schema(description = "发票类型")
	private Integer invoiceType;

	/**
	 * 发票抬头
	 */
	@Schema(description = "发票抬头")
	private String invoiceTitle;

	/**
	 * 税号
	 */
	@Schema(description = "税号")
	private String invoiceTaxNo;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remark;

}
