package com.engine.salary.entity.salaryBill.dto;

import com.engine.salary.entity.salaryBill.po.SalarySendPO;
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import com.engine.salary.enums.salarybill.MessageChannelEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import weaver.hrm.User;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 工资单发放信息
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//工资单发放信息
public class SalaryBillSendDTO {

    /**
     * 薪资所属月
     */
    private Date salaryDate;

    //消息标题
    private String title;

    //消息内容
    private String text;

    //工资单预览实体名
    private String entityName;

    //发送通道
    private Set<MessageChannelEnum> sendChannels;

    //发送者
    private User sendUser;

    //工资单模板
    private SalaryTemplatePO salaryTemplate;

    //工资单背景图base64编码
    private String backgroundBase64;

    //云桥工资单消息图
    private String picUrl;

    //扣缴义务人名称
    private String taxAgentName;

    //工资单模板-薪资项目设置
    private List<SalaryTemplateSalaryItemSetListDTO> salaryItemSetList;

    //短信模板
    private SalaryTemplateSMSSetDTO smsSetting;

    //工资单模板-员工基本信息
    private SalaryTemplateSalaryItemSetListDTO employeeInformation;

    //工资单模板-对应人员字段
    private Map<String, String> employeeField;

    //工资单模板-发放说明标签国际化
    private String remarkI18n;

    //邮件是否可以发送邮件
//    private boolean isEnableEmail;

    //工资单发放
    private SalarySendPO salarySend;

    //收入所得项目类型
    private List<String> incomeCategorys;

    //薪资项目收入所得类型
    private Map<String, String> salaryItemIncomeCategoryMap;

    //工资单水印设置
    SalaryBillWatermarkDTO watermarkSetting;

    //邮件水印模板
    private String emailWmContentTemplate;

    //工资单水印文本动态变量
    private List<String> wmTextFieldIds;
}
