package com.sundot.airport.common.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sundot.airport.common.annotation.Excel;
import lombok.Data;
import org.apache.commons.compress.utils.Lists;

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

/**
 * 考勤记录返回参数
 *
 * @Author: wangchong
 * @Date: 2025/7/15 16:12
 **/
@Data
public class AttendanceRecordRep implements Serializable {
    private static final long serialVersionUID = -2255527317386304376L;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 签到时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkInTime;

    /**
     * 签退时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkOutTime;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 备注
     */
    private String remark;

    /**
     * 考勤日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date attendanceDate;

    private List<RecordItem> items = Lists.newArrayList();

    @Data
    public static class RecordItem {

        /**
         * 打卡类型
         */
        private String checkInType;

        /**
         * 打卡时间
         */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date checkInTime;

        /**
         * 打卡位置
         */
        private String checkInPosition;

        /**
         * 备注
         */
        @Excel(name = "备注", sort = 4)
        private String remark;

        /**
         * 打卡日期
         */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date checkInDate;
    }
}
