package com.hotwj.platform.securityManagement.securityMeeting.domain.vo;

import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.hotwj.platform.securityManagement.securityMeeting.domain.HotSecurityMeeting;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;


/**
 * 安全会议管理视图对象 hot_security_meeting
 *
 * @author shihongwei
 * @date 2025-12-17
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotSecurityMeeting.class)
public class HotSecurityMeetingVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 公司ID
     */
    @ExcelProperty(value = "公司ID")
    private Long companyId;

    /**
     * 会议主题
     */
    @ExcelProperty(value = "会议主题")
    private String meetingTopic;

    /**
     * 会议种类（字典）
     */
    @ExcelProperty(value = "会议种类", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典")
    private String meetingCategory;

    /**
     * 会议类型（字典）
     */
    @ExcelProperty(value = "会议类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "字=典")
    private String meetingType;

    /**
     * 会议类型（线下培训）
     */
    private String offlineMeetingType;

    /**
     * 会议开始时间
     */
    @ExcelProperty(value = "会议开始时间")
    private Date startTime;

    /**
     * 会议结束时间
     */
    private Date endTime;

    /**
     * 主持人
     */
    @ExcelProperty(value = "主持人")
    private String hostName;

    /**
     * 地点
     */
    @ExcelProperty(value = "地点")
    private String location;

    /**
     * 会议记录人id
     */
    @ExcelProperty(value = "会议记录人id")
    private Long recorderId;

    /**
     * 会议记录人
     */
    @ExcelProperty(value = "会议记录人")
    private String recorderName;

    /**
     * 会议附件（docx、pdf、pptx等，OSS附件id）
     */
    @ExcelProperty(value = "会议附件", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "d=ocx、pdf、pptx等，OSS附件id")
    private String fileAttachments;

    /**
     * 视频附件（mp4，OSS附件id）
     */
    @ExcelProperty(value = "视频附件", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "m=p4，OSS附件id")
    private String videoAttachments;

    /**
     * 线上会议链接
     */
    @ExcelProperty(value = "线上会议链接")
    private String onlineMeetingUrl;

    /**
     * 会议内容
     */
    @ExcelProperty(value = "会议内容")
    private String meetingContent;

    /**
     * 会议照片（png,jpg,pdf等，JSON或逗号分隔）
     */
    @ExcelProperty(value = "会议照片", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "p=ng,jpg,pdf等，JSON或逗号分隔")
    private String photoAttachments;

    /**
     * 下月工作安排
     */
    @ExcelProperty(value = "下月工作安排")
    private String nextMonthPlan;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 会议状态（1=未开始、2=进行中、3=已结束）
     */
    @ExcelProperty(value = "会议状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1==未开始、2=进行中、3=已结束")
    private String meetingStatus;

    /**
     * 参与人员ID列表（逗号分隔）
     */
    @ExcelProperty(value = "参与人员ID列表", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "逗=号分隔")
    private String participantIds;

    /**
     * 0=正常, 1=已删除
     */
    @ExcelProperty(value = "0=正常, 1=已删除")
    private Long isDeleted;


}
