package com.xunhong.erp.turbo.api.user.dto.vo;

import cn.monitor4all.logRecord.annotation.LogRecordDiffField;
import cn.monitor4all.logRecord.annotation.LogRecordDiffObject;
import com.alibaba.cola.dto.DTO;
import com.xunhong.erp.turbo.api.rbac.dto.vo.UserRoleVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author shenyifei
 */
@Data
@Schema(title = "员工信息")
@EqualsAndHashCode(callSuper = true)
@LogRecordDiffObject(alias = "员工信息")
public class EmployeeVO extends DTO {

	/**
	 * 员工信息id
	 */
	@Schema(title = "员工信息", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
	private Long employeeId;

	/**
	 * 姓名
	 */
	@Schema(title = "姓名", requiredMode = Schema.RequiredMode.REQUIRED)
	@LogRecordDiffField(alias = "姓名")
	private String name;

	/**
	 * 工号
	 */
	@Schema(title = "工号", requiredMode = Schema.RequiredMode.REQUIRED)
	@LogRecordDiffField(alias = "工号")
	private String number;

	@Schema(title = "头像")
	@LogRecordDiffField(alias = "头像")
	private String avatar;

	/**
	 * 性别
	 */
	@Schema(title = "性别", requiredMode = Schema.RequiredMode.REQUIRED)
	@LogRecordDiffField(alias = "性别")
	private Integer gender;

	/**
	 * 手机号
	 */
	@Schema(title = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
	@LogRecordDiffField(alias = "手机号")
//	@SensitiveStrategyPhone
	private String phone;

	/**
	 * 备注
	 */
	@Schema(title = "备注")
	@LogRecordDiffField(alias = "备注")
	private String remark;

	/**
	 * 状态
	 */
	@Schema(title = "状态")
	@LogRecordDiffField(alias = "状态")
	private Boolean status;

	/**
	 * 创建时间
	 */
	@Schema(title = "创建时间")
	private LocalDateTime createdAt;

	/**
	 * 用户ID
	 */
	@Schema(title = "用户ID", type = "string", requiredMode = Schema.RequiredMode.REQUIRED)
	private Long userId;

	@Schema(title = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED)
	private List<Long> roleIdList;

	@Schema(title = "角色信息")
	private List<UserRoleVO> userRoleList;
}
