package com.zcloud.basic.info.dto;

import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * web-client
 *
 * @Author zhangyue
 * @Date 2025-11-04 14:07:12
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppUserInfoCmd extends Command {

    @ApiModelProperty(value = "主键id", name = "id", required = true)
    @NotNull(message = "主键id不能为空")
    private Long id;


    @ApiModelProperty(value = "人脸照片url", name = "userAvatarUrl", required = true)
    @NotEmpty(message = "人脸照片url不能为空")
    private String userAvatarUrl;

    @ApiModelProperty(value = "姓名", name = "name", required = true)
    @NotEmpty(message = "姓名不能为空")
    private String name;

    @ApiModelProperty(value = "身份证号", name = "userIdCard")
//    @NotEmpty(message = "身份证号不能为空")
    private String userIdCard;

    @ApiModelProperty(value = "民族编码", name = "nation", required = true)
    @NotEmpty(message = "民族编码不能为空")
    private String nation;

    @ApiModelProperty(value = "民族名称", name = "nationName", required = true)
    @NotEmpty(message = "民族名称不能为空")
    private String nationName;

    @ApiModelProperty(value = "现住址", name = "currentAddress", required = true)
    private String currentAddress;

    @ApiModelProperty(value = "户口所在地", name = "locationAddress", required = true)
    private String locationAddress;

    @ApiModelProperty(value = "文化程度 数据字典", name = "culturalLevel", required = true)
    @NotEmpty(message = "文化程度 数据字典不能为空")
    private String culturalLevel;

    @ApiModelProperty(value = "文化程度名称", name = "culturalLevelName", required = true)
    @NotEmpty(message = "文化程度名称不能为空")
    private String culturalLevelName;

    @ApiModelProperty(value = "政治面貌", name = "politicalAffiliation", required = true)
    @NotEmpty(message = "政治面貌不能为空")
    private String politicalAffiliation;

    @ApiModelProperty(value = "政治面貌名称", name = "politicalAffiliationName", required = true)
    @NotEmpty(message = "政治面貌名称不能为空")
    private String politicalAffiliationName;

    @ApiModelProperty(value = "婚姻状态", name = "maritalStatus", required = true)
    private String maritalStatus;

    @ApiModelProperty(value = "婚姻状态名称", name = "maritalStatusName", required = true)
    private String maritalStatusName;

    @ApiModelProperty(value = "是否流动人员，1-流动，0-固定人员", required = true)
    @NotNull(message = "是否流动人员，1-流动，0-固定人员不能为空")
    private Integer flowFlag;

    @ApiModelProperty(value = "邮箱", name = "email")
    private String email;

}

