package com.ningdatech.pmapi.meeting.entity.req;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

import com.ningdatech.pmapi.meeting.entity.enumeration.ExpertJudgeEnum;
import org.hibernate.validator.constraints.Range;

/**
 * <p>
 * MeetingExpertJudgeReq
 * </p>
 *
 * @author WendyYang
 * @since 2023/7/31
 **/
@Data
public class MeetingExpertJudgeReq {

    private Long id;

    @NotNull(message = "会议ID不能为空", groups = Basic.class)
    private Long meetingId;

    @NotNull(message = "会议专家ID不能为空", groups = Basic.class)
    private Long meetingExpertId;

    @ApiModelProperty("评分（1~10）")
    @NotNull(message = "评分不能为空", groups = Basic.class)
    @Range(min = 1, max = 10, message = "评分范围为：1~10")
    private Integer score;

    /**
     * @see ExpertJudgeEnum.AttendStatus
     */
    @ApiModelProperty("是否参加：1 准时、2 迟到、3 缺席")
    @NotNull(message = "是否参加不能为空", groups = Basic.class)
    private Integer attended;

    /**
     * @see ExpertJudgeEnum.Performance
     */
    @ApiModelProperty("参与程度：1 积极、2 消极")
    @NotNull(message = "参与度不能为空", groups = Attend.class)
    private Integer performance;

    @ApiModelProperty("是否提出建议：true 是、false 否")
    @NotNull(message = "是否提出建议不能为空", groups = Attend.class)
    private Boolean advised;

    @ApiModelProperty("是否早退：true 早退、false 未早退")
    @NotNull(message = "是否早退不能为空", groups = Attend.class)
    private Boolean leaveEarly;

    @ApiModelProperty("是否违规：true 是、false 否")
    @NotNull(message = "是否违规不能为空", groups = Attend.class)
    private Boolean brokeRule;

    @ApiModelProperty("违规内容")
    private String brokeRuleContent;

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createOn;

    //==================================================================================================================

    public interface Attend {
    }

    public interface Basic {
    }

}
