package com.citygis.web.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * KAFKA数据资源信息表
 * </p>
 *
 * @author citygis
 * @since 2025-01-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("TAB_URL")
@ApiModel(value = "TabUrl对象", description = "KAFKA数据资源信息表")
public class TabUrl implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableField("ID")
    @TableId(value = "ID", type = IdType.ASSIGN_ID)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @ApiModelProperty(value = "接口服务名称")
    @TableField("API_NAME")
    private String apiName;

    @ApiModelProperty(value = "应用场景")
    @TableField("SCENARIO")
    private String scenario;

    @ApiModelProperty(value = "接口调用方")
    @TableField("ACCESS")
    private String access;

    @ApiModelProperty(value = "接口调用方URL地址")
    @TableField("ACCESS_URL")
    private String accessUrl;

    @ApiModelProperty(value = "支持格式")
    @TableField("FORMAT")
    private String format;

    @ApiModelProperty(value = "调用频率")
    @TableField("APPLY_COUNT")
    private String applyCount;

    @ApiModelProperty(value = "每频率内条数")
    @TableField("COUNT_NUM")
    private String countNum;

    @ApiModelProperty(value = "调用间隔说明")
    @TableField("COUNT_DETAIL")
    private String countDetail;

    @ApiModelProperty(value = "联调数据量")
    @TableField("NUM")
    private String num;

    @ApiModelProperty(value = "联调实施步骤")
    @TableField("STEPS")
    private String steps;

    @ApiModelProperty(value = "网络策略确认")
    @TableField("INTERNET")
    private String internet;

    @ApiModelProperty(value = "响应示例")
    @TableField("RESPONSE_EXAMPLE")
    private String responseExample;

    @ApiModelProperty(value = "请求示例")
    @TableField("REQUEST_EXAMPLE")
    private String requestExample;

    @ApiModelProperty(value = "接入反馈表唯一id")
    @TableField("ACCESS_FEEDBACK_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long accessFeedbackId;

    @ApiModelProperty(value = "英文名")
    @TableField("API_ENGLISH_NAME")
    private String apiEnglishName;

    @ApiModelProperty(value = "接口描述")
    @TableField("API_DETAIL")
    private String apiDetail;

    @ApiModelProperty(value = "接口提供方")
    @TableField("OFFER")
    private String offer;

    @ApiModelProperty(value = "接口提供方地址")
    @TableField("OFFER_URL")
    private String offerUrl;

    @ApiModelProperty(value = "六统一URL")
    @TableField("SIX_URL")
    private String sixUrl;

    @ApiModelProperty(value = "调用方向")
    @TableField("DIRECTION")
    private String direction;

    @ApiModelProperty(value = "请求方式")
    @TableField("REQUEST_METHOD")
    private String requestMethod;

    @ApiModelProperty(value = "header")
    @TableField(exist = false)
    private List<TabUrlSun> tabEtlHeaderSuns;

    @ApiModelProperty(value = "body")
    @TableField(exist = false)
    private List<TabUrlSun> tabEtlBodySuns;

    @ApiModelProperty(value = "query")
    @TableField(exist = false)
    private List<TabUrlSun> tabEtlQuerySuns;

    @ApiModelProperty(value = "response")
    @TableField(exist = false)
    private List<TabUrlSun> tabEtlResponseSuns;

    @ApiModelProperty(value = "data")
    @TableField(exist = false)
    private List<TabUrlSun> tabEtlDataSuns;

}
