package org.dromara.system.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.system.domain.SysEmployee;

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

/**
 * 员工视图对象 sys_employee
 *
 * @author Lion Li
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = SysEmployee.class)
public class SysEmployeeVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 员工ID
     */
    @ExcelProperty(value = "员工ID")
    private Long id;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String name;

    /**
     * 电话
     */
    @ExcelProperty(value = "电话")
    private String phone;

    /**
     * 微信OpenID
     */
    private String wechatOpenid;

    /**
     * 微信UnionID
     */
    private String wechatUnionid;

    /**
     * 授权客户类型（多个逗号分隔）
     */
    @ExcelProperty(value = "授权客户类型")
    private String authClientClass;

    /**
     * 授权加入时间（多个逗号分隔）
     */
    @ExcelProperty(value = "授权加入时间")
    private String authClientEnterDate;

    /**
     * 授权客户ERP RowID（多个逗号分隔）
     */
    private String authClientFRowIDs;

    /**
     * 授权客户名称（多个逗号分隔）
     */
    @ExcelProperty(value = "授权客户名称")
    private String authClientName;

    /**
     * 授权客户详情列表（仅详情接口填充）
     */
    private List<org.dromara.yingpaipay.api.erp.domain.vo.CommonErpClientVo> authClientList;

    /**
     * 头像OSS ID
     */
    @ExcelProperty(value = "头像OSS ID")
    private Long avatar;

    /**
     * 头像URL（通过OSS ID翻译）
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "avatar")
    private String avatarUrl;

    /**
     * 账号状态（0-禁用 1-启用）
     */
    @ExcelProperty(value = "账号状态")
    private String status;

    /**
     * 注册时间
     */
    @ExcelProperty(value = "注册时间")
    private Date createTime;

}
