package com.fs.survey.domain;

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

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import com.fs.live.domain.LiveBroadcast;
import com.fs.live.dto.TaskLiveDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 用药调研对象 drug_research
 *
 * @author fs
 * @date 2026-02-06
 */
@Data
public class DrugResearch
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    private Long companyId;

    private Long doctorId;

    @Excel(name = "公司名称")
    @TableField(exist = false)
    private String companyName;

    @Excel(name = "医生姓名")
    @TableField(exist = false)
    private String doctorName;

    @Excel(name = "表单名称")
    @TableField(exist = false)
    private String formName;

    /** 问卷标题 */
    @Excel(name = "问卷标题")
    private String title;

    /** 问卷说明 */
    @Excel(name = "问卷说明")
    private String description;

    /** 封面图URL */
    @Excel(name = "封面图URL")
    private String coverImage;

    /** 关联公共表单系统的表单ID */
    private Long formId;

    /** 问卷分类（字典值） */
    @Excel(name = "问卷分类", readConverterExp = "字=典值")
    private String category;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 状态：0-草稿 1-已发布 2-已下架 */
    @Excel(name = "状态：0-草稿 1-已发布 2-已下架")
    private Long status;

    /** 排序（越大越靠前） */
    @Excel(name = "排序", readConverterExp = "越=大越靠前")
    private Long sort;

    /** 逻辑删除：0-否 1-是 */
    private Long deleted;

    private Date createTime;

    /** 更新者 */
    private Long updateBy;

    private Long createBy;

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

    @TableField(exist = false)
    @ApiModelProperty(value = "timeStatus == 'before'未开始，timeStatus == 'during'进行中，after已结束")
    private String timeStatus;

    @TableField(exist = false)
    private SurveyQuestionnaireVersion surveyQuestionnaireVersion;


    //问卷分类
    @TableField(exist = false)
    private String surveyQuestionnaireType;

    @TableField(exist = false)
    private TaskLiveDto taskLiveDto;

}
