package com.ruoyi.info.collection.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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

/**
 * 员工亲属关系VO
 *
 * @author ruoyi
 * @date 2026-02-09
 */
@Data
@Schema(description = "员工亲属关系")
public class CcdiStaffFmyRelationVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @Schema(description = "主键ID")
    private Long id;

    /** 员工身份证号 */
    @Schema(description = "员工身份证号")
    private String personId;

    /** 员工姓名 */
    @Schema(description = "员工姓名")
    private String personName;

    /** 关系类型 */
    @Schema(description = "关系类型")
    private String relationType;

    /** 关系人姓名 */
    @Schema(description = "关系人姓名")
    private String relationName;

    /** 性别 */
    @Schema(description = "性别")
    private String gender;

    /** 性别名称 */
    @Schema(description = "性别名称")
    private String genderName;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "出生日期")
    private Date birthDate;

    /** 关系人证件类型 */
    @Schema(description = "关系人证件类型")
    private String relationCertType;

    /** 关系人证件号码 */
    @Schema(description = "关系人证件号码")
    private String relationCertNo;

    /** 手机号码1 */
    @Schema(description = "手机号码1")
    private String mobilePhone1;

    /** 手机号码2 */
    @Schema(description = "手机号码2")
    private String mobilePhone2;

    /** 家庭成员年收入 */
    @Schema(description = "家庭成员年收入（元/年）")
    private BigDecimal annualIncome;

    /** 微信名称1 */
    @Schema(description = "微信名称1")
    private String wechatNo1;

    /** 微信名称2 */
    @Schema(description = "微信名称2")
    private String wechatNo2;

    /** 微信名称3 */
    @Schema(description = "微信名称3")
    private String wechatNo3;

    /** 详细联系地址 */
    @Schema(description = "详细联系地址")
    private String contactAddress;

    /** 关系详细描述 */
    @Schema(description = "关系详细描述")
    private String relationDesc;

    /** 生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "生效日期")
    private Date effectiveDate;

    /** 失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "失效日期")
    private Date invalidDate;

    /** 状态 */
    @Schema(description = "状态")
    private Integer status;

    /** 状态名称 */
    @Schema(description = "状态名称")
    private String statusName;

    /** 备注 */
    @Schema(description = "备注")
    private String remark;

    /** 数据来源 */
    @Schema(description = "数据来源")
    private String dataSource;

    /** 是否是员工亲属 */
    @Schema(description = "是否是员工亲属")
    private Boolean isEmpFamily;

    /** 是否是客户亲属 */
    @Schema(description = "是否是客户亲属")
    private Boolean isCustFamily;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "创建时间")
    private Date createTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新时间")
    private Date updateTime;

    /** 创建人 */
    @Schema(description = "创建人")
    private String createdBy;

    /** 更新人 */
    @Schema(description = "更新人")
    private String updatedBy;

    /** 亲属资产列表 */
    @Schema(description = "亲属资产列表")
    private List<CcdiAssetInfoVO> assetInfoList;
}
