package com.jay.monitor.data.server.avue.template.monitor;

import com.jay.monitor.data.server.controllers.ServiceTraceController;
import com.ruoyi.client.annotation.AVueConfig;
import com.ruoyi.client.annotation.AVuePage;
import com.ruoyi.client.annotation.AVueRouteKey;
import com.ruoyi.client.annotation.AVueTableOption;
import com.ruoyi.client.annotation.column.*;

import java.util.Date;

/**
 * 业务数据展现模版
 *
 * @author liukaixiong
 * @Email liukx@elab-plus.com
 * @date 2021/8/17 - 13:02
 */
@AVueRouteKey(groupKey = "m-service")
@AVueTableOption(title = "业务监控数据查询", dialogDrag = true, addBtn = false, editBtn = false, delBtn = false)
@AVuePage(pageRoot = "pageModel", pageData = "resultSet")
@AVueConfig(list = ServiceTraceController.LIST_URL, update = ServiceTraceController.UPDATE_URL, save = ServiceTraceController.ADD_URL, del = ServiceTraceController.DEL_URL)
public class ServiceMonitorAVueModel {

    @AVueInput(prop = "id", label = "主键", addDisplay = false, editDisplay = false)
    private String id;

    @AVueDatetime(prop = "date", label = "日期", search = true, searchRequired = true, hide = true, format = "yyyy-MM-dd")
    private Date date = new Date();

    @AVueTime(prop = "rangTime", label = "时间范围", tip = "排序方式默认是按照创建时间倒序需要注意！", search = true, searchRequired = true, hide = true, format = "HH:mm:ss", valueFormat = "HH:mm:ss", searchRange = true)
    private String rangTime;

    @AVueInput(prop = "applicationName", label = "应用名称", search = true, required = true)
    private String applicationName;
    @AVueInput(prop = "ip", label = "应用ip", required = true, row = true, search = true)
    private String ip;
    @AVueInput(prop = "groupName", label = "组名称", required = true, hide = true, search = true)
    private String groupName;
    @AVueInput(prop = "groupKeyName", label = "组的标识", search = true)
    private String groupKeyName;
    @AVueInput(prop = "dataId", label = "组的值", search = true, row = true)
    private String dataId;
    @AVueNumber(prop = "requestTime", label = "请求时长", search = true)
    private Long requestTime;
    @AVueInput(prop = "logId", label = "日志编号")
    private String logId;
    @AVueSelect(prop = "status", label = "状态", dicData = "StatusEnum", search = true, row = true)
    private Integer status;
    @AVueDatetime(prop = "createDate", label = "创建时间", format = "yyyy-MM-dd HH:mm:ss", addDisplay = false, editDisabled = true)
    private Date createDate;
    @AVueTextarea(prop = "jsonContent", label = "请求参数", labelTip = "该数据用于记录请求参数，可基于模糊搜索", hide = true, search = true, minRows = 3)
    private String jsonContent;
}
