package com.fs.hisStore.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 用户信息采集视图对象 - 用于连表查询结果
 *
 * @author fs
 * @date 2026-04-03
 */
@Data
public class FsUserInformationCollectionOverviewVo {
    /** 主键ID */
    private Long id;

    /** 用户id */
    private Long userId;

    /** 信息采集json数据 */
    private String jsonInfo;

    /** 医生id */
    private Long doctorId;

    /** 销售id */
    private Long companyUserId;

    /** 问题模板id*/
    private Long questionId;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String userName;

    /** 用户性别 0女 1男 */
    @Excel(name = "用户性别", readConverterExp = "0=女,1=男")
    private Long sex;

    /** 用户年龄 */
    @Excel(name = "用户年龄")
    private Integer age;

    /** 用户电话后四位 */
    @Excel(name = "电话尾号")
    private String userPhoneFour;

    /** 是否过敏 */
    @Excel(name = "是否过敏")
    private String allergy;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    // ======== 关联表字段 ========
    /** 医生姓名 */
    @Excel(name = "医生姓名")
    private String doctorName;

    /** 药师Id */
    private String pharmacistId;

    /** 药师姓名 */
    @Excel(name = "药师姓名")
    private String pharmacistName;

    /** 销售人员姓名 */
    @Excel(name = "销售人员姓名")
    private String companyUserName;

    /** 创建时间 */
    @Excel(name = "创建时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 处方图片 - 用于导出显示 */
    @Excel(name = "处方图片URL")
    private String prescribeImgUrlString;

    /*
    *套餐包名称
    * */
    private String packageName;

    /**
     * 订单号
     */
    private String packageOrderCode;

    /**
     * 信息采集标识 0-企微信息采集 1-个微信息采集
     */
    private Integer qwTag;

    /**
     * 个微信息采集状态
     * */
    private Integer personalCollectStatus;

    /**
     * 处方id
     * */
    private Long prescribeId;

    // 原始的List字段，用于内部处理
    private List<String> prescribeImgUrlList;

    /**
     * 获取处方图片URL字符串（用于Excel导出）
     */
    public String getPrescribeImgUrlString() {
        if (prescribeImgUrlList != null && !prescribeImgUrlList.isEmpty()) {
            return String.join(",", prescribeImgUrlList);
        }
        return prescribeImgUrlString != null ? prescribeImgUrlString : "";
    }

    /**
     * 设置处方图片URL列表（同时设置字符串形式）
     */
    public void setPrescribeImgUrl(List<String> prescribeImgUrlList) {
        this.prescribeImgUrlList = prescribeImgUrlList;
        // 同时更新字符串形式
        if (prescribeImgUrlList != null && !prescribeImgUrlList.isEmpty()) {
            this.prescribeImgUrlString = String.join(",", prescribeImgUrlList);
        } else {
            this.prescribeImgUrlString = "";
        }
    }

    /**
     * 获取处方图片URL列表（内部使用）
     */
    public List<String> getPrescribeImgUrlList() {
        return prescribeImgUrlList;
    }
}