package cn.cecep.talroad.vo;

import cn.cecep.talroad.common.core.domain.query.PageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

@ApiModel(value = "系统使用反馈vo")
@EqualsAndHashCode(callSuper = false)
@Data
public class BMainSysFeedbackVo {
    private String id;

    @ApiModelProperty(value = "反馈类型 1:系统问题, 2:功能建议")
    private String type;

    @ApiModelProperty(value = "反馈内容")
    private String content;

    @ApiModelProperty(value = "反馈人")
    private String feedbackUser;

    @ApiModelProperty(value = "联系电话")
    private String phone;

    @ApiModelProperty(value = "附件列表")
    private List<BMainFileVo.FormVo> files;

    @ApiModelProperty(value = "反馈状态 1:未读, 2:已读")
    private String status;

    @ApiModelProperty(value = "创建人")
    private String createByName;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModel(value = "系统使用反馈列表搜索条件vo")
    @Data
    public static class SearchVo extends PageQuery {
        @ApiModelProperty(value = "反馈类型 1:系统问题, 2:功能建议")
        private String type;

        @ApiModelProperty(value = "反馈内容")
        private String content;

        @ApiModelProperty(value = "反馈状态 1:未读, 2:已读")
        private String status;
    }

    @ApiModel(value = "系统使用反馈新增表单")
    @Data
    public static class AddForm {
        @NotBlank(message = "反馈类型不能为空")
        @ApiModelProperty(value = "反馈类型 1:系统问题, 2:功能建议")
        private String type;

        @NotBlank(message = "反馈内容不能为空")
        @ApiModelProperty(value = "反馈内容")
        private String content;

        @NotBlank(message = "反馈人不能为空")
        @ApiModelProperty(value = "反馈人")
        private String feedbackUser;

        @NotBlank(message = "联系电话不能为空")
        @ApiModelProperty(value = "联系电话")
        private String phone;

        @ApiModelProperty(value = "附件列表")
        private List<BMainFileVo.FormVo> files;
    }

}
