package org.jeecg.modules.system.app.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Description: nm_courses_verification_record
 * @Author: jeecg-boot
 * @Date: 2025-08-04
 * @Version: V1.0
 */
@Data
@TableName("nm_courses_verification_record")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(description = "课程核销记录")
public class AppCoursesVerificationRecord implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description = "id")
    private String id;

    /**
     * 部门编号
     */
    @Schema(description = "部门编号")
    private String orgCode;

    /**
     * 订单id
     */
    @Excel(name = "订单id", width = 15)
    @Schema(description = "订单id")
    private String orderId;
    /**
     * 订单编号
     */
    @Excel(name = "订单编号", width = 15)
    @Schema(description = "订单编号")
    private String orderCode;
    /**
     * 课程ID
     */
    @Excel(name = "课程ID", width = 15)
    @Schema(description = "课程ID")
    private String coursesId;
    /**
     * 课程小节ID
     */
    @Excel(name = "课程小节ID", width = 15)
    @Schema(description = "课程小节ID")
    private String coursesPriceRuleId;
    /**
     * 课时名称
     */
    @Excel(name = "课时名称", width = 15)
    @Schema(description = "课时名称")
    private String coursesName;
    /**
     * 上课时间
     */
    @Excel(name = "上课时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "上课时间")
    private Date coursesStartTime;

    @Excel(name = "上课时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "上课时间")
    private Date coursesEndTime;
    /**
     * 使用人ID
     */
    @Excel(name = "使用人ID", width = 15)
    @Schema(description = "使用人ID")
    private String useUserId;
    /**
     * 使用人名称
     */
    @Excel(name = "使用人名称", width = 15)
    @Schema(description = "使用人名称")
    private String useUserName;
    /**
     * 使用人手机号
     */
    @Excel(name = "使用人手机号", width = 15)
    @Schema(description = "使用人手机号")
    private String useUserPhone;
    /**
     * 使用人人脸照片
     */
    @Excel(name = "使用人人脸照片", width = 15)
    @Schema(description = "使用人人脸照片")
    private String useUserImage;
    /**
     * 核销状态（0-未核销 1-已核销）
     */
    @Excel(name = "核销状态（0-未核销 1-已核销）", width = 15)
    @Schema(description = "核销状态（0-未核销 1-已核销）")
    private Integer verifyStatus;
    /**
     * 是否延课（0-未延课 1-已延课）
     */
    @Excel(name = "是否延课（0-未延课 1-已延课）", width = 15)
    @Schema(description = "是否延课（0-未延课 1-已延课）")
    private Integer orPostpone;
    /**
     * 是否临时约课（0-否 1-是）
     */
    @Excel(name = "是否临时约课（0-否 1-是）", width = 15)
    @Schema(description = "是否临时约课（0-否 1-是）")
    private Integer orTemporaryCourse;
    /**
     * 延课原因
     */
    @Excel(name = "延课原因", width = 15)
    @Schema(description = "延课原因")
    private String postponeReason;
    /**
     * 核验人ID
     */
    @Excel(name = "核验人ID", width = 15)
    @Schema(description = "核验人ID")
    private String verifyUserId;
    /**
     * 核验人名称
     */
    @Excel(name = "核验人名称", width = 15)
    @Schema(description = "核验人名称")
    private String verifyUserName;
    /**
     * 核验照片
     */
    @Excel(name = "核验照片", width = 15)
    @Schema(description = "核验照片")
    private String verifyImage;
    /**
     * 核验时间
     */
    @Excel(name = "核验时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "核验时间")
    private Date verifyTime;
    /**
     * 课程类型（0-正常课 1-补课）
     */
    @Excel(name = "课程类型（0-正常课 1-补课）", width = 15)
    @Schema(description = "课程类型（0-正常课 1-补课）")
    private Integer coursesType;
    /**
     * 创建人;创建人
     */
    @Schema(description = "创建人;创建人")
    private String createBy;
    /**
     * 创建时间;创建时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间;创建时间")
    private Date createTime;
    /**
     * 更新人;更新人
     */
    @Schema(description = "更新人;更新人")
    private String updateBy;
    /**
     * 更新时间;更新时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新时间;更新时间")
    private Date updateTime;
    /**
     * 系统状态;状态(0-正常,1-冻结)
     */
    @Excel(name = "系统状态;状态(0-正常,1-冻结)", width = 15)
    @Schema(description = "系统状态;状态(0-正常,1-冻结)")
    private Integer status;
    /**
     * 删除标志;删除状态(0-正常,1-已删除)
     */
    @Excel(name = "删除标志;删除状态(0-正常,1-已删除)", width = 15)
    @Schema(description = "删除标志;删除状态(0-正常,1-已删除)")
    @TableLogic
    private Integer delFlag;
}
