Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions RepoSourceConfigEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package com.softsafe.sast.platform.domain.user.model.entity;

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.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.softsafe.sast.platform.domain.model.DeleteBaseEntity;
import com.softsafe.sast.platform.domain.model.enums.OauthSource;
import lombok.*;

import java.io.Serializable;
import java.util.Map;

/**
* 代码仓库集成配置实体类
* 对应表: repo_source_config
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
// autoResultMap = true 是核心,必须开启才能让 @TableField 的 TypeHandler 生效,自动转换 JSONB
@TableName(value = "repo_source_config", autoResultMap = true)
public class RepoSourceConfigEntity extends DeleteBaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
* Postgres 的 GENERATED BY DEFAULT AS IDENTITY 对应 IdType.AUTO
*/
@TableId(type = IdType.AUTO)
private Long id;

/**
* 配置名称(如: 公司GitHub, 私有GitLab)
*/
private String name;

/**
* 类型: GITHUB, GITLAB, GITLAB_SELF_HOSTED
* 建议项目中定义对应的枚举类 RepoSourceTypeEnum
*/
private OauthSource type;

/**
* API地址
*/
private String endpoint;

/**
* 页面访问地址
*/
private String uiUrl;

/**
* Client ID / App ID
*/
private String clientId;

/**
* Client Secret (建议应用层加密后存入)
*/
private String clientSecret;

/**
* 扩展参数 (JSONB)
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private Map<String, Object> extendedParams;

private Integer status;

}
74 changes: 74 additions & 0 deletions UserCredentialEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package com.softsafe.sast.platform.domain.user.model.entity;

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.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.softsafe.sast.platform.domain.model.enums.CredentialTypeEnum;
import com.softsafe.sast.platform.domain.model.enums.CredentialUsageEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Map;

/**
* 用户凭证表实体类
* 对应表名:user_credential
* 用于存储用户的认证凭证(如 OAuth Token、Installation ID、PAT)
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "user_credential", autoResultMap = true)
public class UserCredentialEntity implements Serializable {

private static final long serialVersionUID = 1L;

/**
* 主键 ID
* 对应 SQL: id bigserial primary key
*/
@TableId(type = IdType.AUTO)
private Long id;

/**
* 用户信息表 ID
* 关联 user_info.id
* 对应 SQL: user_info_id bigint not null
*/
private Long userInfoId;

/**
* 凭证类型 (OAUTH_TOKEN, INSTALLATION_ID, PAT)
* 对应 SQL: type varchar(50) not null
*/
@TableField("type")
private CredentialTypeEnum type;


private CredentialUsageEnum userType;

/**
* 认证凭证值 (存 AccessToken 或 InstallId)
* 对应 SQL: credential varchar(1024) not null
*/
private String credential;



private Long repoSourceConfigId;

/**
* 辅助信息 (RefreshToken, ExpiresAt 等 json)
* 对应 SQL: meta_info jsonb
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private Map<String, Object> metaInfo;


}