package com.yifu.cloud.plus.v1.batch.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.batch.vo.TaskAttachmentGroupVO;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import java.util.List;

/**
 * 电子档案明细表
 *
 * @author huych
 * @date 2025-12-17 11:03:37
 */
@Data
@TableName("t_electronic_archive_detail")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "电子档案明细表")
public class TElectronicArchiveDetail extends BaseEntity {

	/**
	 * 主键
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@ExcelProperty("主键")
	@Schema(description = "主键")
	private String id;

	/**
	 * 姓名
	 */
	@ExcelAttribute(name = "姓名", maxLength = 32)
	@ExcelProperty("姓名")
	@Schema(description = "姓名")
	private String empName;

	/**
	 * 身份证号码
	 */
	@ExcelAttribute(name = "身份证号码")
	@ExcelProperty("身份证号码")
	@Schema(description = "身份证号码")
	private String empIdcard;

	/**
	 * 项目编码
	 */
	@ExcelAttribute(name = "项目编码")
	@ExcelProperty("项目编码")
	@Schema(description = "项目编码")
	private String deptNo;

	/**
	 * 项目ID
	 */
	@ExcelAttribute(name = "项目ID")
	@ExcelProperty("项目ID")
	@Schema(description = "项目ID")
	private String deptId;

	/**
	 * 项目名称
	 */
	@ExcelAttribute(name = "项目名称")
	@ExcelProperty("项目名称")
	@Schema(description = "项目名称")
	private String deptName;

	/**
	 * 客户名称
	 */
	@ExcelAttribute(name = "客户名称")
	@ExcelProperty("客户名称")
	@Schema(description = "客户名称")
	private String customerName;

	/**
	 * 客户编码
	 */
	@ExcelAttribute(name = "客户编码")
	@ExcelProperty("客户编码")
	@Schema(description = "客户编码")
	private String customerCode;

	/**
	 * 资料类型（存量、新签、续签、减员，多个用逗号分隔）
	 */
	@ExcelAttribute(name = "资料类型")
	@ExcelProperty("资料类型")
	@Schema(description = "资料类型 存量、新签、续签、减员，多个用逗号分隔）")
	private String materialType;

	/**
	 * 档案所在地-省
	 */
	@ExcelAttribute(name = "档案所在地-省")
	@ExcelProperty("档案所在地-省")
	@Schema(description = "档案所在地-省")
	private Integer fileProvince;

	/**
	 * 档案所在地
	 */
	@ExcelAttribute(name = "档案所在地")
	@ExcelProperty("档案所在地")
	@Schema(description = "档案所在地")
	private String fileAddress;

	/**
	 * 档案所在地-市
	 */
	@ExcelAttribute(name = "档案所在地-市")
	@ExcelProperty("档案所在地-市")
	@Schema(description = "档案所在地-市")
	private Integer fileCity;

	/**
	 * 档案所在地-县
	 */
	@ExcelAttribute(name = "档案所在地-县")
	@ExcelProperty("档案所在地-县")
	@Schema(description = "档案所在地-县")
	private Integer fileTown;

	/**
	 * 状态（0不可用，1可用）
	 */
	@ExcelAttribute(name = "状态")
	@ExcelProperty("状态")
	@Schema(description = "状态（0不可用，1可用）")
	private String status;

	/**
	 * 是否删除 0否/1是
	 */
	@ExcelAttribute(name = "是否删除 0否/1是", maxLength = 1)
	@Length(max = 1, message = "是否删除 0否/1是不能超过1个字符")
	@ExcelProperty("是否删除 0否/1是")
	@Schema(description = "是否删除 0否/1是")
	private String deleteFlag;

	/**
	 * 附件Id
	 */
	@TableField(exist = false)
	private List<String> attaIdList;

	/**
	 * 印章附件
	 */
	@TableField(exist = false)
	private List<TAttaInfo> attaInfoList;
	
	/**
	 * 按任务分组的附件列表
	 */
	@TableField(exist = false)
	private List<TaskAttachmentGroupVO> taskAttachmentGroups;
}
