package com.ruoyi.ccdi.domain.dto;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;

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

/**
 * 员工信息编辑 DTO
 *
 * @author ruoyi
 * @date 2026-01-28
 */
@Data
public class CcdiEmployeeEditDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 员工ID */
    @NotNull(message = "员工ID不能为空")
    private Long employeeId;

    /** 姓名 */
    @Size(max = 100, message = "姓名长度不能超过100个字符")
    private String name;

    /** 柜员号 */
    @Size(max = 50, message = "柜员号长度不能超过50个字符")
    private String tellerNo;

    /** 所属部门ID */
    private Long deptId;

    /** 身份证号 */
    @Pattern(regexp = "^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$", message = "身份证号格式不正确")
    private String idCard;

    /** 电话 */
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "电话格式不正确")
    private String phone;

    /** 入职时间 */
    private Date hireDate;

    /** 状态 */
    private String status;

    /** 亲属列表 */
    private List<CcdiEmployeeRelativeAddDTO> relatives;
}
