package com.hotwj.platform.operationManagement.smsSendDetail.domain.vo;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hotwj.platform.operationManagement.smsSendDetail.domain.HotSmsSendDetail;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

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


/**
 * 短信发送明细视图对象 hot_sms_send_detail
 *
 * @author shihongwei
 * @date 2026-04-28
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HotSmsSendDetail.class)
public class HotSmsSendDetailVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

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

    /**
     * 公司ID（应用层保证必填）
     */
    @ExcelProperty(value = "公司ID", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "应=用层保证必填")
    private Long companyId;

    /**
     * 企业ID
     */
    @ExcelProperty(value = "企业ID")
    private Long enterpriseId;

    /**
     * 企业名称
     */
    @ExcelProperty(value = "企业名称")
    private String enterpriseName;

    /**
     * 所属类型（如驾驶员管理）
     */
    @ExcelProperty(value = "所属类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "如=驾驶员管理")
    private String bizType;

    /**
     * 短信类型
     */
    @ExcelProperty(value = "短信类型")
    private String smsType;

    /**
     * 接收人ID
     */
    @ExcelProperty(value = "接收人ID")
    private Long receiverId;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String receiverName;

    /**
     * 手机号
     */
    @ExcelProperty(value = "手机号")
    private String mobile;

    /**
     * 岗位/接收人类型
     */
    @ExcelProperty(value = "岗位/接收人类型")
    private String receiverRole;

    /**
     * 通知内容
     */
    @ExcelProperty(value = "通知内容")
    private String noticeContent;

    /**
     * 通知时间
     */
    @ExcelProperty(value = "通知时间")
    private Date notifyTime;

    /**
     * 通知状态：1=待发送 2=已发送 3=发送失败
     */
    @ExcelProperty(value = "通知状态：1=待发送 2=已发送 3=发送失败")
    private Long notifyStatus;

    /**
     * 是否收到：0=否 1=是
     */
    @ExcelProperty(value = "是否收到：0=否 1=是")
    private Long isReceived;

    /**
     * 收到时间
     */
    @ExcelProperty(value = "收到时间")
    private Date receiveTime;

    /**
     * 发送渠道：1=短信 2=站内信
     */
    @ExcelProperty(value = "发送渠道：1=短信 2=站内信")
    private Long sendChannel;

    /**
     * 消耗短信条数
     */
    @ExcelProperty(value = "消耗短信条数")
    private Long smsCount;

    /**
     * 计费条数
     */
    @ExcelProperty(value = "计费条数")
    private Long billableCount;

    /**
     * 供应商消息ID
     */
    @ExcelProperty(value = "供应商消息ID")
    private String providerMsgId;

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

    /**
     * 创建者姓名
     */
    @ExcelProperty(value = "创建者姓名")
    private String createByName;

    /**
     * 更新者姓名
     */
    @ExcelProperty(value = "更新者姓名")
    private String updateByName;

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


}
