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

import com.hotwj.platform.operationManagement.smsSendDetail.domain.HotSmsSendDetail;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 短信发送明细业务对象 hot_sms_send_detail
 *
 * @author shihongwei
 * @date 2026-04-28
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = HotSmsSendDetail.class, reverseConvertGenerate = false)
public class HotSmsSendDetailBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = {EditGroup.class})
    private Long id;

    /**
     * 公司ID（应用层保证必填）
     */
    private Long companyId;

    /**
     * 企业ID
     */
    private Long enterpriseId;

    /**
     * 企业名称
     */
    private String enterpriseName;

    /**
     * 所属类型（如驾驶员管理）
     */
    private String bizType;

    /**
     * 短信类型
     */
    private String smsType;

    /**
     * 接收人ID
     */
    private Long receiverId;

    /**
     * 姓名
     */
    private String receiverName;

    /**
     * 手机号
     */
    private String mobile;

    /**
     * 岗位/接收人类型
     */
    private String receiverRole;

    /**
     * 通知内容
     */
    private String noticeContent;

    /**
     * 通知时间
     */
    private Date notifyTime;

    /**
     * 通知状态：1=待发送 2=已发送 3=发送失败
     */
    private Long notifyStatus;

    /**
     * 是否收到：0=否 1=是
     */
    private Long isReceived;

    /**
     * 收到时间
     */
    private Date receiveTime;

    /**
     * 发送渠道：1=短信 2=站内信
     */
    private Long sendChannel;

    /**
     * 消耗短信条数
     */
    private Long smsCount;

    /**
     * 计费条数
     */
    private Long billableCount;

    /**
     * 供应商消息ID
     */
    private String providerMsgId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 0=正常, 1=已删除
     */
    private Long isDeleted;


}
