package com.ruoyi.hezhi.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

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

/**
 * 考试报名对象 tb_exam_registration
 *
 * @author ruoyi
 * @date 2024-11-05
 */
@Getter
@Setter
@ToString
public class TbExamRegistration extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 考试报名主键ID */
    private Long examRegistrationId;

    /** 用户ID */
//    @Excel(name = "用户ID")
    private Long memberUserId;

    /** 考试ID */
//    @Excel(name = "考试ID")
    private Long examId;

    /** 报名批次序号 */
//    @Excel(name = "报名批次序号")
    private Integer examBatchIndex;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 性别（0-男，1-女，2-未知） */
//    @Excel(name = "性别", readConverterExp = "0=-男，1-女，2-未知")
    private Integer sex;

    /** 曾用名 */
//    @Excel(name = "曾用名")
    private String formerName;

    /** 民族 */
//    @Excel(name = "民族")
    private String nation;

    /** 身份证号 */
//    @Excel(name = "身份证号")
    private String identityCard;

    /** 出生日期 */
//    @Excel(name = "出生日期")
    private String birthday;

    /** 生源类型 */
//    @Excel(name = "生源类型")
    private String sourceType;

    /** 籍贯 */
//    @Excel(name = "籍贯")
    private String nativePlace;

    /** 政治面貌 */
//    @Excel(name = "政治面貌")
    private String politicalStatus;

    /** 学历（0-无，1-小学，2-初中，3-高中，4-中专，5-专科，6-本科，7-研究生） */
    @Excel(name = "学历")
    private String education;

    /** 专业 */
    @Excel(name = "专业")
    private String major;

    /** 所在学校（毕业学校） */
    @Excel(name = "所在学校")
    private String graduationSchool;

    /** 入学年份（毕业年份） */
//    @Excel(name = "入学年份")
    private String entranceYear;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String contactInformation;

    /** 省ID */
//    @Excel(name = "省ID")
    private Long provinceId;

    /** 市ID */
//    @Excel(name = "市ID")
    private Long cityId;

    /** 区（县）ID */
//    @Excel(name = "区", readConverterExp = "县=")
    private Long areaId;

    /** 省名 */
//    @Excel(name = "省名")
    private String provinceName;

    /** 市名 */
//    @Excel(name = "市名")
    private String cityName;

    /** 区名 */
//    @Excel(name = "区名")
    private String areaName;

    /** 详细地址 */
//    @Excel(name = "详细地址")
    private String address;

    /** 邮编 */
//    @Excel(name = "邮编")
    private String zipCode;

    /** 联系电话 */
//    @Excel(name = "联系电话")
    private String contactPhone;

    /** 电子邮箱 */
//    @Excel(name = "电子邮箱")
    private String email;

    /** 蓝底证件照 */
//    @Excel(name = "蓝底证件照")
    private String idPhoto;

    /** 身份证国徽面（正面） */
//    @Excel(name = "身份证国徽面", readConverterExp = "正=面")
    private String identityCardBadge;

    /** 身份证人像面（反面） */
//    @Excel(name = "身份证人像面", readConverterExp = "反=面")
    private String identityCardPortrait;

    /** 毕业证书（多个用英文逗号隔开） */
//    @Excel(name = "毕业证书", readConverterExp = "多=个用英文逗号隔开")
    private String graduationCertificate;

    /** 机构ID */
//    @Excel(name = "机构ID")
    private Long agencyId;

    /** 机构名称 */
    @Excel(name = "机构名称")
    private String agencyName;

    /** 职业ID */
//    @Excel(name = "职业ID")
    private Long careerId;

    /** 职业名称 */
    @Excel(name = "职业名称")
    private String careerName;

    /** 考试等级 */
    @Excel(name = "考试等级")
    private String examLevel;

    /** 报名批次 */
    @Excel(name = "报名批次")
    private String registrationBatch;

    /** 学习中心ID */
//    @Excel(name = "学习中心ID")
    private Long studyCenterId;

    /** 学习中心 */
    @Excel(name = "学习中心")
    private String studyCenter;

    /** 机构代码 */
    @Excel(name = "机构代码")
    private String agencyCode;

    /** 是否自查申请资料完整性（0-否，1-是） */
//    @Excel(name = "是否自查申请资料完整性", readConverterExp = "0=-否，1-是")
    private Integer isInspect;

    /** 签字照 */
