package com.fs.statis.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;

@Data
public class StatsWatchLogPageListDTO implements Serializable {

    /**
     * 员工列表
     */
    private List<String> userIds;

    public List<String> getUserIds() {
        if (userIds == null || userIds.isEmpty()) {
            return userIds;
        }

        return userIds.stream()
                .map(id -> {
                    if (id == null) {
                        return null;
                    }
                    // 去除前缀
                    if (id.startsWith("dept_")) {
                        return id.substring(5);
                    } else if (id.startsWith("company_")) {
                        return id.substring(8);
                    } else if (id.startsWith("user_")) {
                        return id.substring(5);
                    }
                    return id;
                })
                .collect(Collectors.toList());
    }

    /**
     * 开始时间
     */
    private String startDate;
    /**
     * 结束世界
     */
    private String endDate;

    /**
     * 营期列表
     */
    private List<String> periodList;

    private Integer pageNum;
    private Integer pageSize;

    /**
     * 不包含空值
     */
    private Boolean excludeNull;

    /**
     * 包含未发课数
     */
    private Boolean includeSend0;

    /**
     * 归属项目（字典 sys_course_project）
     */
    private Long project;

    /**
     * 课程区间起始序号（1-based，项目下按 sort 排序后的第 N 门课）
     */
    private Integer courseStart;

    /**
     * 课程区间结束序号（1-based，含边界）
     */
    private Integer courseEnd;

    /**
     * 解析后的课程 ID 列表（Service 下推 Mapper，前端无需传）
     */
    private List<Long> courseIds;

}
