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.citygis.common.core.domain.BaseEntity;
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 org.springframework.stereotype.Component;

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

/**
 * <p>
 * 接入反馈表
 * </p>
 *
 * @author citygis
 * @since 2025-01-13
 */
@Component
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("TAB_ACCESS_FEEDBACK")
@ApiModel(value = "TabAccessFeedback对象", description = "接入反馈表")
public class TabAccessFeedback extends BaseEntity 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("UPDATE_MODE")
    private String updateMode;

    @ApiModelProperty(value = "资源摘要")
    @TableField("RESOURCE_ABSTRACT")
    private String resourceAbstract;

    @ApiModelProperty(value = "资源来源")
    @TableField("RESOURCE_SOURCE")
    private String resourceSource;

    @ApiModelProperty(value = "格式类型")
    @TableField("FORMAT_TYPE")
    private String formatType;

    @ApiModelProperty(value = "数据资源名称")
    @TableField("DATA_MANE")
    private String dataMane;

    @ApiModelProperty(value = "创建人ID")
    @TableField("USER_ID")
    private Long userId;

    @ApiModelProperty(value = "创建人部门ID")
    @TableField("DEPT_ID")
    private Long deptId;

    @ApiModelProperty(value = "是否删除：0未删除，1删除")
    @TableField("IS_DEL")
    private Integer isDel;

    @ApiModelProperty(value = "是否启用：0未启用，1启用")
    @TableField("IS_APPLY")
    private Integer isApply;

    @ApiModelProperty(value = "状态")
    @TableField("STATE")
    private Integer state;

    @ApiModelProperty(value = "发布日期")
    @TableField("PUBLISH_DATE")
    private String publishDate;

    @ApiModelProperty(value = "批次频率")
    @TableField("BATCH")
    private String batch;

    @ApiModelProperty(value = "接入反馈唯一ID")
    @TableField("ACCESS_ONLY_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long accessOnlyId;

    @ApiModelProperty(value = "数据源上传方名称")
    @TableField("ACCESS_NAME")
    private String accessName;

    @ApiModelProperty(value = "上传方代码")
    @TableField("ACCESS_CODE")
    private String accessCode;

    @ApiModelProperty(value = "上传方地址")
    @TableField("ACCESS_ADDRESS")
    private String accessAddress;

    @ApiModelProperty(value = "上传方时间配置")
    @TableField("ACCESS_TIME_CONFIG")
    private String accessTimeConfig;

    @ApiModelProperty(value = "上传方系统编号")
    @TableField("ACCESS_SYSTEM_CODE")
    private String accessSystemCode;

    @ApiModelProperty(value = "上传方系统名称")
    @TableField("ACCESS_SYSTEM_NAME")
    private String accessSystemName;

    @ApiModelProperty(value = "输出方名称")
    @TableField("OFFER_NAME")
    private String offerName;

    @ApiModelProperty(value = "输出方代码")
    @TableField("OFFER_CODE")
    private String offerCode;

    @ApiModelProperty(value = "输出方时间配置")
    @TableField("OFFER_TIME_CONFIG")
    private String offerTimeConfig;

    @ApiModelProperty(value = "输出方式")
    @TableField("OFFER_TYPE")
    private String offerType;

    @ApiModelProperty(value = "输出方其他")
    @TableField("OFFER_OTHER")
    private String offerOther;

    @ApiModelProperty(value = "输出方系统编号")
    @TableField("OFFER_SYSYTEM_CODE")
    private String offerSysytemCode;

    @ApiModelProperty(value = "输出方系统名称")
    @TableField("OFFER_SYSTEM_NAME")
    private String offerSystemName;

    @ApiModelProperty(value = "状态组")
    @TableField(exist = false)
    private List<Integer> states;

    @ApiModelProperty(value = "标识符")
    @TableField("CODE")
    private String code;


}
