package com.ruoyi.clock.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 打卡记录信息业务对象 tb_clock_record
 *
 * @author pengc
 * @date 2026-03-04
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("打卡记录信息业务对象")
public class ClockRecordBo extends BaseEntity {

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id", required = true)
    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
    private Long recordId;

    /**
     * 活动id
     */
    @ApiModelProperty(value = "活动id", required = true)
    @NotNull(message = "活动id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long activityId;

    /**
     * 员工id
     */
    @ApiModelProperty(value = "员工id", required = true)
    //@NotNull(message = "员工id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long employeeId;

    /**
     * 打卡日期
     */
    @ApiModelProperty(value = "打卡日期", required = true)
    //@NotNull(message = "打卡日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date clockDate;

    /**
     * 截图
     */
    @ApiModelProperty(value = "截图", required = true)
    @NotBlank(message = "截图不能为空", groups = { AddGroup.class, EditGroup.class })
    private String screenshot;

    /**
     * 状态 0正常 1失效
     */
    @ApiModelProperty(value = "状态 0正常 1失效", required = true)
    //@NotNull(message = "状态 0正常 1失效不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer status;

    /**
     * 销量打卡产品列表（销量打卡时必填）
     */
    @ApiModelProperty(value = "销量打卡产品列表（销量打卡时必填）")
    private List<ClockProductRecordBo> productList;

}
