package com.zhentao.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 红娘上传成功案例实体类
 */
@Data
@TableName("matchmaker_success_case_upload")
public class MatchmakerSuccessCaseUpload implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 撮合红娘ID
     */
    private Integer matchmakerId;

    /**
     * 男方用户ID
     */
    private Integer maleUserId;

    /**
     * 女方用户ID
     */
    private Integer femaleUserId;

    /**
     * 男方真实姓名
     */
    private String maleRealName;

    /**
     * 女方真实姓名
     */
    private String femaleRealName;

    /**
     * 成功凭证图片路径（JSON数组格式）
     */
    private String proofImages;

    /**
     * 案例类型：1-订婚 2-领证结婚
     */
    private Integer caseType;

    /**
     * 成功日期（结婚日期/订婚日期）
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate caseDate;

    /**
     * 审核状态：0-待审核 1-审核通过 2-审核失败 3-核实中
     */
    private Integer auditStatus;

    /**
     * 审核备注（失败原因）
     */
    private String auditRemark;

    /**
     * 审核人ID（管理员）
     */
    private Integer auditorId;

    /**
     * 积分奖励
     */
    private Integer pointsReward;

    /**
     * 现金奖励
     */
    private BigDecimal cashReward;

    /**
     * 奖励状态：0-未发放 1-已发放
     */
    private Integer rewardStatus;

    /**
     * 是否发布到成功案例展示：0-否 1-是
     */
    private Integer isPublished;

    /**
     * 关联的成功案例ID
     */
    private Integer publishedCaseId;

    /**
     * 是否已读：0-未读 1-已读
     */
    private Integer isRead;

    /**
     * 上传时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditedAt;
}
