package com.ruoyi.ss.mchApply.domain;

import com.fasterxml.jackson.annotation.JsonView;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.JsonViewProfile;
import com.ruoyi.common.core.domain.ValidGroup;
import com.ruoyi.common.utils.RegexpUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;

/**
 * 商家合作申请对象 ss_mch_apply
 *
 * @author ruoyi
 * @date 2024-04-28
 */
@Data
public class MchApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 申请id */
    @ApiModelProperty("申请id")
    @JsonView(JsonViewProfile.App.class)
    @NotNull(message = "申请id不允许为空", groups = {ValidGroup.Update.class})
    private Long applyId;

    /** 用户id */
    @ApiModelProperty("用户id")
    @Excel(name = "用户id")
    @JsonView(JsonViewProfile.App.class)
    private Long userId;

    /** 申请状态（0：审核中，1：审核通过，2：已驳回） */
    @ApiModelProperty("申请状态（0：审核中，1：审核通过，2：已驳回）")
    @Excel(name = "申请状态", readConverterExp = "0=：审核中，1：审核通过，2：已驳回")
    @JsonView(JsonViewProfile.App.class)
    private String status;

    /** 姓名 */
    @Excel(name = "姓名")
    @ApiModelProperty("姓名")
    @JsonView(JsonViewProfile.App.class)
    @NotNull(message = "姓名不允许为空", groups = {ValidGroup.FrontCreate.class})
    @Size(min = 1, max = 20, message = "姓名长度必须在1~60之间")
    private String name;

    /** 手机号 */
    @ApiModelProperty("手机号，11位，必须符合格式要求")
    @Excel(name = "手机号")
    @JsonView(JsonViewProfile.App.class)
    @NotNull(message = "手机号不允许为空", groups = {ValidGroup.FrontCreate.class})
    @Size(min = 11, max = 11, message = "手机号只能为11位")
    @Pattern(regexp = RegexpUtils.MOBILE_PHONE_REGEXP, message = "手机号格式有误")
    private String mobile;

    /** 详细信息 */
    @ApiModelProperty("详细信息，不超过1000字")
    @Excel(name = "详细信息")
    @JsonView(JsonViewProfile.App.class)
    @NotNull(message = "详细信息不允许为空", groups = {ValidGroup.FrontCreate.class})
    @Size(min = 1, max = 1000, message = "详细信息长度必须在1~1000之间")
    private String content;

    /** 反馈信息（对外） */
    @ApiModelProperty("反馈信息")
    @Excel(name = "反馈信息")
    @JsonView(JsonViewProfile.App.class)
    private String callback;

    /** 审核人id */
    @ApiModelProperty("审核人id")
    @Excel(name = "审核人id")
    @JsonView(JsonViewProfile.App.class)
    private Long verifyBy;

    /** 审核时间 */
    @ApiModelProperty("审核时间")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonView(JsonViewProfile.App.class)
    private LocalDateTime verifyTime;

    /** 审核意见 */
    @ApiModelProperty("审核意见")
    @Excel(name = "审核意见")
    @JsonView(JsonViewProfile.App.class)
    private String verifyRemark;
}
