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_KAFKA")
@ApiModel(value = "TabKafka对象", description = "KAFKA数据资源信息表")
public class TabKafka 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 = "kafka服务名称")
    @TableField("KAFKA_NAME")
    private String kafkaName;

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

    @ApiModelProperty(value = "六统一topic名称")
    @TableField("SIX_TOPIC_NAME")
    private String sixTopicName;

    @ApiModelProperty(value = "交换角色")
    @TableField("ROLE")
    private String role;

    @ApiModelProperty(value = "接入方ip")
    @TableField("ACCESS_IP")
    private String accessIp;

    @ApiModelProperty(value = "接入方端口")
    @TableField("ACCESS_PORT")
    private String accessPort;

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

    @ApiModelProperty(value = "序列化方式")
    @TableField("SERIALIZATION")
    private String serialization;

    @ApiModelProperty(value = "acks")
    @TableField("ACKS")
    private String acks;

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

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

    @ApiModelProperty(value = "每条数据大小")
    @TableField("COUNT_SIZE")
    private String countSize;

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

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

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

    @ApiModelProperty(value = "消费组")
    @TableField("CONSUMER_GROUP")
    private String consumerGroup;;

    @ApiModelProperty(value = "六统一kafka授权码")
    @TableField("KAFKA_CODE")
    private String kafkaCode;

    @ApiModelProperty(value = "六统一kafka授权编码")
    @TableField("KAFKA_APPLY_CODE")
    private String kafkaApplyCode;

    @ApiModelProperty(value = "数据样例")
    @TableField("DATA_EXAMPLE")
    private String dataExample;

    @ApiModelProperty("kafka子项key")
    @TableField(exist = false)
    private List<TabKafkaSun> tabKafkaKeySuns;

    @ApiModelProperty("kafka子项value")
    @TableField(exist = false)
    private List<TabKafkaSun> tabKafkaValueSuns;

    @ApiModelProperty("kafka子项data")
    @TableField(exist = false)
    private List<TabKafkaSun> tabKafkaDataSuns;

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


}
