package org.dromara.resource.domain.bo;

import org.dromara.resource.domain.SysSms;
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;

/**
 * 短信业务对象 sys_sms
 *
 * @author sunzexing
 * @date 2024-03-27
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysSms.class, reverseConvertGenerate = false)
public class SysSmsBo extends BaseEntity {

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

    /**
     * 短信类型  1 登录验证码  2 支付验证码  3 其它
     */
    @NotNull(message = "短信类型  1 登录验证码  2 支付验证码  3 其它不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer iType;

    /**
     * 发送人姓名
     */
    @NotBlank(message = "发送人姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vUserName;

    /**
     * 发送人ID
     */
    @NotNull(message = "发送人ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long iUserId;

    /**
     * 发送手机号
     */
    @NotBlank(message = "发送手机号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vPhone;

    /**
     * 验证码
     */
    @NotBlank(message = "验证码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vVerCode;

    /**
     * 模版id
     */
    @NotBlank(message = "模版id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vTempId;

    /**
     * 发送内容
     */
    @NotBlank(message = "发送内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vSendContent;

    /**
     * 发送时间
     */
    @NotNull(message = "发送时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date dtmSendTime;

    /**
     * 过期时间
     */
    @NotNull(message = "过期时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date dtmExpirTime;

    /**
     * 是否使用 1 是 0 否
     */
    @NotNull(message = "是否使用 1 是 0 否不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isUse;

    /**
     * 状态 0 未发送  1 成功  2失败
     */
    @NotNull(message = "状态 0 未发送  1 成功  2失败不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer iStatus;


}