//    @Excel(name = "签字照")
    private String signPhoto;

    /** 支付状态（0-未支付，1-已支付，-1-已取消） */
//    @Excel(name = "支付状态", readConverterExp = "0=未支付,1=已支付，-1-已取消")
    private Integer isPay;

    /** 审核状态（0-待审核，1-审核通过，2-审核拒绝） */
    @Excel(name = "考试状态", readConverterExp = "0=待考试,1=通过,2=未通过")
    private Integer examineStatus;

    //订单金额
    @Excel(name = "报名费用")
    private BigDecimal orderPrice;

    /** 支付金额 */
    @Excel(name = "支付金额")
    private BigDecimal payPrice;

    /** 支付方式（0-未支付，1-微信，2-支付宝,3-线下） */
    @Excel(name = "支付方式", readConverterExp = "0=未支付,1=微信,2=支付宝,3=线下")
    private Integer payType;

    /** 类型（0-全部） */
//    @Excel(name = "类型", readConverterExp = "0=-全部")
    private Integer type;

    /** 审核反馈 */
//    @Excel(name = "审核反馈")
    private String examineFeedback;

    /** 排序 */
//    @Excel(name = "排序")
    private Integer sort;

    /** 备注 */
//    @Excel(name = "备注")
    private String remarks;

    /** 状态（0-显示，1-隐藏） */
//    @Excel(name = "状态", readConverterExp = "0=-显示，1-隐藏")
    private Integer status;

    /** 发布时间 */
    private Date publicationTime;

    /** 发布人 */
    private String publisher;

    /** 删除时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deleteTime;

    /** 删除人 */
//    @Excel(name = "删除人")
    private String deleteBy;

    /** 删除标记（0-正常，1-删除） */
    private Integer delFlag;

    /** 报名表 */
//    @Excel(name = "报名表")
    private String registrationForm;

    /** 准考证 */
//    @Excel(name = "准考证")
    private String admissionTicket;

    /** 成绩单 */
//    @Excel(name = "成绩单")
    private String transcript;

    /** 证书 */
//    @Excel(name = "证书")
    private String certificate;

    /** 证书邮寄状态（0-未上传地址，1-待发货，2-已发货，3-已送达） */
//    @Excel(name = "证书邮寄状态", readConverterExp = "0=未上传地址，1-待发货，2-已发货，3-已送达")
    private Integer certificateStatus;

    /** 填写地址时间 */
//    @Excel(name = "填写地址时间")
    private String writeAt;

    /** 发货时间 */
//    @Excel(name = "发货时间")
    private String consignAt;

    /** 确认收货时间 */
//    @Excel(name = "确认收货时间")
    private String enterAt;

    /** 快递公司代号 */
//    @Excel(name = "快递公司代号")
    private String shippingMark;

    /** 物流名称 */
//    @Excel(name = "物流名称")
    private String shippingName;

    /** 物流单号 */
//    @Excel(name = "物流单号")
    private String shippingCode;

    /** 快递任务ID shipping_task_id */
    private String shippingTaskId;

    /** 快递订单ID shipping_order_id */
    private String shippingOrderId;

    /** 快递查询密钥 shipping_poll_token */
    private String shippingPollToken;

    /** 寄件人姓名 send_man_name */
    private String sendManName;

    /** 寄件人手机号 send_man_mobile */
    private String sendManMobile;

    /** 寄件人地址 sendMan_print_addr */
    private String sendManPrintAddr;

    /** 订单状态 shipping_status（ 0：'下单成功'； 1：'已接单'； 2：'收件中'； 9：'用户主动取消'；10：'已取件'； 11：'揽货失败'；12：'已退回'； 13：'已签收'； 14：'异常签收'；15：'已结算' ；99：'订单已取消'；101：'运输中'；200：'已出单'；201：'出单失败'；610：'下单失败'；155：'修改重量'(注意需要在工单系统中发起异常反馈并由快递100服务人员确认调重后才会有此状态回调，回调内容包含修改重量后的重量、运费、费用明细、业务类型)；166：订单复活（订单被取消，但是实际包裹已经发出，正常计费）；400：派送中） */
    private String shippingStatus;

    /** 课程ID */
    private Long courseId;

    //订单号
    @Excel(name = "订单号")
    private String orderNo;

    //准考证号
    private String zkzh;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    //是否报名
    private String isEnroll;

}
