package cn.iocoder.yudao.module.course.entity;

import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

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

/**
 * 驾照报名订单 DO
 *
 * @author 若依
 */
@TableName("drive_school_course_order")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SchoolCourseOrder extends TenantBaseDO {

    /**
     * 主键id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 订单号
     */
    private String orderNo;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 用户姓名
     */
    private String userName;
    /**
     * 用户手机号
     */
    private String userPhone;
    /**
     * 用户身份证号
     */
    private String userNo;
    /**
     * 用户性别
     */
    private String userSex;
    /**
     * 课程id
     */
    private String courseId;
    /**
     * 课程名字
     */
    private String courseName;
    /**
     * 主负责教练ID
     */
    private Integer coachUserId;
    /**
     * 主负责教练姓名
     */
    private String coachUserName;
    /**
     * 订金金额
     */
    private BigDecimal reserveMoney;
    /**
     * 课程类型
     */
    private String courseType;
    /**
     * 是否终止（0 未终止|1已终止）
     */
    private Boolean ifEnd;
    /**
     * 终止原因
     */
    private String endReason;
    /**
     * 终止时间
     */
    private LocalDateTime endTime;
    /**
     * 订单状态 0：待支付 1：已取消 :2：已支付(已报名) 3：待面签 4：已面签 5：已完成  6： 		申请退款 7：退款中 8：退款成功
     */
    private String paymentStatus;
    /**
     * 是否已面签 0：否 1： 是
     */
    private Integer isSign;
    /**
     * 面签时间
     */
    private LocalDateTime signTime;
    /**
     * 尾款
     */
    private BigDecimal restMoney;
    /**
     * 支付类型 1：定金 2：全款
     */
    private String payType;
    /**
     * 是否分配教练 0：否 1：是
     */
    private Integer ifAssignmentCoach;
    /**
     * 旧订单id
     */
    private String oldOrderId;
    /**
     * 拿证时间
     */
    private Date passTime;
    /**
     * 毕业时间
     */
    private Date gradTime;

    /**
     * 报名方式（1为代报名）
     */
    private String signType;

    /**
     * 是否同意代报名
     */
    private String ifAgree;

    /**
     * 支付渠道（微信1、线下2）
     */
    private String payChannel;

    /**
     * 提成方案id
     */
    private String schemeId;

    /**
     * 出纳确认是否到账
     */
    private String cashierConfirm;

    /**
     * 出纳确认备注
     */
    private String cashierConfirmRemark;

    /** 订单备注 */
    private String orderRemark;

    /**
     * 缴费日期
     */
    private Date payFeesTime;

    /**
     * 出纳确认日期
     */
    private Date cashierConfirmTime;

    /**
     * 收款账号
     */
    private String paymentAccount;

    /**
     * 优惠金额
     */
    private BigDecimal discount;


    /**
     * 实付金额
     */
    private BigDecimal actualPayment;


}
