diff --git a/.gitignore b/.gitignore
index c67a6e18..6cef1340 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+.DS_Store
.idea
.vscode
!*.example
@@ -7,3 +8,4 @@ paopao-ce*
/release
/data
/custom
+/.custom
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..709d4457
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,56 @@
+# Changelog
+
+All notable changes to paopao-ce are documented in this file.
+
+## 0.3.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev))
+
+## 0.2.3
+
+### Added
+
+- add PostgreSQL DDL file [#229](https://github.com/rocboss/paopao-ce/pull/229)
+
+### Changed
+
+- optimize MySQL DDL file [#229](https://github.com/rocboss/paopao-ce/pull/229)
+- optimize Sqlite3 DDL file [#229](https://github.com/rocboss/paopao-ce/pull/229)
+
+## 0.2.2
+
+### Fixed
+
+- fixed add star to tweet error [#222](https://github.com/rocboss/paopao-ce/pull/222)
+
+## 0.2.1
+
+### Changed
+
+- optimize docker-compose.yaml use bitbus/paopao-ce:latest as release image [#217](https://github.com/rocboss/paopao-ce/pull/217)
+
+### Fixed
+
+- fixed sql ddl in scripts/paopao-mysql.sql and scripts/paopao-sqlite3.sql [#217](https://github.com/rocboss/paopao-ce/pull/217)
+
+## 0.2.0
+
+### Added
+
+- add `Friendship` feature [#192](https://github.com/rocboss/paopao-ce/pull/192)
+- add `Lightship` feature [#198](https://github.com/rocboss/paopao-ce/pull/198)
+- add `Pyroscope` feature [#199](https://github.com/rocboss/paopao-ce/pull/199)
+- add new `Web` service [#196](https://github.com/rocboss/paopao-ce/pull/196)
+- add `Frontend:Web` feature [#196](https://github.com/rocboss/paopao-ce/pull/196)
+- add `Deprecated:OldWeb` feature [#196](https://github.com/rocboss/paopao-ce/pull/196)
+
+### Changes
+
+- support run multiple service in single paopao-ce instance [#196](https://github.com/rocboss/paopao-ce/pull/196)
+- use [go-mir](https://github.com/alimy/mir) optimize paopao-ce source code architecture [#196](https://github.com/rocboss/paopao-ce/pull/196)
+
+### Fixed
+
+- some other features optimize and bug fix
+
+---
+
+**Older change logs can be found on [GitHub](https://github.com/rocboss/paopao-ce/releases?after=v0.2.0).**
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index ce76dd07..a3ea9d29 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
# build frontend
-FROM node:18-alpine as frontend
+FROM node:19-alpine as frontend
ARG API_HOST
ARG USE_API_HOST=yes
ARG EMBED_UI=yes
@@ -11,7 +11,7 @@ RUN [ $EMBED_UI != yes ] || [ $USE_DIST != no ] || (yarn && yarn build)
RUN [ $EMBED_UI = yes ] || mkdir dist || echo ""
# build backend
-FROM golang:1.18-alpine AS backend
+FROM golang:1.20-alpine AS backend
ARG API_HOST
ARG USE_API_HOST=yes
ARG EMBED_UI=yes
@@ -28,7 +28,7 @@ ENV GOPROXY=https://goproxy.cn
RUN [ $EMBED_UI != yes ] || make build TAGS='embed go_json'
RUN [ $EMBED_UI = yes ] || make build TAGS='go_json'
-FROM alpine:3.16
+FROM alpine:3.17
ARG API_HOST
ARG USE_API_HOST=yes
ARG EMBED_UI=yes
@@ -38,6 +38,7 @@ RUN apk update && apk add --no-cache ca-certificates && update-ca-certificates
WORKDIR /app/paopao-ce
COPY --from=backend /paopao-ce/release/paopao-ce .
+COPY --from=backend /paopao-ce/config.yaml.sample config.yaml
VOLUME ["/app/paopao-ce/custom"]
EXPOSE 8008
diff --git a/Makefile b/Makefile
index eb766816..0f47c3d0 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,7 @@ CGO_ENABLED := 1
endif
RELEASE_ROOT = release
-RELEASE_FILES = LICENSE README.md config.yaml.sample scripts
+RELEASE_FILES = LICENSE README.md CHANGELOG.md config.yaml.sample docker-compose.yaml scripts docs
RELEASE_LINUX_AMD64 = $(RELEASE_ROOT)/linux-amd64/$(TARGET)
RELEASE_DARWIN_AMD64 = $(RELEASE_ROOT)/darwin-amd64/$(TARGET)
RELEASE_DARWIN_ARM64 = $(RELEASE_ROOT)/darwin-arm64/$(TARGET)
@@ -24,7 +24,7 @@ TAGS = ""
MOD_NAME = github.com/rocboss/paopao-ce
LDFLAGS = -X "${MOD_NAME}/pkg/debug.version=${BUILD_VERSION}" \
-X "${MOD_NAME}/pkg/debug.buildDate=${BUILD_DATE}" \
- -X "${MOD_NAME}/pkg/debug.commitID=${SHA_SHORT}" -w -s
+ -X "${MOD_NAME}/pkg/debug.commitID=${SHA_SHORT}" -w -s
all: fmt build
diff --git a/README.md b/README.md
index 7cad6db3..c2ca44ce 100644
--- a/README.md
+++ b/README.md
@@ -194,7 +194,10 @@ PaoPao主要由以下优秀的开源项目/工具构建
docker build -t your/paopao-ce:tag --build-arg EMBED_UI=no .
# 运行
- docker run -d -p 8008:8008 -v ${PWD}/config.yaml.sample:/app/paopao-ce/config.yaml your/paopao-ce:tag
+ mkdir custom && docker run -d -p 8008:8008 -v ${PWD}/custom:/app/paopao-ce/custom -v ${PWD}/config.yaml.sample:/app/paopao-ce/config.yaml your/paopao-ce:tag
+
+ # 或者直接运行构建好的docker image
+ mkdir custom && docker run -d -p 8008:8008 -v ${PWD}/custom:/app/paopao-ce/custom -v ${PWD}/config.yaml.sample:/app/paopao-ce/config.yaml bitbus/paopao-ce:latest
```
* 前端:
@@ -227,8 +230,7 @@ docker compose up --build
# file: docker-compose.yaml
...
backend:
- build:
- context: .
+ image: bitbus/paopao-ce:latest
restart: always
depends_on:
- db
diff --git a/auto/api/v1/priv.go b/auto/api/v1/priv.go
index a29d2858..b02ee0ea 100644
--- a/auto/api/v1/priv.go
+++ b/auto/api/v1/priv.go
@@ -206,7 +206,7 @@ func RegisterPrivServant(e *gin.Engine, s Priv, b PrivBinding, r PrivRender) {
r.RenderCollectionTweet(c, resp, err)
})
- router.Handle("POST", "/post/start", func(c *gin.Context) {
+ router.Handle("POST", "/post/star", func(c *gin.Context) {
select {
case <-c.Request.Context().Done():
return
diff --git a/config.yaml.sample b/config.yaml.sample
index ec33d9eb..86e52b67 100644
--- a/config.yaml.sample
+++ b/config.yaml.sample
@@ -8,23 +8,23 @@ App: # APP基础设置项
Server: # 服务设置
RunMode: debug
HttpIp: 0.0.0.0
- HttpPort: 8008
+ HttpPort: 8010
ReadTimeout: 60
WriteTimeout: 60
Features:
- Default: ["Base", "MySQL", "Option", "Zinc", "LocalOSS", "LoggerFile", "Friendship", "Deprecated"]
+ Default: ["Web", "Frontend:EmbedWeb", "Zinc", "LocalOSS", "MySQL", "BigCacheIndex", "LoggerZinc", "Friendship"]
Develop: ["Base", "MySQL", "BigCacheIndex", "Meili", "Sms", "AliOSS", "LoggerMeili", "OSS:Retention"]
Demo: ["Base", "MySQL", "Option", "Zinc", "Sms", "MinIO", "LoggerZinc", "Migration"]
Slim: ["Base", "Sqlite3", "LocalOSS", "LoggerFile", "OSS:TempDir"]
Base: ["Redis", "PhoneBind"]
Docs: ["Docs:OpenAPI"]
Deprecated: ["Deprecated:OldWeb"]
- Service: ["Web", "Admin", "SpaceX", "Bot", "LocalOSS", "Mobile", "Frontend:Web", "Fronetend:EmbedWeb", "Docs"]
+ Service: ["Web", "Admin", "SpaceX", "Bot", "LocalOSS", "Mobile", "Frontend:Web", "Frontend:EmbedWeb", "Docs"]
Option: ["SimpleCacheIndex"]
Sms: "SmsJuhe"
WebServer: # Web服务
HttpIp: 0.0.0.0
- HttpPort: 8010
+ HttpPort: 8008
ReadTimeout: 60
WriteTimeout: 60
AdminServer: # Admin后台运维服务
@@ -84,7 +84,7 @@ BigCacheIndex: # 使用BigCache缓存泡泡广场消息流
Logger: # 日志通用配置
Level: debug # 日志级别 panic|fatal|error|warn|info|debug|trace
LoggerFile: # 使用File写日志
- SavePath: data/paopao-ce/logs
+ SavePath: custom/data/paopao-ce/logs
FileName: app
FileExt: .log
LoggerZinc: # 使用Zinc写日志
@@ -154,7 +154,7 @@ S3: # Amazon S3 存储配置
Bucket: paopao
Domain:
LocalOSS: # 本地文件OSS存储配置
- SavePath: data/paopao-ce/oss
+ SavePath: custom/data/paopao-ce/oss
Secure: False
Bucket: paopao
Domain: 127.0.0.1:8008
@@ -179,7 +179,7 @@ Postgres: # PostgreSQL数据库
SSLMode: disable
TimeZone: Asia/Shanghai
Sqlite3: # Sqlite3数据库
- Path: data/sqlite3/paopao-ce.db
+ Path: custom/data/sqlite3/paopao-ce.db
Redis:
Host: redis:6379
Password:
diff --git a/deployed-sites.md b/deployed-sites.md
index 27a3fa43..154b86a1 100644
--- a/deployed-sites.md
+++ b/deployed-sites.md
@@ -4,4 +4,4 @@ PaoPao部署站点信息。
| 名称 | 网址 | 站长 | 备注 |
| ----- | ----- | ----- | ----- |
|泡泡|[www.paopao.info](https://www.paopao.info)|[ROC](https://www.paopao.info/#/user?username=roc 'roc(@paopao.info)')|PaoPao官方站点|
-|布里塔|[bulita.net](https://bulita.net)|[chendong](https://www.paopao.info/#/user?username=chendong 'chendong(@paopao.info)')|布里塔 - 招聘求职转发|
+|布里塔|[bulita.cn](https://bulita.cn)|[chendong](https://www.paopao.info/#/user?username=chendong 'chendong(@paopao.info)')|招聘求职等信息|
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 6f40f0eb..b96fcef5 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -11,9 +11,9 @@ services:
MYSQL_RANDOM_ROOT_PASSWORD: yes
volumes:
- ./scripts/paopao-mysql.sql:/docker-entrypoint-initdb.d/paopao.sql
- - ./data/mysql/data:/var/lib/mysql
+ - ./custom/data/mysql/data:/var/lib/mysql
ports:
- - 127.0.0.1::3306
+ - 3306:3306
networks:
- paopao-network
@@ -76,15 +76,15 @@ services:
# networks:
# - paopao-network
- pyroscope:
- image: pyroscope/pyroscope:latest
- restart: always
- ports:
- - 4040:4040
- command:
- - 'server'
- networks:
- - paopao-network
+ # pyroscope:
+ # image: pyroscope/pyroscope:latest
+ # restart: always
+ # ports:
+ # - 4040:4040
+ # command:
+ # - 'server'
+ # networks:
+ # - paopao-network
phpmyadmin:
image: phpmyadmin:5.2
@@ -100,8 +100,7 @@ services:
- paopao-network
backend:
- build:
- context: .
+ image: bitbus/paopao-ce:latest
restart: always
depends_on:
- db
@@ -110,7 +109,7 @@ services:
# modify below to reflect your custom configure
volumes:
- ./config.yaml.sample:/app/paopao-ce/config.yaml
- - ./data/paopao-ce/data:/app/paopao-ce/data
+ - ./custom:/app/paopao-ce/custom
ports:
- 8008:8008
networks:
diff --git a/docs/deploy/local/custom/config.yaml b/docs/deploy/local/custom/config.yaml
new file mode 100644
index 00000000..7a8d2ac0
--- /dev/null
+++ b/docs/deploy/local/custom/config.yaml
@@ -0,0 +1,31 @@
+Features:
+ Default: ["Sqlite3", "Zinc", "LocalOSS", "LoggerFile", "BigCacheIndex", "Friendship", "Frontend:EmbedWeb", "Web"]
+BigCacheIndex: # 使用BigCache缓存泡泡广场消息流
+ MaxIndexPage: 1024 # 最大缓存页数,必须是2^n, 代表最大同时缓存多少页数据
+ HardMaxCacheSize: 256 # 最大缓存大小(MB),0表示无限制
+WebServer: # Web服务
+ HttpIp: 0.0.0.0
+ HttpPort: 8008
+ ReadTimeout: 60
+ WriteTimeout: 60
+JWT: # 鉴权加密
+ Secret: 18a6413dc4fe394c66345ebe501b2f26
+ Issuer: paopao-api
+ Expire: 86400
+Zinc: # Zinc搜索配置
+ Host: 127.0.0.1:4080
+ Index: paopao-data
+ User: admin
+ Password: admin
+ Secure: False
+LocalOSS: # 本地文件OSS存储配置
+ SavePath: custom/data/oss
+ Secure: True
+ Bucket: paopao
+ Domain: api.alimy.me
+Sqlite3: # Sqlite3数据库
+ Path: custom/data/sqlite3/paopao-ce.db
+Redis:
+ Host: 127.0.0.1:6379
+ Password:
+ DB:
diff --git a/docs/discuss/README.md b/docs/discuss/README.md
index 3b983ca6..7412cf4a 100644
--- a/docs/discuss/README.md
+++ b/docs/discuss/README.md
@@ -3,3 +3,6 @@
* [0000-讨论样式模版](./0000-讨论样式模版.md "讨论样式模版")
* [0001-FAQs](./0001-FAQs.md "FAQs")
+
+### paopao.info
+关于paopao-ce的交流、反馈,也可以直接在我们官网[paopao.info](https://www.paopao.info)进行,发布动态时记得加上标签`#paopao-ce`或类似主题相关的标签,方便话题查找。欢迎大家在[paopao.info](https://www.paopao.info)畅快愉悦的交流,一起让paopao-ce的用户体验更好、更便捷。
diff --git a/docs/proposal/003-关于Followship功能项的设计.md b/docs/proposal/003-关于Followship功能项的设计.md
index b315ad87..6ccf15c7 100644
--- a/docs/proposal/003-关于Followship功能项的设计.md
+++ b/docs/proposal/003-关于Followship功能项的设计.md
@@ -1,28 +1,60 @@
| 编号 | 作者 | 发表时间 | 变更时间 | 版本 | 状态 |
| ----- | ----- | ----- | ----- | ----- | ----- |
-| 003| 北野 | 2022-11-04 | 2022-11-04 | v0.0 | 提议 |
+| 003| 北野 | 2022-11-04 | 2022-11-21 | v0.1 | 提议 |
### 关于Followship功能项的设计
- ---- 这里写简要介绍 ----
-
-### 场景
-
- ---- 这里描述在什么使用场景下会需要本提按 ----
-
-### 需求
-实现类似于Twitter的追随者关注模式的推文传播模型,使得广场页面可以浏览已关注用户的推文。
-TODO-TL;DR...
+ Followship是实现类似Twitter Timeline模式**关注者模型**的时间线信息流,广场推文列表的生成将主要与推文时间、用户的关注者相关。Twitter的推文消息流是非常智能的,用户体验也非常好,这得益于其背后的智能推荐算法以及完善的关注者模型体系,当然还有很多其他机制共同作用下的结果。本提按作为一个总纲为paopao-ce引入类似的机制,这将是一个持续完善的缓慢过程,一切都是为了用户体验,用户就是上帝,用户需要什么,paopao-ce就努力提供什么!
+
+### 场景
+* 站点用户基数达到一定规模,推文总量很多、推文更新很快,需要一种机制更智能的生成广场推文列表改善用户体验;
+* 单纯的想为站点引入关注者模型体系;
+
+### 需求
+#### 基本需求
+* 实现类似于Twitter的**追随者关注模式**的推文传播模型,使得广场页面可以浏览已关注用户的推文;
+* 提供 `关注/取消关注` 用户的机制;
+* 浏览 `用户关注者` 列表的机制;
+* 浏览 `用户追随者` 列表的机制;
+* 用户主页显示 `关注者/追随者` 计数,并作为入口进入对应浏览 `关注者/追随者` 列表的页面;
+* 广场推文页面 依据 **关注者模型**体系生成个性化推文列表;
+
+#### 可选需求
+* 建立 **发现机制(Discover)** 为用户 *智能推荐* 用户可能会**感兴趣、值得关注**的用户;
+* 同上,广场推文页面可以附带一些**被推荐的推文**,这些推文不属于关注用户的推文,但是与关注用户相关,比如是用户关注者的关注者、热度用户等;
### 方案
-TODO
+#### 方案一 (仅使用后端关系数据库MySQL/Sqite3/PostgreSQL满足基本需求)
+* 提供 `关注/取消关注` 用户的机制 - 前端/后端
+* 浏览 `用户关注者` 列表的机制 - 前端/后端
+* 浏览 `用户追随者` 列表的机制 - 前端/后端
+* 用户主页显示 `关注者/追随者` 计数,并作为入口进入对应浏览 `关注者/追随者` 列表的页面 - 前端/后端
+* 广场推文页面 依据 **关注者模型**体系生成个性化推文列表 - 后端
+* 发送推文时,默认可见性为 `公开`, 公开的语义将是`关注者可见`, 因此用户如果没有登入或者没有关注任何用户,广场推文列表将只有自己的私密推文或者是空的 - 前端/后端
+
+#### 方案二
+在方案一的基础上通过引入 *图数据库* 实现可选需求。待研究、设计~
+
### 疑问
-1. 如何开启这个功能?
+1. Friendship与Followship这两功能项是否可以共存还是互斥呢?
+ 理论上这两个功能项是可以共存的,如果设置成共存,就需要同时提供这两个机制的UI交互,同时广场推文列表的生成机制也需要做相应适配,可能会比较复杂。前期开发将把这两个功能设置为互斥的,即**用户关系模型**只能设置为其中之一,待两个功能项都趋于稳定后,再测试这两个功能项共存后的用户体验,如果效果还不错就引入共存机制。
-TODO
+1. 如何开启这个功能?
+ 在配置文件config.yaml中的`Features`中添加`Followship`功能项开启该功能:
+ ```yaml
+ ...
+ # features中加上 Followship
+ Features:
+ Default: ["Meili", "LoggerMeili", "Base", "Sqlite3", "BigCacheIndex", "MinIO", "Followship"]
+ Base: ["Redis", "PhoneBind"]
+ ...
+ ```
### 更新记录
#### v0.0(2022-11-04) - 北野
-* 初始文档, 先占个位置
\ No newline at end of file
+* 初始文档, 先占个位置;
+
+#### v0.1(2022-11-21) - 北野
+* 添加初始内容;
\ No newline at end of file
diff --git a/docs/proposal/011-关于Lightship功能项的设计.md b/docs/proposal/011-关于Lightship功能项的设计.md
index b7426d6d..c42480e5 100644
--- a/docs/proposal/011-关于Lightship功能项的设计.md
+++ b/docs/proposal/011-关于Lightship功能项的设计.md
@@ -26,7 +26,7 @@ Lightship(开放模式)功能提供完全公开的推文分享服务,有别于
### 疑问
-1. 公开模式为什么命名为Lightship?
+1. 公开模式为什么命名为Lightship?
Lightship有灯塔的意思,灯塔是为航行船只指明方向的公共设施,这里取其公有设施的属性指喻 开放模式下paopao-ce不需要授权公开访问推 文的意思。
1. 如何开启这个功能?
在配置文件config.yaml中的`Features`中添加`Lightship`功能项开启该功能:
diff --git a/go.mod b/go.mod
index 71a055e1..6e3f8ca1 100644
--- a/go.mod
+++ b/go.mod
@@ -3,40 +3,38 @@ module github.com/rocboss/paopao-ce
go 1.19
require (
- github.com/Masterminds/semver/v3 v3.1.1
+ github.com/Masterminds/semver/v3 v3.2.0
github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868
github.com/alimy/cfg v0.3.0
github.com/alimy/mir/v3 v3.1.1
- github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible
+ github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible
github.com/allegro/bigcache/v3 v3.0.2
github.com/bytedance/sonic v1.8.1
github.com/disintegration/imaging v1.6.2
- github.com/ethereum/go-ethereum v1.10.16
github.com/fatih/color v1.14.1
- github.com/fbsobreira/gotron-sdk v0.0.0-20211102183839-58a64f4da5f4
- github.com/gin-contrib/cors v1.3.1
+ github.com/gin-contrib/cors v1.4.0
github.com/gin-gonic/gin v1.9.0
github.com/go-resty/resty/v2 v2.7.0
github.com/goccy/go-json v0.10.0
github.com/gofrs/uuid v4.0.0+incompatible
github.com/golang-jwt/jwt/v4 v4.5.0
github.com/golang-migrate/migrate/v4 v4.15.2
- github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible
- github.com/jackc/pgx/v5 v5.3.0
+ github.com/huaweicloud/huaweicloud-sdk-go-obs v3.22.11+incompatible
+ github.com/jackc/pgx/v5 v5.3.1
github.com/jmoiron/sqlx v1.3.5
github.com/json-iterator/go v1.1.12
- github.com/kyleconroy/sqlc v1.16.1-0.20230203175717-382035814184
+ github.com/kyleconroy/sqlc v1.17.2
github.com/meilisearch/meilisearch-go v0.21.0
github.com/minio/minio-go/v7 v7.0.49
- github.com/onsi/ginkgo/v2 v2.8.3
+ github.com/onsi/ginkgo/v2 v2.9.0
github.com/onsi/gomega v1.27.1
github.com/pyroscope-io/client v0.6.0
github.com/redis/go-redis/v9 v9.0.2
github.com/sirupsen/logrus v1.9.0
- github.com/smartwalle/alipay/v3 v3.1.7
+ github.com/smartwalle/alipay/v3 v3.1.8
github.com/sourcegraph/conc v0.2.0
github.com/spf13/viper v1.15.0
- github.com/tencentyun/cos-go-sdk-v5 v0.7.35
+ github.com/tencentyun/cos-go-sdk-v5 v0.7.41
github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc
google.golang.org/grpc v1.53.0
google.golang.org/protobuf v1.28.1
@@ -45,7 +43,7 @@ require (
gorm.io/driver/mysql v1.4.7
gorm.io/driver/postgres v1.4.8
gorm.io/driver/sqlite v1.4.4
- gorm.io/gorm v1.24.5
+ gorm.io/gorm v1.24.6
gorm.io/plugin/dbresolver v1.4.1
gorm.io/plugin/soft_delete v1.2.0
modernc.org/sqlite v1.20.4
@@ -54,10 +52,8 @@ require (
require (
github.com/andybalholm/brotli v1.0.4 // indirect
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220626175859-9abda183db8e // indirect
- github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
github.com/benbjohnson/clock v1.1.0 // indirect
- github.com/btcsuite/btcd v0.22.0-beta // indirect
- github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 // indirect
+ github.com/bytecodealliance/wasmtime-go/v5 v5.0.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/clbanning/mxj v1.8.4 // indirect
@@ -92,6 +88,7 @@ require (
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/klauspost/compress v1.15.15 // indirect
github.com/klauspost/cpuid/v2 v2.2.3 // indirect
+ github.com/kr/pretty v0.3.1 // indirect
github.com/leodido/go-urn v1.2.1 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/magiconair/properties v1.8.7 // indirect
diff --git a/go.sum b/go.sum
index bff65627..379d7cb6 100644
--- a/go.sum
+++ b/go.sum
@@ -3,14 +3,12 @@ bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
-cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
-cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw=
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
@@ -39,7 +37,6 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
-cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
@@ -54,15 +51,11 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
-collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg=
-github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4=
-github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc=
github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k=
github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
-github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4=
github.com/Azure/azure-storage-blob-go v0.14.0/go.mod h1:SMqIBi+SuiQH32bvyjngEewEeXoPfKMgWlBDaYf6fck=
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
@@ -70,34 +63,23 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOEl
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA=
-github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
-github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=
github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M=
github.com/Azure/go-autorest/autorest/adal v0.9.16/go.mod h1:tGMin8I49Yij6AQ+rvV+Xa/zwxYQB5hmsd6DkfAx2+A=
-github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
-github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
-github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
-github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
-github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
-github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk=
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/ClickHouse/clickhouse-go v1.4.3/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
-github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
-github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
-github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
+github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
+github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw=
@@ -131,9 +113,6 @@ github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdko
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
-github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
-github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw=
-github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868 h1:uFrPOl1VBt/Abfl2z+A/DFc+AwmFLxEHR1+Yq6cXvww=
github.com/afocus/captcha v0.0.0-20191010092841-4bd1f21c8868/go.mod h1:srphKZ1i+yGXxl/LpBS7ZIECTjCTPzZzAMtJWoG3sLo=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
@@ -148,18 +127,15 @@ github.com/alimy/cfg v0.3.0 h1:9xgA0QWVCPSq9fFNRcYahVCAX22IL9ts2wrTQPfAStY=
github.com/alimy/cfg v0.3.0/go.mod h1:rOxbasTH2srl6StAjNF5Vyi8bfrdkl3fLGmOYtSw81c=
github.com/alimy/mir/v3 v3.1.1 h1:3tz7uGOwuA1IKU0BysyBvGbyqKtEVMuhPBD/APk1ANw=
github.com/alimy/mir/v3 v3.1.1/go.mod h1:ybhT2ijOiDn0lLwWzIY6vXdv+uzZrctS7VFfczcXBWU=
-github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible h1:9gWa46nstkJ9miBReJcN8Gq34cBFbzSpQZVVT9N09TM=
-github.com/aliyun/aliyun-oss-go-sdk v2.2.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
-github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
+github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible h1:KXeJoM1wo9I/6xPTyt6qCxoSZnmASiAjlrr0dyTUKt8=
+github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/allegro/bigcache/v3 v3.0.2 h1:AKZCw+5eAaVyNTBmI2fgyPVJhHkdWder3O9IrprcQfI=
github.com/allegro/bigcache/v3 v3.0.2/go.mod h1:aPyh7jEvrog9zAwx5N7+JUQX5dZTSGpxF1LAR4dr35I=
-github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220626175859-9abda183db8e h1:bt6SW1eSSvdmmsG0KqyxYXorcTnFBTX7hfVR1+68+jg=
github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220626175859-9abda183db8e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
-github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=
github.com/apache/arrow/go/arrow v0.0.0-20210818145353-234c94e4ce64/go.mod h1:2qMFB56yOP3KzkB3PbYZ4AlUFg3a88F67TIx5lB/WwY=
github.com/apache/arrow/go/arrow v0.0.0-20211013220434-5962184e7a30/go.mod h1:Q7yQnSMnLvcXlZ8RV+jwz/6y1rQTqbX6C82SndT52Zs=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
@@ -169,16 +145,12 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0=
github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo=
github.com/aws/aws-sdk-go-v2 v1.8.0/go.mod h1:xEFuWz+3TYdlPRuo+CqATbeDWIWyaT5uAPwPaWtgse0=
github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
-github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y=
github.com/aws/aws-sdk-go-v2/config v1.6.0/go.mod h1:TNtBVmka80lRPk5+S9ZqVfFszOQAGJJ9KbT3EM3CHNU=
github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw=
-github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo=
github.com/aws/aws-sdk-go-v2/credentials v1.3.2/go.mod h1:PACKuTJdt6AlXvEq8rFI4eDmoqDFC5DpVKQbWysaDgM=
github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.4.0/go.mod h1:Mj/U8OpDbcVcoctrYwA2bak8k/HFPdcLzI/vaiXMwuM=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.4.0/go.mod h1:eHwXu2+uE/T6gpnYWwBwqoeqRf9IXyCcolyOWDRAErQ=
@@ -187,25 +159,18 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.2.0/go.mod h1:Q5jATQc+f1MfZp3PDMhn6
github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.2.2/go.mod h1:EASdTcM1lGhUe1/p4gkojHwlGJkeoRjjr1sRCzup3Is=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.3.0/go.mod h1:v8ygadNyATSm6elwJ/4gzJwcFhri9RqS8skgHKiwXPU=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.2.2/go.mod h1:NXmNI41bdEsJMrD0v9rUvbGCB5GwdBEpKvUvIY3vTFg=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.5.2/go.mod h1:QuL2Ym8BkrLmN4lUofXYq6000/i5jPjosCNK//t6gak=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.7.2/go.mod h1:np7TMuJNT83O0oDOSF8i4dF3dvGqA6hPYYo6YYkzgRA=
-github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4=
github.com/aws/aws-sdk-go-v2/service/s3 v1.12.0/go.mod h1:6J++A5xpo7QDsIeSqPK4UHqMSyPOCopa+zKtqAMhqVQ=
github.com/aws/aws-sdk-go-v2/service/s3 v1.16.1/go.mod h1:CQe/KvWV1AqRc65KqeJjrLzr5X2ijnFTTVzJW0VBRCI=
-github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0=
github.com/aws/aws-sdk-go-v2/service/sso v1.3.2/go.mod h1:J21I6kF+d/6XHVk7kp/cx9YVD2TMD2TbLwtRGVcinXo=
github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk=
-github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM=
github.com/aws/aws-sdk-go-v2/service/sts v1.6.1/go.mod h1:hLZ/AnkIKHLuPGjEiyghNEdvJ2PP0MgOxcmv9EBJ4xs=
github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g=
-github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw=
github.com/aws/smithy-go v1.7.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
-github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
-github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -222,43 +187,26 @@ github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJm
github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
-github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c=
-github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
github.com/bsm/ginkgo/v2 v2.5.0 h1:aOAnND1T40wEdAtkGSkvSICWeQ8L3UASX7YVCqQx+eQ=
github.com/bsm/gomega v1.20.0 h1:JhAwLmtRzXFTx2AkALSLa8ijZafntmhSoU63Ok18Uq8=
-github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
-github.com/btcsuite/btcd v0.22.0-beta h1:LTDpDKUM5EeOFBPM8IXpinEcmZ6FWfNZbE3lfrfdnWo=
-github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA=
-github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
-github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
-github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o=
-github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
-github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
-github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=
-github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
-github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
-github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
-github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
-github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA=
-github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q=
+github.com/bytecodealliance/wasmtime-go/v5 v5.0.0 h1:Ue3eBDElMrdzWoUtr7uPr7NeDZriuR5oIivp5EHknQU=
+github.com/bytecodealliance/wasmtime-go/v5 v5.0.0/go.mod h1:KcecyOqumZrvLnlaEIMFRbBaQeUYNvsbPjAEVho1Fcs=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.8.1 h1:NqAHCaGaTzro0xMmnTCLUyRlbEP6r8MCA1cJUrH3Pu4=
github.com/bytedance/sonic v1.8.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
-github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=
github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
-github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -282,7 +230,6 @@ github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2u
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304=
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -300,8 +247,6 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
-github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ=
-github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q=
github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=
github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU=
github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
@@ -425,7 +370,6 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cubicdaiya/gonp v1.0.4 h1:ky2uIAJh81WiLcGKBVD5R7KsM/36W6IqqTy6Bo6rGws=
github.com/cubicdaiya/gonp v1.0.4/go.mod h1:iWGuP/7+JVTn02OWhRemVbMmG1DOUnmrGTYYACpOI0I=
-github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=
@@ -435,20 +379,13 @@ github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1S
github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I=
-github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
-github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo=
-github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
-github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M=
-github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw=
github.com/denisenkom/go-mssqldb v0.10.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
@@ -456,7 +393,6 @@ github.com/dhui/dktest v0.3.10 h1:0frpeeoM9pHouHjhLeZDuDTJ0PqjDTrycaHaMmkJAo8=
github.com/dhui/dktest v0.3.10/go.mod h1:h5Enh0nG3Qbo9WjNFRrwmKUaePEBhXMOygbz3Ww7Sz0=
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
-github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
@@ -464,7 +400,6 @@ github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker v20.10.13+incompatible h1:5s7uxnKZG+b8hYWlPYUi6x1Sjpq2MSt96d15eLZeHyw=
github.com/docker/docker v20.10.13+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
@@ -480,15 +415,11 @@ github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
-github.com/dop251/goja v0.0.0-20211011172007-d99e4b8cbf48/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk=
-github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts=
github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
-github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
@@ -503,17 +434,12 @@ github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.
github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws=
-github.com/ethereum/go-ethereum v1.10.16 h1:3oPrumn0bCW/idjcxMn5YYVCdK7VzJYIvwGZUGLEaoc=
-github.com/ethereum/go-ethereum v1.10.16/go.mod h1:Anj6cxczl+AHy63o4X9O8yWNHuN5wMpfb8MAnHkWn7Y=
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w=
github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg=
-github.com/fbsobreira/gotron-sdk v0.0.0-20211102183839-58a64f4da5f4 h1:zlN+of+l+or/Y6CYgpX99wwaTf4zN0myVj6YAXiE3xk=
-github.com/fbsobreira/gotron-sdk v0.0.0-20211102183839-58a64f4da5f4/go.mod h1:h93/Km+mJz1q4a+4fjYE+dMxzTRTrJjxaVIc/Tm9uV0=
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
@@ -530,22 +456,16 @@ github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXt
github.com/gabriel-vasile/mimetype v1.3.1/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8=
github.com/gabriel-vasile/mimetype v1.4.0/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8=
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
-github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww=
-github.com/getkin/kin-openapi v0.53.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
-github.com/getkin/kin-openapi v0.61.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4=
github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/gin-contrib/cors v1.3.1 h1:doAsuITavI4IOcd0Y19U4B+O0dNWihRyX//nn4sEmgA=
-github.com/gin-contrib/cors v1.3.1/go.mod h1:jjEJ4268OPZUcU7k9Pm653S7lXUGcqMADzFA61xsmDk=
+github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g=
+github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
-github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
+github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8=
github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k=
-github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
-github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
-github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
@@ -571,7 +491,6 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
@@ -586,20 +505,20 @@ github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dp
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
-github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM=
+github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
-github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY=
+github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
+github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU=
github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s=
github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I=
-github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
-github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
@@ -632,6 +551,7 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe
github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
+github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA=
github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/gocql/gocql v0.0.0-20210515062232-b7ef815b4556/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY=
@@ -642,7 +562,6 @@ github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
@@ -664,7 +583,6 @@ github.com/golang-migrate/migrate/v4 v4.15.2/go.mod h1:f2toGLkYqD3JH+Todi4aZ2Zdb
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
-github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -701,15 +619,12 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golangci/lint-1 v0.0.0-20181222135242-d2cdd8c08219/go.mod h1:/X8TswGSh1pIozq4ZwCfxS0WA5JGXguxk94ar/4c87Y=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/flatbuffers v2.0.0+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -732,7 +647,6 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@@ -759,7 +673,6 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -777,11 +690,9 @@ github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/
github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc=
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
@@ -797,7 +708,6 @@ github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FK
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
@@ -813,20 +723,15 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
-github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA=
-github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible h1:tANYIteuFrosKbRYUk1Yo/OGJjbt4x3OVg211Qc60M0=
-github.com/huaweicloud/huaweicloud-sdk-go-obs v3.21.12+incompatible/go.mod h1:l7VUhRbTKCzdOacdT4oWCwATKyvZqUOlOqr0Ous3k4s=
-github.com/huin/goupnp v1.0.2/go.mod h1:0dxJBVBHqTMjIUMkESDTNgOOx/Mw5wYIfyFmdzSamkM=
-github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o=
+github.com/huaweicloud/huaweicloud-sdk-go-obs v3.22.11+incompatible h1:bSww59mgbqFRGCRvlvfQutsptE3lRjNiU5C0YNT/bWw=
+github.com/huaweicloud/huaweicloud-sdk-go-obs v3.22.11+incompatible/go.mod h1:l7VUhRbTKCzdOacdT4oWCwATKyvZqUOlOqr0Ous3k4s=
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -838,17 +743,6 @@ github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc=
github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY=
-github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI=
-github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8=
-github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk=
-github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
-github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo=
-github.com/influxdata/line-protocol v0.0.0-20210311194329-9aa0e372d097/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo=
-github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
-github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE=
-github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0=
-github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po=
github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ=
github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA=
github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw=
@@ -893,18 +787,15 @@ github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXg
github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o=
github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg=
github.com/jackc/pgx/v4 v4.10.1/go.mod h1:QlrWebbs3kqEZPHCTGyxecvzG6tvIsYu+A5b1raylkA=
-github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA=
github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
+github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU=
+github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
-github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
-github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU=
-github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
-github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
@@ -927,7 +818,6 @@ github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUB
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
-github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -936,16 +826,13 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
-github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
-github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/k0kubun/pp v2.3.0+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg=
-github.com/karalabe/usb v0.0.2/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU=
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
@@ -955,8 +842,6 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
-github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
@@ -967,14 +852,11 @@ github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e
github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw=
github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
-github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU=
github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
-github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg=
-github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -983,8 +865,9 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw=
@@ -992,13 +875,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4=
-github.com/kyleconroy/sqlc v1.16.1-0.20230203175717-382035814184 h1:e65fQg3yooUBlmkSJc3nwRxw1vEYKU5sF0vxakIGUI0=
-github.com/kyleconroy/sqlc v1.16.1-0.20230203175717-382035814184/go.mod h1:KVDjqlXjhpsAKlzFfOwywU4S+/FHB2pAIbCLlCmdnLY=
-github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/labstack/echo/v4 v4.2.1/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg=
-github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
-github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8=
-github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw=
+github.com/kyleconroy/sqlc v1.17.2 h1:aFXblbzJTCHy0S8zWgF+6hMwc6ezxtwBfmjxoBCuv/8=
+github.com/kyleconroy/sqlc v1.17.2/go.mod h1:tZo5IZRJSjGiQGuFD6nqRcVThyPQ+D5HOzHEXXzOo8M=
github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w=
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
@@ -1026,17 +904,12 @@ github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsI
github.com/markbates/pkger v0.15.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho=
-github.com/matryer/moq v0.0.0-20190312154309-6cfb0558e1bd/go.mod h1:9ELz6aaclSIGnZBoaSLZ3NAl1VTufbOrXBPvtcy6WiQ=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
-github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
-github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
-github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc=
github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
@@ -1045,24 +918,21 @@ github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
-github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.14.3/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI=
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/mattn/go-sqlite3 v1.14.10/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
-github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY=
@@ -1086,12 +956,10 @@ github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0Qu
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
-github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
-github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
@@ -1118,7 +986,6 @@ github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISe
github.com/mozillazg/go-httpheader v0.3.1 h1:IRP+HFrMX2SlwY9riuio7raffXUpzAosHtZu25BSJok=
github.com/mozillazg/go-httpheader v0.3.1/go.mod h1:PuT8h0pw6efvp8ZeUec1Rs7dwjK08bt6gKSReGMqtdA=
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
-github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg=
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mutecomm/go-sqlcipher/v4 v4.4.0/go.mod h1:PyN04SaWalavxRGH9E8ZftG6Ju7rsPrGmQRjrEaVpiY=
@@ -1126,8 +993,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA=
-github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=
-github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
@@ -1135,11 +1000,9 @@ github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -1149,12 +1012,10 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108
github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0=
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
-github.com/onsi/ginkgo/v2 v2.8.3 h1:RpbK1G8nWPNaCVFBWsOGnEQQGgASi6b8fxcWBvDYjxQ=
-github.com/onsi/ginkgo/v2 v2.8.3/go.mod h1:6OaUA8BCi0aZfmzYT/q9AacwTzDpNbxILUT+TlBq6MY=
+github.com/onsi/ginkgo/v2 v2.9.0 h1:Tugw2BKlNHTMfG+CheOITkYvk4LAh6MFOvikhGVnhE8=
+github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk=
github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
@@ -1193,23 +1054,18 @@ github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqi
github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo=
github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8=
github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
-github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
+github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
-github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
-github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=
github.com/pganalyze/pg_query_go/v2 v2.2.0 h1:OW+reH+ZY7jdEuPyuLGlf1m7dLbE+fDudKXhLs0Ttpk=
github.com/pganalyze/pg_query_go/v2 v2.2.0/go.mod h1:XAxmVqz1tEGqizcQ3YSdN90vCOHBWjJi8URL1er5+cA=
-github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
@@ -1223,6 +1079,7 @@ github.com/pingcap/tidb/parser v0.0.0-20220725134311-c80026e61f00 h1:aDC/yAGx/jP
github.com/pingcap/tidb/parser v0.0.0-20220725134311-c80026e61f00/go.mod h1:wjvp+T3/T9XYt0nKqGX3Kc1AKuyUcfno6LTc6b2A6ew=
github.com/pkg/browser v0.0.0-20210706143420-7d21f8c997e2/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -1230,7 +1087,6 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
-github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
@@ -1277,16 +1133,15 @@ github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEt
github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
-github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc=
-github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
-github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY=
github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
@@ -1298,17 +1153,12 @@ github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfF
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4=
-github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
-github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
-github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
-github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
@@ -1324,8 +1174,8 @@ github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
-github.com/smartwalle/alipay/v3 v3.1.7 h1:J4U5slABafKVD/b9gPCZe/3HAPB8Pa2NOYOPcugEJBo=
-github.com/smartwalle/alipay/v3 v3.1.7/go.mod h1:cZUMCCnsux9YAxA0/f3PWUR+7wckWtE1BqxbVRtGij0=
+github.com/smartwalle/alipay/v3 v3.1.8 h1:4oWNZ4yPF7ezFO1hLd5jOaqyZnDRQPb6y3vS2uKR7ns=
+github.com/smartwalle/alipay/v3 v3.1.8/go.mod h1:cZUMCCnsux9YAxA0/f3PWUR+7wckWtE1BqxbVRtGij0=
github.com/smartwalle/crypto4go v1.0.2 h1:9DUEOOsPhmp00438L4oBdcL8EZG1zumecft5bWj5phI=
github.com/smartwalle/crypto4go v1.0.2/go.mod h1:LQ7vCZIb7BE5+MuMtJBuO8ORkkQ01m4DXDBWPzLbkMY=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
@@ -1365,7 +1215,6 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU=
github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA=
-github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q=
github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -1375,7 +1224,6 @@ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoH
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -1392,39 +1240,31 @@ github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNG
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
-github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
-github.com/tencentyun/cos-go-sdk-v5 v0.7.35 h1:XVk5GQ4eH1q+DBUJfpaMMdU9TJZWMjwNNwv0PG5nbLQ=
-github.com/tencentyun/cos-go-sdk-v5 v0.7.35/go.mod h1:4dCEtLHGh8QPxHEkgq+nFaky7yZxQuYwgSJM87icDaw=
+github.com/tencentyun/cos-go-sdk-v5 v0.7.41 h1:iU0Li/Np78H4SBna0ECQoF3mpgi6ImLXU+doGzPFXGc=
+github.com/tencentyun/cos-go-sdk-v5 v0.7.41/go.mod h1:4dCEtLHGh8QPxHEkgq+nFaky7yZxQuYwgSJM87icDaw=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
-github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI=
-github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM=
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
-github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
-github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
-github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
+github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
+github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU=
github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
-github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d h1:xS9QTPgKl9ewGsAOPc+xW7DeStJDqYPfisDmeSCcbco=
github.com/valyala/fasthttp v1.37.1-0.20220607072126-8a320890c08d/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I=
-github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
-github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
@@ -1434,7 +1274,6 @@ github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmF
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
-github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
github.com/xanzy/go-gitlab v0.15.0/go.mod h1:8zdQa/ri1dfn8eS3Ir1SyfvOKlw7WBJ8DVThkpGiXrs=
@@ -1445,7 +1284,6 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc h1:7VHQaaNwHymWbj8lAcXMYX1qopebSBHwYC3ceXLWONU=
github.com/yinheli/mahonia v0.0.0-20131226213531-0eef680515cc/go.mod h1:Pcc297eVCbkDBBVq8FbnI+qDUeIMrHy4Bo7nveAuCAs=
@@ -1529,7 +1367,6 @@ go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
-golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -1544,21 +1381,17 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
@@ -1621,7 +1454,6 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1663,7 +1495,6 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
@@ -1673,7 +1504,6 @@ golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwY
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
@@ -1683,7 +1513,6 @@ golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -1773,7 +1602,6 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1796,9 +1624,7 @@ golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1822,12 +1648,10 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1887,7 +1711,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -1935,7 +1758,6 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
@@ -1983,11 +1805,8 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
-gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
-gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU=
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
-gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
@@ -2039,7 +1858,6 @@ google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRn
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
-google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
@@ -2047,7 +1865,6 @@ google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvx
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
-google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
@@ -2158,6 +1975,7 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
@@ -2173,8 +1991,6 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
-gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
-gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
@@ -2183,15 +1999,12 @@ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
-gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c=
-gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns=
gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -2225,8 +2038,8 @@ gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
gorm.io/gorm v1.24.2/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
gorm.io/gorm v1.24.3/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
-gorm.io/gorm v1.24.5 h1:g6OPREKqqlWq4kh/3MCQbZKImeB9e6Xgc4zD+JgNZGE=
-gorm.io/gorm v1.24.5/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
+gorm.io/gorm v1.24.6 h1:wy98aq9oFEetsc4CAbKD2SoBCdMzsbSIvSUUFJuHi5s=
+gorm.io/gorm v1.24.6/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
gorm.io/plugin/dbresolver v1.4.1 h1:Ug4LcoPhrvqq71UhxtF346f+skTYoCa/nEsdjvHwEzk=
gorm.io/plugin/dbresolver v1.4.1/go.mod h1:CTbCtMWhsjXSiJqiW2R8POvJ2cq18RVOl4WGyT5nhNc=
gorm.io/plugin/soft_delete v1.2.0 h1:txWHRMqLPqfXUFytXCdxb/jthRe3CrG4R5XOdagut6Q=
@@ -2242,7 +2055,6 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo=
k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
diff --git a/internal/conf/config.yaml b/internal/conf/config.yaml
index 6ea7d3c6..f8d34aaf 100644
--- a/internal/conf/config.yaml
+++ b/internal/conf/config.yaml
@@ -81,7 +81,7 @@ Pyroscope: # Pyroscope配置
Logger: # 日志通用配置
Level: debug # 日志级别 panic|fatal|error|warn|info|debug|trace
LoggerFile: # 使用File写日志
- SavePath: data/paopao-ce/logs
+ SavePath: custom/data/paopao-ce/logs
FileName: app
FileExt: .log
LoggerZinc: # 使用Zinc写日志
@@ -151,7 +151,7 @@ S3: # Amazon S3 存储配置
Bucket: paopao
Domain:
LocalOSS: # 本地文件OSS存储配置
- SavePath: data/paopao-ce/oss
+ SavePath: custom/data/paopao-ce/oss
Secure: False
Bucket: paopao
Domain: 127.0.0.1:8008
@@ -171,12 +171,13 @@ Postgres: # PostgreSQL数据库
User: paopao
Password: paopao
DBName: paopao
+ Schema: public
Host: localhost
Port: 5432
SSLMode: disable
- TimeZone: Asia/Shanghai
+ ApplicationName:
Sqlite3: # Sqlite3数据库
- Path: data/sqlite3/paopao-ce.db
+ Path: custom/data/sqlite3/paopao-ce.db
Redis:
Host: redis:6379
Password:
diff --git a/internal/conf/settting.go b/internal/conf/settting.go
index c5ed4d82..a415be60 100644
--- a/internal/conf/settting.go
+++ b/internal/conf/settting.go
@@ -301,8 +301,18 @@ func (s *MySQLSettingS) Dsn() string {
func (s PostgresSettingS) Dsn() string {
var params []string
for k, v := range s {
- if len(v) > 0 {
- params = append(params, strings.ToLower(k)+"="+v)
+ if len(v) == 0 {
+ continue
+ }
+ lk := strings.ToLower(k)
+ tv := strings.Trim(v, " ")
+ switch lk {
+ case "schema":
+ params = append(params, "search_path="+tv)
+ case "applicationname":
+ params = append(params, "application_name="+tv)
+ default:
+ params = append(params, lk+"="+tv)
}
}
return strings.Join(params, " ")
diff --git a/internal/dao/jinzhu/dbr/contact.go b/internal/dao/jinzhu/dbr/contact.go
index e8c12bd0..a1777e28 100644
--- a/internal/dao/jinzhu/dbr/contact.go
+++ b/internal/dao/jinzhu/dbr/contact.go
@@ -7,6 +7,7 @@ package dbr
import (
"github.com/sirupsen/logrus"
"gorm.io/gorm"
+ "gorm.io/gorm/clause"
)
const (
@@ -73,7 +74,7 @@ func (c *Contact) List(db *gorm.DB, conditions ConditionsT, offset, limit int) (
}
}
- db.Joins("User").Order("`User`.`nickname` ASC")
+ db.Joins("User").Order(clause.OrderByColumn{Column: clause.Column{Name: "nickname"}, Desc: false})
if err = db.Find(&contacts).Error; err != nil {
return nil, err
}
diff --git a/internal/dao/jinzhu/dbr/post_collection.go b/internal/dao/jinzhu/dbr/post_collection.go
index 04ca2647..33d32f31 100644
--- a/internal/dao/jinzhu/dbr/post_collection.go
+++ b/internal/dao/jinzhu/dbr/post_collection.go
@@ -8,6 +8,7 @@ import (
"time"
"gorm.io/gorm"
+ "gorm.io/gorm/clause"
)
type PostCollection struct {
@@ -31,7 +32,7 @@ func (p *PostCollection) Get(db *gorm.DB) (*PostCollection, error) {
db = db.Where(tn+"user_id = ?", p.UserID)
}
- db = db.Joins("Post").Where("Post.visibility <> ?", PostVisitPrivate).Order("Post.id DESC")
+ db = db.Joins("Post").Where("visibility <> ?", PostVisitPrivate).Order(clause.OrderByColumn{Column: clause.Column{Table: "Post", Name: "id"}, Desc: true})
err := db.First(&star).Error
if err != nil {
return &star, err
@@ -73,7 +74,7 @@ func (p *PostCollection) List(db *gorm.DB, conditions *ConditionsT, offset, limi
}
}
- db = db.Joins("Post").Where("Post.visibility <> ?", PostVisitPrivate).Order("Post.id DESC")
+ db = db.Joins("Post").Where(`visibility <> ?`, PostVisitPrivate).Order(clause.OrderByColumn{Column: clause.Column{Table: "Post", Name: "id"}, Desc: true})
if err = db.Where(tn+"is_del = ?", 0).Find(&collections).Error; err != nil {
return nil, err
}
@@ -97,7 +98,7 @@ func (p *PostCollection) Count(db *gorm.DB, conditions *ConditionsT) (int64, err
}
}
- db = db.Joins("Post").Where("Post.visibility <> ?", PostVisitPrivate)
+ db = db.Joins("Post").Where(`visibility <> ?`, PostVisitPrivate)
if err := db.Model(p).Count(&count).Error; err != nil {
return 0, err
}
diff --git a/internal/dao/jinzhu/dbr/post_star.go b/internal/dao/jinzhu/dbr/post_star.go
index 45c48f45..ca434523 100644
--- a/internal/dao/jinzhu/dbr/post_star.go
+++ b/internal/dao/jinzhu/dbr/post_star.go
@@ -8,6 +8,7 @@ import (
"time"
"gorm.io/gorm"
+ "gorm.io/gorm/clause"
)
type PostStar struct {
@@ -31,7 +32,7 @@ func (p *PostStar) Get(db *gorm.DB) (*PostStar, error) {
db = db.Where(tn+"user_id = ?", p.UserID)
}
- db = db.Joins("Post").Where("Post.visibility <> ?", PostVisitPrivate).Order("Post.id DESC")
+ db = db.Joins("Post").Where("visibility <> ?", PostVisitPrivate).Order(clause.OrderByColumn{Column: clause.Column{Table: "Post", Name: "id"}, Desc: true})
if err := db.First(&star).Error; err != nil {
return nil, err
}
@@ -71,7 +72,7 @@ func (p *PostStar) List(db *gorm.DB, conditions *ConditionsT, offset, limit int)
}
}
- db = db.Joins("Post").Where("Post.visibility <> ?", PostVisitPrivate).Order("Post.id DESC")
+ db = db.Joins("Post").Where("visibility <> ?", PostVisitPrivate).Order(clause.OrderByColumn{Column: clause.Column{Table: "Post", Name: "id"}, Desc: true})
if err = db.Find(&stars).Error; err != nil {
return nil, err
}
@@ -94,7 +95,7 @@ func (p *PostStar) Count(db *gorm.DB, conditions *ConditionsT) (int64, error) {
}
}
- db = db.Joins("Post").Where("Post.visibility <> ?", PostVisitPrivate)
+ db = db.Joins("Post").Where("visibility <> ?", PostVisitPrivate)
if err := db.Model(p).Count(&count).Error; err != nil {
return 0, err
}
diff --git a/internal/dao/jinzhu/gorm.go b/internal/dao/jinzhu/gorm.go
index 3dd6aef0..8cd44639 100644
--- a/internal/dao/jinzhu/gorm.go
+++ b/internal/dao/jinzhu/gorm.go
@@ -8,47 +8,48 @@ import (
"github.com/rocboss/paopao-ce/internal/conf"
)
+// 数据库表名,统一使用 _
_ 的形式命名, 比如tag表 => _tag_
var (
- _anouncement string
- _anouncementContent string
- _attachment string
- _captcha string
- _comment string
- _commentContent string
- _commentReply string
- _contact string
- _contactGroup string
- _message string
- _post string
- _postAttachmentBill string
- _postCollection string
- _postContent string
- _postStar string
- _tag string
- _user string
- _walletRecharge string
- _walletStatement string
+ _anouncement_ string
+ _anouncementContent_ string
+ _attachment_ string
+ _captcha_ string
+ _comment_ string
+ _commentContent_ string
+ _commentReply_ string
+ _contact_ string
+ _contactGroup_ string
+ _message_ string
+ _post_ string
+ _postAttachmentBill_ string
+ _postCollection_ string
+ _postContent_ string
+ _postStar_ string
+ _tag_ string
+ _user_ string
+ _walletRecharge_ string
+ _walletStatement_ string
)
func initTableName() {
m := conf.DatabaseSetting.TableNames()
- _anouncement = m[conf.TableAnouncement]
- _anouncementContent = m[conf.TableAnouncementContent]
- _attachment = m[conf.TableAttachment]
- _captcha = m[conf.TableCaptcha]
- _comment = m[conf.TableComment]
- _commentContent = m[conf.TableCommentContent]
- _commentReply = m[conf.TableCommentReply]
- _contact = m[conf.TableContact]
- _contactGroup = m[conf.TableContactGroup]
- _message = m[conf.TableMessage]
- _post = m[conf.TablePost]
- _postAttachmentBill = m[conf.TablePostAttachmentBill]
- _postCollection = m[conf.TablePostCollection]
- _postContent = m[conf.TablePostContent]
- _postStar = m[conf.TablePostStar]
- _tag = m[conf.TableTag]
- _user = m[conf.TableUser]
- _walletRecharge = m[conf.TableWalletRecharge]
- _walletStatement = m[conf.TableWalletStatement]
+ _anouncement_ = m[conf.TableAnouncement]
+ _anouncementContent_ = m[conf.TableAnouncementContent]
+ _attachment_ = m[conf.TableAttachment]
+ _captcha_ = m[conf.TableCaptcha]
+ _comment_ = m[conf.TableComment]
+ _commentContent_ = m[conf.TableCommentContent]
+ _commentReply_ = m[conf.TableCommentReply]
+ _contact_ = m[conf.TableContact]
+ _contactGroup_ = m[conf.TableContactGroup]
+ _message_ = m[conf.TableMessage]
+ _post_ = m[conf.TablePost]
+ _postAttachmentBill_ = m[conf.TablePostAttachmentBill]
+ _postCollection_ = m[conf.TablePostCollection]
+ _postContent_ = m[conf.TablePostContent]
+ _postStar_ = m[conf.TablePostStar]
+ _tag_ = m[conf.TableTag]
+ _user_ = m[conf.TableUser]
+ _walletRecharge_ = m[conf.TableWalletRecharge]
+ _walletStatement_ = m[conf.TableWalletStatement]
}
diff --git a/internal/dao/slonik/ce/postgres/db.go b/internal/dao/slonik/ce/postgres/db.go
index 837fe9df..6de23282 100644
--- a/internal/dao/slonik/ce/postgres/db.go
+++ b/internal/dao/slonik/ce/postgres/db.go
@@ -1,6 +1,6 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
-// sqlc v1.16.0
+// sqlc v1.17.2
package dbr
diff --git a/internal/dao/slonik/ce/postgres/models.go b/internal/dao/slonik/ce/postgres/models.go
index d4d8e7ff..3d23c045 100644
--- a/internal/dao/slonik/ce/postgres/models.go
+++ b/internal/dao/slonik/ce/postgres/models.go
@@ -1,6 +1,6 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
-// sqlc v1.16.0
+// sqlc v1.17.2
package dbr
diff --git a/internal/dao/slonik/ce/postgres/querier.go b/internal/dao/slonik/ce/postgres/querier.go
index 73bdb8a0..d1714580 100644
--- a/internal/dao/slonik/ce/postgres/querier.go
+++ b/internal/dao/slonik/ce/postgres/querier.go
@@ -1,6 +1,6 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
-// sqlc v1.16.0
+// sqlc v1.17.2
package dbr
diff --git a/internal/dao/slonik/ce/postgres/topic.sql.go b/internal/dao/slonik/ce/postgres/topic.sql.go
index 9bf82268..49dd48a2 100644
--- a/internal/dao/slonik/ce/postgres/topic.sql.go
+++ b/internal/dao/slonik/ce/postgres/topic.sql.go
@@ -1,14 +1,12 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
-// sqlc v1.16.0
+// sqlc v1.17.2
// source: topic.sql
package dbr
import (
"context"
-
- "github.com/jackc/pgx/v5/pgtype"
)
const decrTagsById = `-- name: DecrTagsById :exec
@@ -24,7 +22,7 @@ WHERE id IN (
type DecrTagsByIdParams struct {
ModifiedOn int64
- Ids pgtype.Array[int64]
+ Ids []int64
}
func (q *Queries) DecrTagsById(ctx context.Context, arg *DecrTagsByIdParams) error {
@@ -102,7 +100,7 @@ RETURNING id, user_id, tag, quote_num
type IncrTagsParams struct {
ModifiedOn int64
- Tags pgtype.Array[string]
+ Tags []string
}
type IncrTagsRow struct {
diff --git a/internal/servants/web/broker/comment.go b/internal/servants/web/broker/comment.go
index 7f9389dc..564507c0 100644
--- a/internal/servants/web/broker/comment.go
+++ b/internal/servants/web/broker/comment.go
@@ -5,13 +5,14 @@
package broker
import (
- "github.com/rocboss/paopao-ce/internal/core"
"time"
+ "github.com/rocboss/paopao-ce/internal/core"
+
"github.com/gin-gonic/gin"
"github.com/rocboss/paopao-ce/internal/conf"
"github.com/rocboss/paopao-ce/pkg/errcode"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
)
type CommentCreationReq struct {
@@ -121,7 +122,7 @@ func CreatePostComment(ctx *gin.Context, userID int64, param CommentCreationReq)
PostID: post.ID,
UserID: userID,
IP: ip,
- IPLoc: util.GetIPLoc(ip),
+ IPLoc: utils.GetIPLoc(ip),
}
comment, err = ds.CreateComment(comment)
if err != nil {
@@ -253,7 +254,7 @@ func CreatePostCommentReply(ctx *gin.Context, commentID int64, content string, u
Content: content,
AtUserID: atUserID,
IP: ip,
- IPLoc: util.GetIPLoc(ip),
+ IPLoc: utils.GetIPLoc(ip),
}
reply, err = ds.CreateCommentReply(reply)
diff --git a/internal/servants/web/broker/post.go b/internal/servants/web/broker/post.go
index e177dd27..10292d99 100644
--- a/internal/servants/web/broker/post.go
+++ b/internal/servants/web/broker/post.go
@@ -16,7 +16,7 @@ import (
"github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/core/cs"
"github.com/rocboss/paopao-ce/pkg/errcode"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/sirupsen/logrus"
)
@@ -120,7 +120,7 @@ func CreatePost(c *gin.Context, userID int64, param PostCreationReq) (_ *core.Po
UserID: userID,
Tags: strings.Join(tags, ","),
IP: ip,
- IPLoc: util.GetIPLoc(ip),
+ IPLoc: utils.GetIPLoc(ip),
AttachmentPrice: param.AttachmentPrice,
Visibility: param.Visibility,
}
diff --git a/internal/servants/web/broker/sign.go b/internal/servants/web/broker/sign.go
index c8883638..313cc285 100644
--- a/internal/servants/web/broker/sign.go
+++ b/internal/servants/web/broker/sign.go
@@ -9,7 +9,7 @@ import (
"sort"
"github.com/rocboss/paopao-ce/internal/conf"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/sirupsen/logrus"
)
@@ -31,9 +31,9 @@ func GetParamSign(param map[string]any, secretKey string) string {
if conf.ServerSetting.RunMode == "debug" {
logrus.Info(map[string]string{
"signRaw": signRaw,
- "sysSign": util.EncodeMD5(signRaw + secretKey),
+ "sysSign": utils.EncodeMD5(signRaw + secretKey),
})
}
- return util.EncodeMD5(signRaw + secretKey)
+ return utils.EncodeMD5(signRaw + secretKey)
}
diff --git a/internal/servants/web/broker/user.go b/internal/servants/web/broker/user.go
index 136e8a8d..e1abb775 100644
--- a/internal/servants/web/broker/user.go
+++ b/internal/servants/web/broker/user.go
@@ -16,7 +16,7 @@ import (
"github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/pkg/convert"
"github.com/rocboss/paopao-ce/pkg/errcode"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/sirupsen/logrus"
)
@@ -133,7 +133,7 @@ func DoLogin(ctx *gin.Context, param *AuthRequest) (*core.User, error) {
// ValidPassword 检查密码是否一致
func ValidPassword(dbPassword, password, salt string) bool {
- return strings.Compare(dbPassword, util.EncodeMD5(util.EncodeMD5(password)+salt)) == 0
+ return strings.Compare(dbPassword, utils.EncodeMD5(utils.EncodeMD5(password)+salt)) == 0
}
// CheckStatus 检测用户权限
@@ -223,7 +223,7 @@ func CheckPhoneExist(uid int64, phone string) bool {
// EncryptPasswordAndSalt 密码加密&生成salt
func EncryptPasswordAndSalt(password string) (string, string) {
salt := uuid.Must(uuid.NewV4()).String()[:8]
- password = util.EncodeMD5(util.EncodeMD5(password) + salt)
+ password = utils.EncodeMD5(utils.EncodeMD5(password) + salt)
return password, salt
}
diff --git a/internal/servants/web/priv.go b/internal/servants/web/priv.go
index 3030b908..f072cb21 100644
--- a/internal/servants/web/priv.go
+++ b/internal/servants/web/priv.go
@@ -21,7 +21,7 @@ import (
"github.com/rocboss/paopao-ce/internal/servants/base"
"github.com/rocboss/paopao-ce/internal/servants/chain"
"github.com/rocboss/paopao-ce/pkg/convert"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/rocboss/paopao-ce/pkg/xerror"
"github.com/sirupsen/logrus"
)
@@ -271,7 +271,7 @@ func (s *privSrv) CreateTweet(req *web.CreateTweetReq) (_ *web.CreateTweetResp,
UserID: req.User.ID,
Tags: strings.Join(tags, ","),
IP: req.ClientIP,
- IPLoc: util.GetIPLoc(req.ClientIP),
+ IPLoc: utils.GetIPLoc(req.ClientIP),
AttachmentPrice: req.AttachmentPrice,
Visibility: req.Visibility,
}
@@ -402,7 +402,7 @@ func (s *privSrv) CreateCommentReply(req *web.CreateCommentReplyReq) (*web.Creat
Content: req.Content,
AtUserID: atUserID,
IP: req.ClientIP,
- IPLoc: util.GetIPLoc(req.ClientIP),
+ IPLoc: utils.GetIPLoc(req.ClientIP),
}
reply, err = s.Ds.CreateCommentReply(reply)
@@ -517,7 +517,7 @@ func (s *privSrv) CreateComment(req *web.CreateCommentReq) (_ *web.CreateComment
PostID: post.ID,
UserID: req.Uid,
IP: req.ClientIP,
- IPLoc: util.GetIPLoc(req.ClientIP),
+ IPLoc: utils.GetIPLoc(req.ClientIP),
}
comment, err = s.Ds.CreateComment(comment)
if err != nil {
diff --git a/internal/servants/web/pub.go b/internal/servants/web/pub.go
index 5b4603a4..9d63e152 100644
--- a/internal/servants/web/pub.go
+++ b/internal/servants/web/pub.go
@@ -28,7 +28,7 @@ import (
"github.com/rocboss/paopao-ce/pkg/app"
"github.com/rocboss/paopao-ce/pkg/convert"
"github.com/rocboss/paopao-ce/pkg/debug"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/rocboss/paopao-ce/pkg/xerror"
"github.com/sirupsen/logrus"
)
@@ -213,7 +213,7 @@ func (s *pubSrv) GetCaptcha() (*web.GetCaptchaResp, mir.Error) {
logrus.Errorf("png.Encode err:%s", err)
return nil, xerror.ServerError
}
- key := util.EncodeMD5(uuid.Must(uuid.NewV4()).String())
+ key := utils.EncodeMD5(uuid.Must(uuid.NewV4()).String())
// 五分钟有效期
s.Redis.SetEx(context.Background(), "PaoPaoCaptcha:"+key, password, time.Minute*5)
return &web.GetCaptchaResp{
diff --git a/internal/servants/web/routers/api/home.go b/internal/servants/web/routers/api/home.go
index 69adc363..74523992 100644
--- a/internal/servants/web/routers/api/home.go
+++ b/internal/servants/web/routers/api/home.go
@@ -21,7 +21,7 @@ import (
"github.com/rocboss/paopao-ce/pkg/convert"
"github.com/rocboss/paopao-ce/pkg/debug"
"github.com/rocboss/paopao-ce/pkg/errcode"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/sirupsen/logrus"
)
@@ -61,7 +61,7 @@ func GetCaptcha(c *gin.Context) {
emptyBuff := bytes.NewBuffer(nil)
_ = png.Encode(emptyBuff, img)
- key := util.EncodeMD5(uuid.Must(uuid.NewV4()).String())
+ key := utils.EncodeMD5(uuid.Must(uuid.NewV4()).String())
// 五分钟有效期
redisClient.SetEx(c, "PaoPaoCaptcha:"+key, password, time.Minute*5)
diff --git a/internal/servants/web/utils.go b/internal/servants/web/utils.go
index e42e03b5..93e30185 100644
--- a/internal/servants/web/utils.go
+++ b/internal/servants/web/utils.go
@@ -15,7 +15,7 @@ import (
"github.com/gofrs/uuid"
"github.com/rocboss/paopao-ce/internal/core"
"github.com/rocboss/paopao-ce/internal/model/web"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/rocboss/paopao-ce/pkg/xerror"
"github.com/sirupsen/logrus"
)
@@ -89,13 +89,13 @@ func checkPassword(password string) mir.Error {
// ValidPassword 检查密码是否一致
func validPassword(dbPassword, password, salt string) bool {
- return strings.Compare(dbPassword, util.EncodeMD5(util.EncodeMD5(password)+salt)) == 0
+ return strings.Compare(dbPassword, utils.EncodeMD5(utils.EncodeMD5(password)+salt)) == 0
}
// encryptPasswordAndSalt 密码加密&生成salt
func encryptPasswordAndSalt(password string) (string, string) {
salt := uuid.Must(uuid.NewV4()).String()[:8]
- password = util.EncodeMD5(util.EncodeMD5(password) + salt)
+ password = utils.EncodeMD5(utils.EncodeMD5(password) + salt)
return password, salt
}
diff --git a/internal/service/server.go b/internal/service/server.go
index 7ea3554d..eb009d9c 100644
--- a/internal/service/server.go
+++ b/internal/service/server.go
@@ -10,7 +10,7 @@ import (
"github.com/fatih/color"
"github.com/gin-gonic/gin"
"github.com/rocboss/paopao-ce/internal/conf"
- "github.com/rocboss/paopao-ce/pkg/util"
+ util "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/sourcegraph/conc"
)
diff --git a/main.go b/main.go
index b26d4333..fe604785 100644
--- a/main.go
+++ b/main.go
@@ -17,7 +17,7 @@ import (
"github.com/rocboss/paopao-ce/internal/conf"
"github.com/rocboss/paopao-ce/internal/service"
"github.com/rocboss/paopao-ce/pkg/debug"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
"github.com/sourcegraph/conc"
)
@@ -53,7 +53,7 @@ func flagParse() {
}
func main() {
- util.PrintHelloBanner(debug.VersionInfo())
+ utils.PrintHelloBanner(debug.VersionInfo())
ss := service.MustInitService()
if len(ss) < 1 {
fmt.Fprintln(color.Output, "no service need start so just exit")
diff --git a/mirc/web/v1/priv.go b/mirc/web/v1/priv.go
index 9c8d2af3..132e56b0 100644
--- a/mirc/web/v1/priv.go
+++ b/mirc/web/v1/priv.go
@@ -31,7 +31,7 @@ type Priv struct {
DeleteTweet func(Delete, web.DeleteTweetReq) `mir:"/post"`
// StarTweet 动态点赞操作
- StarTweet func(Post, web.StarTweetReq) web.StarTweetResp `mir:"/post/start"`
+ StarTweet func(Post, web.StarTweetReq) web.StarTweetResp `mir:"/post/star"`
// CollectionTweet 动态收藏操作
CollectionTweet func(Post, web.CollectionTweetReq) web.CollectionTweetResp `mir:"/post/collection"`
diff --git a/pkg/crypto/signature.go b/pkg/crypto/signature.go
deleted file mode 100644
index 20a6deaa..00000000
--- a/pkg/crypto/signature.go
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2022 ROC. All rights reserved.
-// Use of this source code is governed by a MIT style
-// license that can be found in the LICENSE file.
-
-package crypto
-
-import (
- "bytes"
- "crypto/aes"
- "crypto/cipher"
- "crypto/ecdsa"
- "github.com/ethereum/go-ethereum/crypto"
-)
-
-func Sign(hash []byte, privateKey *ecdsa.PrivateKey) ([]byte, error) {
- return crypto.Sign(hash, privateKey)
-}
-
-func VerifySignature(publicKey, hash, signature []byte) bool {
- return crypto.VerifySignature(publicKey, hash, signature)
-}
-
-func PKCS7Padding(ciphertext []byte, blockSize int) []byte {
- padding := blockSize - len(ciphertext)%blockSize
- padtext := bytes.Repeat([]byte{byte(padding)}, padding)
- return append(ciphertext, padtext...)
-}
-
-func PKCS7UnPadding(origData []byte) []byte {
- length := len(origData)
- unpadding := int(origData[length-1])
- return origData[:(length - unpadding)]
-}
-
-func AesEncrypt(origData, key []byte) ([]byte, error) {
- block, err := aes.NewCipher(key)
- if err != nil {
- return nil, err
- }
- blockSize := block.BlockSize()
- origData = PKCS7Padding(origData, blockSize)
- blockMode := cipher.NewCBCEncrypter(block, key[:blockSize])
- crypted := make([]byte, len(origData))
- blockMode.CryptBlocks(crypted, origData)
- return crypted, nil
-}
-
-func AesDecrypt(crypted, key []byte) ([]byte, error) {
- block, err := aes.NewCipher(key)
- if err != nil {
- return nil, err
- }
- blockSize := block.BlockSize()
- blockMode := cipher.NewCBCDecrypter(block, key[:blockSize])
- origData := make([]byte, len(crypted))
- blockMode.CryptBlocks(origData, crypted)
- origData = PKCS7UnPadding(origData)
- return origData, nil
-}
diff --git a/pkg/debug/pyroscope_embed.go b/pkg/debug/pyroscope_embed.go
index 71f7ad1d..80a9e149 100644
--- a/pkg/debug/pyroscope_embed.go
+++ b/pkg/debug/pyroscope_embed.go
@@ -44,5 +44,4 @@ func StartPyroscope() {
c.AuthToken = s.AuthToken
}
pyroscope.Start(c)
-
}
diff --git a/pkg/sign/sign.go b/pkg/sign/sign.go
deleted file mode 100644
index fc7c10e9..00000000
--- a/pkg/sign/sign.go
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2022 ROC. All rights reserved.
-// Use of this source code is governed by a MIT style
-// license that can be found in the LICENSE file.
-
-package sign
-
-import (
- "crypto/ecdsa"
- "crypto/sha256"
- "time"
-
- "github.com/fbsobreira/gotron-sdk/pkg/proto/core"
- "github.com/rocboss/paopao-ce/pkg/crypto"
- "google.golang.org/protobuf/proto"
-)
-
-// SignTransaction 签名交易
-func SignTransaction(transaction *core.Transaction, key *ecdsa.PrivateKey) ([]byte, error) {
- transaction.GetRawData().Timestamp = time.Now().UnixNano() / 1000000
- rawData, err := proto.Marshal(transaction.GetRawData())
- if err != nil {
- return nil, err
- }
- h256h := sha256.New()
- h256h.Write(rawData)
- hash := h256h.Sum(nil)
- contractList := transaction.GetRawData().GetContract()
- for range contractList {
- signature, err := crypto.Sign(hash, key)
- if err != nil {
- return nil, err
- }
- transaction.Signature = append(transaction.Signature, signature)
- }
- return hash, nil
-}
-
-func TrimLeftZeroes(s []byte) []byte {
- idx := 0
- for ; idx < len(s); idx++ {
- if s[idx] != 48 {
- break
- }
- }
- return s[idx:]
-}
diff --git a/pkg/types/json_box.go b/pkg/types/json_box.go
new file mode 100644
index 00000000..1494526a
--- /dev/null
+++ b/pkg/types/json_box.go
@@ -0,0 +1,82 @@
+// Copyright 2023 ROC. All rights reserved.
+// Use of this source code is governed by a MIT style
+// license that can be found in the LICENSE file.
+
+package types
+
+import (
+ "database/sql"
+ "database/sql/driver"
+ stdjson "encoding/json"
+ "errors"
+ "fmt"
+
+ "github.com/rocboss/paopao-ce/pkg/json"
+)
+
+var (
+ _ stdjson.Marshaler = (*JsonBox[any])(nil)
+ _ stdjson.Unmarshaler = (*JsonBox[any])(nil)
+ _ driver.Valuer = (*JsonBox[any])(nil)
+ _ sql.Scanner = (*JsonBox[any])(nil)
+ _ Boxes[any] = (*JsonBox[any])(nil)
+)
+
+// JsonBox Json box for process database/sql json data
+type JsonBox[T any] struct {
+ data T
+}
+
+func (j *JsonBox[T]) Box(t T) {
+ j.data = t
+}
+
+func (j *JsonBox[T]) Unbox() T {
+ return j.data
+}
+
+func (j *JsonBox[T]) MarshalJSON() ([]byte, error) {
+ if j == nil {
+ return []byte(`null`), nil
+ }
+ return json.Marshal(j.data)
+}
+
+func (j *JsonBox[T]) UnmarshalJSON(data []byte) error {
+ if j == nil {
+ return errors.New("JsonBox.UnmarshalJSON: on nil pointer")
+ }
+ return json.Unmarshal(data, &j.data)
+
+}
+
+func (j *JsonBox[T]) Value() (driver.Value, error) {
+ if j == nil {
+ return nil, nil
+ }
+ return j.MarshalJSON()
+}
+
+func (j *JsonBox[T]) Scan(value any) error {
+ if value == nil {
+ return nil
+ }
+ var b []byte
+ switch v := value.(type) {
+ case []byte:
+ b = v
+ case string:
+ b = []byte(v)
+ default:
+ return fmt.Errorf("JsonBox.Scan: expected []byte or string, got %T (%q)", value, value)
+ }
+ return j.UnmarshalJSON(b)
+}
+
+// NewJsonBox create a new JsonBox instance
+func NewJsonBox[T any](t ...T) *JsonBox[T] {
+ if len(t) > 0 {
+ return &JsonBox[T]{data: t[0]}
+ }
+ return &JsonBox[T]{}
+}
diff --git a/pkg/types/json_box_test.go b/pkg/types/json_box_test.go
new file mode 100644
index 00000000..b45c5a4f
--- /dev/null
+++ b/pkg/types/json_box_test.go
@@ -0,0 +1,85 @@
+// Copyright 2023 ROC. All rights reserved.
+// Use of this source code is governed by a MIT style
+// license that can be found in the LICENSE file.
+
+package types_test
+
+import (
+ "encoding/json"
+
+ . "github.com/onsi/ginkgo/v2"
+ . "github.com/onsi/gomega"
+
+ "github.com/rocboss/paopao-ce/pkg/types"
+)
+
+var _ = Describe("JsonBox", Ordered, func() {
+ type jsonCases []struct {
+ j *types.JsonBox[json.RawMessage]
+ b []byte
+ }
+ var samples jsonCases
+
+ BeforeAll(func() {
+ samples = jsonCases{
+ {
+ j: types.NewJsonBox(json.RawMessage(`null`)),
+ b: []byte(`null`),
+ },
+ {
+ j: types.NewJsonBox(json.RawMessage(`{}`)),
+ b: []byte(`{}`),
+ },
+ {
+ j: types.NewJsonBox(json.RawMessage(`[]`)),
+ b: []byte(`[]`),
+ },
+ {
+ j: types.NewJsonBox(json.RawMessage(`[{"b":true,"n":123},{"s":"foo","obj":{"f1":456,"f2":false}},[null]]`)),
+ b: []byte(`[{"b":true,"n":123},{"s":"foo","obj":{"f1":456,"f2":false}},[null]]`),
+ },
+ }
+ })
+
+ It("boxes Box and Unbox", func() {
+ for _, t := range samples {
+ jv := types.NewJsonBox[json.RawMessage]()
+ jv.Box(json.RawMessage(t.b))
+ Expect(jv.Unbox()).To(Equal(t.j.Unbox()))
+ }
+ })
+
+ It("json marshaler", func() {
+ for _, t := range samples {
+ mv, err := t.j.MarshalJSON()
+ Expect(err).To(BeNil())
+ Expect(mv).To(Equal(t.b))
+ }
+ })
+
+ It("json unmarshaler", func() {
+ for _, t := range samples {
+ jv := types.NewJsonBox[json.RawMessage]()
+ err := jv.UnmarshalJSON(t.b)
+ Expect(err).To(BeNil())
+ Expect(t.j.Unbox()).To(Equal(jv.Unbox()))
+ }
+ })
+
+ It("driver valuer", func() {
+ for _, t := range samples {
+ v, err := t.j.Value()
+ Expect(err).To(BeNil())
+ Expect(v).To(Equal(t.b))
+ }
+ })
+
+ It("sql scaner", func() {
+ for _, t := range samples {
+ jv := types.NewJsonBox[json.RawMessage]()
+ err := jv.Scan(t.b)
+ Expect(err).To(BeNil())
+ Expect(jv.Unbox()).To(Equal(t.j.Unbox()))
+ }
+ })
+})
diff --git a/pkg/types/pgx.go b/pkg/types/pgx.go
new file mode 100644
index 00000000..015897f3
--- /dev/null
+++ b/pkg/types/pgx.go
@@ -0,0 +1,18 @@
+// Copyright 2023 ROC. All rights reserved.
+// Use of this source code is governed by a MIT style
+// license that can be found in the LICENSE file.
+
+package types
+
+import (
+ "github.com/jackc/pgx/v5/pgtype"
+)
+
+// PgxArray returns an object usable by pg drivers for passing a []T slice
+// into a database as type T[].
+func PgxArray[T any](elements []T) pgtype.Array[T] {
+ return pgtype.Array[T]{
+ Elements: elements,
+ Dims: []pgtype.ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
+ }
+}
diff --git a/pkg/types/types.go b/pkg/types/types.go
index 32da1431..e2bb9331 100644
--- a/pkg/types/types.go
+++ b/pkg/types/types.go
@@ -4,21 +4,14 @@
package types
-import (
- "github.com/jackc/pgx/v5/pgtype"
-)
-
// Empty empty alias type
type Empty = struct{}
// Fn empty argument func alias type
type Fn = func()
-// PgxArray returns an object usable by pg drivers for passing a []T slice
-// into a database as type T[].
-func PgxArray[T any](elements []T) pgtype.Array[T] {
- return pgtype.Array[T]{
- Elements: elements,
- Dims: []pgtype.ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
- }
+// Boxes Box/Unbox interface
+type Boxes[T any] interface {
+ Box(t T)
+ Unbox() T
}
diff --git a/pkg/types/types_suite_test.go b/pkg/types/types_suite_test.go
new file mode 100644
index 00000000..18ffa976
--- /dev/null
+++ b/pkg/types/types_suite_test.go
@@ -0,0 +1,17 @@
+// Copyright 2023 ROC. All rights reserved.
+// Use of this source code is governed by a MIT style
+// license that can be found in the LICENSE file.
+
+package types_test
+
+import (
+ "testing"
+
+ . "github.com/onsi/ginkgo/v2"
+ . "github.com/onsi/gomega"
+)
+
+func TestTypes(t *testing.T) {
+ RegisterFailHandler(Fail)
+ RunSpecs(t, "Types Suite")
+}
diff --git a/pkg/util/util_suite_test.go b/pkg/util/util_suite_test.go
deleted file mode 100644
index 6d6903e9..00000000
--- a/pkg/util/util_suite_test.go
+++ /dev/null
@@ -1,13 +0,0 @@
-package util_test
-
-import (
- "testing"
-
- . "github.com/onsi/ginkgo/v2"
- . "github.com/onsi/gomega"
-)
-
-func TestUtil(t *testing.T) {
- RegisterFailHandler(Fail)
- RunSpecs(t, "Util Suite")
-}
diff --git a/pkg/util/banner.go b/pkg/utils/banner.go
similarity index 97%
rename from pkg/util/banner.go
rename to pkg/utils/banner.go
index b8f16971..6862273d 100644
--- a/pkg/util/banner.go
+++ b/pkg/utils/banner.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
-package util
+package utils
import (
"fmt"
diff --git a/pkg/util/ip.go b/pkg/utils/ip.go
similarity index 77%
rename from pkg/util/ip.go
rename to pkg/utils/ip.go
index 4561d8a6..8e812995 100644
--- a/pkg/util/ip.go
+++ b/pkg/utils/ip.go
@@ -2,9 +2,9 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
-package util
+package utils
-import "github.com/rocboss/paopao-ce/pkg/util/iploc"
+import "github.com/rocboss/paopao-ce/pkg/utils/iploc"
func GetIPLoc(ip string) string {
country, _ := iploc.Find(ip)
diff --git a/pkg/util/ip_test.go b/pkg/utils/ip_test.go
similarity index 83%
rename from pkg/util/ip_test.go
rename to pkg/utils/ip_test.go
index 9e173d70..863d20b4 100644
--- a/pkg/util/ip_test.go
+++ b/pkg/utils/ip_test.go
@@ -2,13 +2,13 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
-package util_test
+package utils_test
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
)
var _ = Describe("Ip", Ordered, func() {
@@ -33,7 +33,7 @@ var _ = Describe("Ip", Ordered, func() {
It("get ip location", func() {
for _, t := range samples {
- Expect(util.GetIPLoc(t.ip)).To(Equal(t.location))
+ Expect(utils.GetIPLoc(t.ip)).To(Equal(t.location))
}
})
})
diff --git a/pkg/util/iploc/iploc.go b/pkg/utils/iploc/iploc.go
similarity index 100%
rename from pkg/util/iploc/iploc.go
rename to pkg/utils/iploc/iploc.go
diff --git a/pkg/util/iploc/iploc_suite_test.go b/pkg/utils/iploc/iploc_suite_test.go
similarity index 100%
rename from pkg/util/iploc/iploc_suite_test.go
rename to pkg/utils/iploc/iploc_suite_test.go
diff --git a/pkg/util/iploc/iploc_test.go b/pkg/utils/iploc/iploc_test.go
similarity index 94%
rename from pkg/util/iploc/iploc_test.go
rename to pkg/utils/iploc/iploc_test.go
index b807b101..1d06ff27 100644
--- a/pkg/util/iploc/iploc_test.go
+++ b/pkg/utils/iploc/iploc_test.go
@@ -8,7 +8,7 @@ import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
- "github.com/rocboss/paopao-ce/pkg/util/iploc"
+ "github.com/rocboss/paopao-ce/pkg/utils/iploc"
)
var _ = Describe("Iploc", Ordered, func() {
diff --git a/pkg/util/iploc/qqwry.dat b/pkg/utils/iploc/qqwry.dat
similarity index 100%
rename from pkg/util/iploc/qqwry.dat
rename to pkg/utils/iploc/qqwry.dat
diff --git a/pkg/util/md5.go b/pkg/utils/md5.go
similarity index 95%
rename from pkg/util/md5.go
rename to pkg/utils/md5.go
index 477cd5ff..d9b1e908 100644
--- a/pkg/util/md5.go
+++ b/pkg/utils/md5.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
-package util
+package utils
import (
"crypto/md5"
diff --git a/pkg/util/md5_test.go b/pkg/utils/md5_test.go
similarity index 86%
rename from pkg/util/md5_test.go
rename to pkg/utils/md5_test.go
index 248ab748..7fa71ed9 100644
--- a/pkg/util/md5_test.go
+++ b/pkg/utils/md5_test.go
@@ -2,13 +2,13 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
-package util_test
+package utils_test
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
- "github.com/rocboss/paopao-ce/pkg/util"
+ "github.com/rocboss/paopao-ce/pkg/utils"
)
var _ = Describe("Md5", Ordered, func() {
@@ -37,8 +37,7 @@ var _ = Describe("Md5", Ordered, func() {
It("encode md5", func() {
for _, t := range samples {
- Expect(util.EncodeMD5(t.value)).To(Equal(t.md5))
+ Expect(utils.EncodeMD5(t.value)).To(Equal(t.md5))
}
})
-
})
diff --git a/pkg/util/str.go b/pkg/utils/str.go
similarity index 98%
rename from pkg/util/str.go
rename to pkg/utils/str.go
index 8b62217d..a69f02ec 100644
--- a/pkg/util/str.go
+++ b/pkg/utils/str.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a MIT style
// license that can be found in the LICENSE file.
-package util
+package utils
import (
"math/rand"
diff --git a/pkg/utils/utils_suite_test.go b/pkg/utils/utils_suite_test.go
new file mode 100644
index 00000000..9e442d2d
--- /dev/null
+++ b/pkg/utils/utils_suite_test.go
@@ -0,0 +1,17 @@
+// Copyright 2022 ROC. All rights reserved.
+// Use of this source code is governed by a MIT style
+// license that can be found in the LICENSE file.
+
+package utils_test
+
+import (
+ "testing"
+
+ . "github.com/onsi/ginkgo/v2"
+ . "github.com/onsi/gomega"
+)
+
+func TestUtil(t *testing.T) {
+ RegisterFailHandler(Fail)
+ RunSpecs(t, "Utils Suite")
+}
diff --git a/scripts/migration/mysql/0002_post_visibility.down.sql b/scripts/migration/mysql/0002_post_visibility.down.sql
index 5b61db49..bc0931c8 100644
--- a/scripts/migration/mysql/0002_post_visibility.down.sql
+++ b/scripts/migration/mysql/0002_post_visibility.down.sql
@@ -1,3 +1 @@
ALTER TABLE `p_post` DROP COLUMN `visibility`;
-
-DROP INDEX `idx_visibility` ON `p_post`;
diff --git a/scripts/migration/mysql/0002_post_visibility.up.sql b/scripts/migration/mysql/0002_post_visibility.up.sql
index 349d0553..8b8770e6 100644
--- a/scripts/migration/mysql/0002_post_visibility.up.sql
+++ b/scripts/migration/mysql/0002_post_visibility.up.sql
@@ -1,3 +1,2 @@
ALTER TABLE `p_post` ADD COLUMN `visibility` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '可见性 0公开 1私密 2好友可见';
-
CREATE INDEX `idx_visibility` ON `p_post` ( `visibility` ) USING BTREE;
diff --git a/scripts/migration/mysql/0004_optimize_idx.down.sql b/scripts/migration/mysql/0004_optimize_idx.down.sql
new file mode 100644
index 00000000..29a27a3d
--- /dev/null
+++ b/scripts/migration/mysql/0004_optimize_idx.down.sql
@@ -0,0 +1,66 @@
+ALTER TABLE `p_attachment`
+ RENAME KEY `idx_attachment_user_id` TO `idx_user`;
+
+ALTER TABLE `p_captcha`
+ RENAME KEY `idx_captcha_phone` TO `idx_phone`,
+ RENAME KEY `idx_captcha_expired_on` TO `idx_expired_on`,
+ RENAME KEY `idx_captcha_use_times` TO `idx_use_times`;
+
+ALTER TABLE `p_comment`
+ RENAME KEY `idx_comment_post_id` TO `idx_post`,
+ RENAME KEY `idx_comment_user_id` TO `idx_user`;
+
+ALTER TABLE `p_comment_content`
+ RENAME KEY `idx_comment_content_comment_id` TO `idx_reply`,
+ RENAME KEY `idx_comment_content_user_id` TO `idx_user`,
+ RENAME KEY `idx_comment_content_type` TO `idx_type`,
+ RENAME KEY `idx_comment_content_sort` TO `idx_sort`;
+
+ALTER TABLE `p_comment_reply`
+ RENAME KEY `idx_comment_reply_comment_id` TO `idx_comment`;
+
+ALTER TABLE `p_message`
+ RENAME KEY `idx_message_receiver_user_id` TO `idx_receiver`,
+ RENAME KEY `idx_message_is_read` TO `idx_is_read`,
+ RENAME KEY `idx_message_type` TO `idx_type`;
+
+ALTER TABLE `p_post`
+ RENAME KEY `idx_post_user_id` TO `idx_user`,
+ RENAME KEY `idx_post_visibility` TO `idx_visibility`;
+
+ALTER TABLE `p_post_attachment_bill`
+ RENAME KEY `idx_post_attachment_bill_post_id` TO `idx_post`,
+ RENAME KEY `idx_post_attachment_bill_user_id` TO `idx_user`;
+
+ALTER TABLE `p_post_collection`
+ RENAME KEY `idx_post_collection_post_id` TO `idx_post`,
+ RENAME KEY `idx_post_collection_user_id` TO `idx_user`;
+
+ALTER TABLE `p_post_content`
+ RENAME KEY `idx_post_content_post_id` TO `idx_post`,
+ RENAME KEY `idx_post_content_user_id` TO `idx_user`;
+
+ALTER TABLE `p_post_star`
+ RENAME KEY `idx_post_star_post_id` TO `idx_post`,
+ RENAME KEY `idx_post_star_user_id` TO `idx_user`;
+
+ALTER TABLE `p_tag`
+ RENAME KEY `idx_tag_user_id` TO `idx_user`,
+ RENAME KEY `idx_tag_quote_num` TO `idx_num`;
+
+ALTER TABLE `p_user`
+ RENAME KEY `idx_user_username` TO `idx_username`,
+ RENAME KEY `idx_user_phone` TO `idx_phone`;
+
+ALTER TABLE `p_wallet_recharge`
+ RENAME KEY `idx_wallet_recharge_user_id` TO `idx_user`,
+ RENAME KEY `idx_wallet_recharge_trade_no` TO `idx_trade_no`,
+ RENAME KEY `idx_wallet_recharge_trade_status` TO `idx_trade_status`;
+
+ALTER TABLE `p_wallet_statement`
+ RENAME KEY `idx_wallet_statement_user_id` TO `idx_user`;
+
+ALTER TABLE `p_contact`
+ RENAME KEY `idx_contact_user_friend` TO `idx_user_friend_id`,
+ RENAME KEY `idx_contact_user_friend_status` TO `idx_user_friend_status`;
+
\ No newline at end of file
diff --git a/scripts/migration/mysql/0004_optimize_idx.up.sql b/scripts/migration/mysql/0004_optimize_idx.up.sql
new file mode 100644
index 00000000..b87a7973
--- /dev/null
+++ b/scripts/migration/mysql/0004_optimize_idx.up.sql
@@ -0,0 +1,65 @@
+ALTER TABLE `p_attachment`
+ RENAME KEY `idx_user` TO `idx_attachment_user_id`;
+
+ALTER TABLE `p_captcha`
+ RENAME KEY `idx_phone` TO `idx_captcha_phone`,
+ RENAME KEY `idx_expired_on` TO `idx_captcha_expired_on`,
+ RENAME KEY `idx_use_times` TO `idx_captcha_use_times`;
+
+ALTER TABLE `p_comment`
+ RENAME KEY `idx_post` TO `idx_comment_post_id`,
+ RENAME KEY `idx_user` TO `idx_comment_user_id`;
+
+ALTER TABLE `p_comment_content`
+ RENAME KEY `idx_reply` TO `idx_comment_content_comment_id`,
+ RENAME KEY `idx_user` TO `idx_comment_content_user_id`,
+ RENAME KEY `idx_type` TO `idx_comment_content_type`,
+ RENAME KEY `idx_sort` TO `idx_comment_content_sort`;
+
+ALTER TABLE `p_comment_reply`
+ RENAME KEY `idx_comment` TO `idx_comment_reply_comment_id`;
+
+ALTER TABLE `p_message`
+ RENAME KEY `idx_receiver` TO `idx_message_receiver_user_id`,
+ RENAME KEY `idx_is_read` TO `idx_message_is_read`,
+ RENAME KEY `idx_type` TO `idx_message_type`;
+
+ALTER TABLE `p_post`
+ RENAME KEY `idx_user` TO `idx_post_user_id`,
+ RENAME KEY `idx_visibility` TO `idx_post_visibility`;
+
+ALTER TABLE `p_post_attachment_bill`
+ RENAME KEY `idx_post` TO `idx_post_attachment_bill_post_id`,
+ RENAME KEY `idx_user` TO `idx_post_attachment_bill_user_id`;
+
+ALTER TABLE `p_post_collection`
+ RENAME KEY `idx_post` TO `idx_post_collection_post_id`,
+ RENAME KEY `idx_user` TO `idx_post_collection_user_id`;
+
+ALTER TABLE `p_post_content`
+ RENAME KEY `idx_post` TO `idx_post_content_post_id`,
+ RENAME KEY `idx_user` TO `idx_post_content_user_id`;
+
+ALTER TABLE `p_post_star`
+ RENAME KEY `idx_post` TO `idx_post_star_post_id`,
+ RENAME KEY `idx_user` TO `idx_post_star_user_id`;
+
+ALTER TABLE `p_tag`
+ RENAME KEY `idx_user` TO `idx_tag_user_id`,
+ RENAME KEY `idx_num` TO `idx_tag_quote_num`;
+
+ALTER TABLE `p_user`
+ RENAME KEY `idx_username` TO `idx_user_username`,
+ RENAME KEY `idx_phone` TO `idx_user_phone`;
+
+ALTER TABLE `p_wallet_recharge`
+ RENAME KEY `idx_user` TO `idx_wallet_recharge_user_id`,
+ RENAME KEY `idx_trade_no` TO `idx_wallet_recharge_trade_no`,
+ RENAME KEY `idx_trade_status` TO `idx_wallet_recharge_trade_status`;
+
+ALTER TABLE `p_wallet_statement`
+ RENAME KEY `idx_user` To `idx_wallet_statement_user_id`;
+
+ALTER TABLE `p_contact`
+ RENAME KEY `idx_user_friend_id` TO `idx_contact_user_friend`,
+ RENAME KEY `idx_user_friend_status` TO `idx_contact_user_friend_status`;
diff --git a/scripts/migration/postgres/0001_initialize_schema.down.sql b/scripts/migration/postgres/0001_initialize_schema.down.sql
index 3ce95155..52326aff 100644
--- a/scripts/migration/postgres/0001_initialize_schema.down.sql
+++ b/scripts/migration/postgres/0001_initialize_schema.down.sql
@@ -1 +1,16 @@
--- TODO: WIP
+DROP TABLE IF EXISTS p_attachment;
+DROP TABLE IF EXISTS p_captcha;
+DROP TABLE IF EXISTS p_comment;
+DROP TABLE IF EXISTS p_comment_content;
+DROP TABLE IF EXISTS p_comment_reply;
+DROP TABLE IF EXISTS p_message;
+DROP TABLE IF EXISTS p_post;
+DROP TABLE IF EXISTS p_post_attachment_bill;
+DROP TABLE IF EXISTS p_post_collection;
+DROP TABLE IF EXISTS p_post_content;
+DROP TABLE IF EXISTS p_post_star;
+DROP TABLE IF EXISTS p_tag;
+DROP TABLE IF EXISTS p_user;
+DROP TABLE IF EXISTS p_wallet_recharge;
+DROP TABLE IF EXISTS p_wallet_statement;
+DROP SEQUENCE IF EXISTS post_id_seq;
diff --git a/scripts/migration/postgres/0001_initialize_schema.up.sql b/scripts/migration/postgres/0001_initialize_schema.up.sql
index 3ce95155..cfaccf28 100644
--- a/scripts/migration/postgres/0001_initialize_schema.up.sql
+++ b/scripts/migration/postgres/0001_initialize_schema.up.sql
@@ -1 +1,232 @@
--- TODO: WIP
+CREATE TABLE p_attachment (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ file_size BIGINT NOT NULL,
+ img_width BIGINT NOT NULL DEFAULT 0,
+ img_height BIGINT NOT NULL DEFAULT 0,
+ "type" SMALLINT NOT NULL DEFAULT 1, -- 1图片、2视频、3其他附件
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除
+);
+CREATE INDEX idx_attachment_user_id ON p_attachment USING btree (id);
+
+CREATE TABLE p_captcha (
+ id BIGSERIAL PRIMARY KEY,
+ phone VARCHAR(16),
+ captcha VARCHAR(16),
+ use_times INTEGER NOT NULL DEFAULT 0,
+ expired_on BIGINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除'
+);
+CREATE INDEX idx_captcha_phone ON p_captcha USING btree (phone);
+CREATE INDEX idx_captcha_expired_on ON p_captcha USING btree (expired_on);
+CREATE INDEX idx_captcha_use_times ON p_captcha USING btree (use_times);
+
+CREATE TABLE p_comment (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ ip VARCHAR(64) NOT NULL DEFAULT '',
+ ip_loc VARCHAR(64) NOT NULL DEFAULT '',
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_comment_post_id ON p_comment USING btree (post_id);
+CREATE INDEX idx_comment_user_id ON p_comment USING btree (user_id);
+
+CREATE TABLE p_comment_content (
+ id BIGSERIAL PRIMARY KEY,
+ comment_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,
+ sort BIGINT NOT NULL DEFAULT 100,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_comment_content_comment_id ON p_comment_content USING btree (comment_id);
+CREATE INDEX idx_comment_content_user_id ON p_comment_content USING btree (user_id);
+CREATE INDEX idx_comment_content_type ON p_comment_content USING btree ("type");
+CREATE INDEX idx_comment_content_sort ON p_comment_content USING btree (sort);
+
+CREATE TABLE p_comment_reply (
+ id BIGSERIAL PRIMARY KEY,
+ comment_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ at_user_id BIGINT NOT NULL DEFAULT 0,
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ ip VARCHAR(64) NOT NULL DEFAULT '',
+ ip_loc VARCHAR(64) NOT NULL DEFAULT '',
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_comment_reply_comment_id ON p_comment_reply USING btree (comment_id);
+
+CREATE TABLE p_message (
+ id BIGSERIAL PRIMARY KEY,
+ sender_user_id BIGINT NOT NULL DEFAULT 0,
+ receiver_user_id BIGINT NOT NULL DEFAULT 0,
+ type SMALLINT NOT NULL DEFAULT 1,
+ brief VARCHAR(255) NOT NULL DEFAULT '',
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ post_id BIGINT NOT NULL DEFAULT 0,
+ comment_id BIGINT NOT NULL DEFAULT 0,
+ reply_id BIGINT NOT NULL DEFAULT 0,
+ is_read SMALLINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_message_receiver_user_id ON p_message USING btree (receiver_user_id);
+CREATE INDEX idx_message_is_read ON p_message USING btree (is_read);
+CREATE INDEX idx_message_type ON p_message USING btree ("type");
+
+CREATE SEQUENCE IF NOT EXISTS post_id_seq AS BIGINT MINVALUE 1080017989 NO MAXVALUE;
+CREATE TABLE p_post (
+ id BIGINT NOT NULL DEFAULT nextval('post_id_seq'::regclass),
+ user_id BIGINT NOT NULL DEFAULT 0,
+ comment_count BIGINT NOT NULL DEFAULT 0,
+ collection_count BIGINT NOT NULL DEFAULT 0,
+ upvote_count BIGINT NOT NULL DEFAULT 0,
+ is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶
+ is_essence SMALLINT NOT NULL DEFAULT 0, -- 是否精华
+ is_lock SMALLINT NOT NULL DEFAULT 0, -- 是否锁定
+ latest_replied_on BIGINT NOT NULL DEFAULT 0, -- 最新回复时间
+ tags VARCHAR(255) NOT NULL DEFAULT '',
+ attachment_price BIGINT NOT NULL DEFAULT 0, -- 附件价格(分)
+ ip VARCHAR(64) NOT NULL DEFAULT '', -- IP地址
+ ip_loc VARCHAR(64) NOT NULL DEFAULT '', -- IP城市地址
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0,
+ PRIMARY KEY (id)
+);
+CREATE INDEX idx_post_user_id ON p_post USING btree (user_id);
+
+CREATE TABLE p_post_attachment_bill (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ paid_amount BIGINT NOT NULL DEFAULT 0, -- 支付金额
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_post_attachment_bill_post_id ON p_post_attachment_bill USING btree (post_id);
+CREATE INDEX idx_post_attachment_bill_user_id ON p_post_attachment_bill USING btree (user_id);
+
+CREATE TABLE p_post_collection (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_post_collection_post_id ON p_post_collection USING btree (post_id);
+CREATE INDEX idx_post_collection_user_id ON p_post_collection USING btree (user_id);
+
+CREATE TABLE p_post_content (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ content VARCHAR(2000) NOT NULL DEFAULT '',
+ "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源
+ sort SMALLINT NOT NULL DEFAULT 100,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_post_content_post_id ON p_post_content USING btree (post_id);
+CREATE INDEX idx_post_content_user_id ON p_post_content USING btree (user_id);
+
+CREATE TABLE p_post_star (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_post_star_post_id ON p_post_star USING btree (post_id);
+CREATE INDEX idx_post_star_user_id ON p_post_star USING btree (user_id);
+
+CREATE TABLE p_tag (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ tag VARCHAR(255) NOT NULL,
+ quote_num BIGINT NOT NULL DEFAULT 0, -- 引用数
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE UNIQUE INDEX idx_tag_tag ON p_tag USING btree (tag);
+CREATE INDEX idx_tag_user_id ON p_tag USING btree (user_id);
+CREATE INDEX idx_tag_quote_num ON p_tag USING btree (quote_num);
+
+CREATE TABLE p_user (
+ id BIGSERIAL PRIMARY KEY,
+ nickname VARCHAR(32) NOT NULL DEFAULT '',
+ username VARCHAR(32) NOT NULL DEFAULT '',
+ phone VARCHAR(16) NOT NULL DEFAULT '', -- 手机号
+ password VARCHAR(32) NOT NULL DEFAULT '', -- MD5密码
+ salt VARCHAR(16) NOT NULL DEFAULT '', -- 盐值
+ status SMALLINT NOT NULL DEFAULT 1, -- 状态,1正常,2停用
+ avatar VARCHAR(255) NOT NULL DEFAULT '',
+ balance BIGINT NOT NULL, -- 用户余额(分)
+ is_admin BOOLEAN NOT NULL DEFAULT false, -- 是否管理员
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE UNIQUE INDEX idx_user_username ON p_user USING btree (username);
+CREATE INDEX idx_user_phone ON p_user USING btree (phone);
+
+CREATE TABLE p_wallet_recharge (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ amount BIGINT NOT NULL DEFAULT 0, -- 充值金额
+ trade_no VARCHAR(64) NOT NULL DEFAULT '', -- 支付宝订单号
+ trade_status VARCHAR(32) NOT NULL DEFAULT '', -- 交易状态
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0 为未删除、1 为已删除
+);
+CREATE INDEX idx_wallet_recharge_user_id ON p_wallet_recharge USING btree (user_id);
+CREATE INDEX idx_wallet_recharge_trade_no ON p_wallet_recharge USING btree (trade_no);
+CREATE INDEX idx_wallet_recharge_trade_status ON p_wallet_recharge USING btree (trade_status);
+
+CREATE TABLE p_wallet_statement (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ change_amount BIGINT NOT NULL DEFAULT 0, -- 变动金额
+ balance_snapshot BIGINT NOT NULL DEFAULT 0, -- 资金快照
+ reason VARCHAR(255) NOT NULL, -- 变动原因
+ post_id BIGINT NOT NULL DEFAULT 0, -- 关联动态
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
+);
+CREATE INDEX idx_wallet_statement_user_id ON p_wallet_statement USING btree (user_id);
diff --git a/scripts/migration/postgres/0002_post_visibility.down.sql b/scripts/migration/postgres/0002_post_visibility.down.sql
index 3ce95155..2c9986ac 100644
--- a/scripts/migration/postgres/0002_post_visibility.down.sql
+++ b/scripts/migration/postgres/0002_post_visibility.down.sql
@@ -1 +1 @@
--- TODO: WIP
+ALTER TABLE p_post DROP COLUMN visibility;
diff --git a/scripts/migration/postgres/0002_post_visibility.up.sql b/scripts/migration/postgres/0002_post_visibility.up.sql
index 3ce95155..673432ab 100644
--- a/scripts/migration/postgres/0002_post_visibility.up.sql
+++ b/scripts/migration/postgres/0002_post_visibility.up.sql
@@ -1 +1 @@
--- TODO: WIP
+ALTER TABLE p_post ADD COLUMN visibility SMALLINT NOT NULL DEFAULT 0; -- 可见性 0公开 1私密 2好友可见
diff --git a/scripts/migration/postgres/0003_feature_contact.down.sql b/scripts/migration/postgres/0003_feature_contact.down.sql
index 3ce95155..d3eb2b4e 100644
--- a/scripts/migration/postgres/0003_feature_contact.down.sql
+++ b/scripts/migration/postgres/0003_feature_contact.down.sql
@@ -1 +1,2 @@
--- TODO: WIP
+DROP TABLE IF EXISTS p_contact;
+DROP TABLE IF EXISTS p_contact_group;
diff --git a/scripts/migration/postgres/0003_feature_contact.up.sql b/scripts/migration/postgres/0003_feature_contact.up.sql
index 3ce95155..9177db77 100644
--- a/scripts/migration/postgres/0003_feature_contact.up.sql
+++ b/scripts/migration/postgres/0003_feature_contact.up.sql
@@ -1 +1,27 @@
--- TODO: WIP
+CREATE TABLE p_contact (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL,
+ friend_id BIGINT NOT NULL,
+ group_id BIGINT NOT NULL DEFAULT 0, -- 好友分组ID:默认为0无分组
+ remark VARCHAR(32) NOT NULL DEFAULT '', -- 好友备注
+ status SMALLINT NOT NULL DEFAULT 0, -- 好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友
+ is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶, 0否, 1是
+ is_black SMALLINT NOT NULL DEFAULT 0, -- 是否为黑名单, 0否, 1是
+ is_del SMALLINT NOT NULL DEFAULT 0, -- 否删除好友, 0否, 1是
+ notice_enable SMALLINT NOT NULL DEFAULT 0, -- 是否有消息提醒, 0否, 1是
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0
+);
+CREATE UNIQUE INDEX idx_contact_user_friend ON p_contact USING btree (user_id,friend_id);
+CREATE INDEX idx_contact_user_friend_status ON p_contact USING btree (user_id, friend_id, status);
+
+CREATE TABLE p_contact_group (
+ id BIGSERIAL PRIMARY KEY,
+ user_id int NOT NULL DEFAULT 0,
+ name VARCHAR(32) NOT NULL DEFAULT '', -- 分组名称
+ is_del SMALLINT NOT NULL DEFAULT 1, -- 是否删除, 0否, 1是
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0
+);
diff --git a/scripts/migration/sqlite3/0002_post_visibility.down.sql b/scripts/migration/sqlite3/0002_post_visibility.down.sql
index 551017c1..bc0931c8 100644
--- a/scripts/migration/sqlite3/0002_post_visibility.down.sql
+++ b/scripts/migration/sqlite3/0002_post_visibility.down.sql
@@ -1,3 +1 @@
ALTER TABLE `p_post` DROP COLUMN `visibility`;
-
-DROP INDEX "main"."idx_visibility" ON "p_post"
diff --git a/scripts/migration/sqlite3/0004_optimize_idx.down.sql b/scripts/migration/sqlite3/0004_optimize_idx.down.sql
new file mode 100644
index 00000000..f0bd5fe4
--- /dev/null
+++ b/scripts/migration/sqlite3/0004_optimize_idx.down.sql
@@ -0,0 +1,39 @@
+PRAGMA foreign_keys = false;
+
+DROP INDEX IF EXISTS "idx_attachment_user_id";
+DROP INDEX IF EXISTS "idx_captcha_expired_on";
+DROP INDEX IF EXISTS "idx_captcha_phone";
+DROP INDEX IF EXISTS "idx_captcha_use_times";
+DROP INDEX IF EXISTS "idx_comment_post_id";
+DROP INDEX IF EXISTS "idx_comment_user_id";
+DROP INDEX IF EXISTS "idx_comment_content_comment_id";
+DROP INDEX IF EXISTS "idx_comment_content_sort";
+DROP INDEX IF EXISTS "idx_comment_content_type";
+DROP INDEX IF EXISTS "idx_comment_content_user_id";
+DROP INDEX IF EXISTS "idx_comment_reply_comment_id";
+DROP INDEX IF EXISTS "idx_contact_user_friend";
+DROP INDEX IF EXISTS "idx_contact_user_friend_status";
+DROP INDEX IF EXISTS "idx_message_is_read";
+DROP INDEX IF EXISTS "idx_message_receiver_user_id";
+DROP INDEX IF EXISTS "idx_message_type";
+DROP INDEX IF EXISTS "idx_post_user_id";
+DROP INDEX IF EXISTS "idx_post_visibility";
+DROP INDEX IF EXISTS "idx_post_attachment_bill_post_id";
+DROP INDEX IF EXISTS "idx_post_attachment_bill_user_id";
+DROP INDEX IF EXISTS "idx_post_collection_post_id";
+DROP INDEX IF EXISTS "idx_post_collection_user_id";
+DROP INDEX IF EXISTS "idx_post_content_post_id";
+DROP INDEX IF EXISTS "idx_post_content_user_id";
+DROP INDEX IF EXISTS "idx_post_star_post_id";
+DROP INDEX IF EXISTS "idx_post_star_user_id";
+DROP INDEX IF EXISTS "idx_tag";
+DROP INDEX IF EXISTS "idx_tag_quote_num";
+DROP INDEX IF EXISTS "idx_tag_user_id";
+DROP INDEX IF EXISTS "idx_user_phone";
+DROP INDEX IF EXISTS "idx_user_username";
+DROP INDEX IF EXISTS "idx_wallet_recharge_trade_no";
+DROP INDEX IF EXISTS "idx_wallet_recharge_trade_status";
+DROP INDEX IF EXISTS "idx_wallet_recharge_user_id";
+DROP INDEX IF EXISTS "idx_wallet_statement_user_id";
+
+PRAGMA foreign_keys = true;
diff --git a/scripts/migration/sqlite3/0004_optimize_idx.up.sql b/scripts/migration/sqlite3/0004_optimize_idx.up.sql
new file mode 100644
index 00000000..006565ae
--- /dev/null
+++ b/scripts/migration/sqlite3/0004_optimize_idx.up.sql
@@ -0,0 +1,219 @@
+PRAGMA foreign_keys = false;
+
+DROP INDEX IF EXISTS "main"."idx_user";
+DROP INDEX IF EXISTS "main"."idx_expired_on";
+DROP INDEX IF EXISTS "main"."idx_phone";
+DROP INDEX IF EXISTS "main"."idx_use_times";
+DROP INDEX IF EXISTS "main"."idx_post";
+DROP INDEX IF EXISTS "main"."idx_user_friend_id";
+DROP INDEX IF EXISTS "main"."idx_user_friend_status";
+DROP INDEX IF EXISTS "main"."idx_visibility";
+
+-- ----------------------------
+-- Indexes structure for table p_attachment
+-- ----------------------------
+CREATE INDEX "idx_attachment_user_id"
+ON "p_attachment" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_captcha
+-- ----------------------------
+CREATE INDEX "idx_captcha_expired_on"
+ON "p_captcha" (
+ "expired_on" ASC
+);
+CREATE INDEX "idx_captcha_phone"
+ON "p_captcha" (
+ "phone" ASC
+);
+CREATE INDEX "idx_captcha_use_times"
+ON "p_captcha" (
+ "use_times" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_comment
+-- ----------------------------
+CREATE INDEX "idx_comment_post_id"
+ON "p_comment" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_comment_user_id"
+ON "p_comment" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_comment_content
+-- ----------------------------
+CREATE INDEX "idx_comment_content_comment_id"
+ON "p_comment_content" (
+ "comment_id" ASC
+);
+CREATE INDEX "idx_comment_content_sort"
+ON "p_comment_content" (
+ "sort" ASC
+);
+CREATE INDEX "idx_comment_content_type"
+ON "p_comment_content" (
+ "type" ASC
+);
+CREATE INDEX "idx_comment_content_user_id"
+ON "p_comment_content" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_comment_reply
+-- ----------------------------
+CREATE INDEX "idx_comment_reply_comment_id"
+ON "p_comment_reply" (
+ "comment_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_contact
+-- ----------------------------
+CREATE UNIQUE INDEX "idx_contact_user_friend"
+ON "p_contact" (
+ "user_id" ASC,
+ "friend_id" ASC
+);
+CREATE INDEX "idx_contact_user_friend_status"
+ON "p_contact" (
+ "user_id" ASC,
+ "friend_id" ASC,
+ "status" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_message
+-- ----------------------------
+CREATE INDEX "idx_message_is_read"
+ON "p_message" (
+ "is_read" ASC
+);
+CREATE INDEX "idx_message_receiver_user_id"
+ON "p_message" (
+ "receiver_user_id" ASC
+);
+CREATE INDEX "idx_message_type"
+ON "p_message" (
+ "type" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post
+-- ----------------------------
+CREATE INDEX "idx_post_user_id"
+ON "p_post" (
+ "user_id" ASC
+);
+CREATE INDEX "idx_post_visibility"
+ON "p_post" (
+ "visibility" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_attachment_bill
+-- ----------------------------
+CREATE INDEX "idx_post_attachment_bill_post_id"
+ON "p_post_attachment_bill" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_attachment_bill_user_id"
+ON "p_post_attachment_bill" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_collection
+-- ----------------------------
+CREATE INDEX "idx_post_collection_post_id"
+ON "p_post_collection" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_collection_user_id"
+ON "p_post_collection" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_content
+-- ----------------------------
+CREATE INDEX "idx_post_content_post_id"
+ON "p_post_content" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_content_user_id"
+ON "p_post_content" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_star
+-- ----------------------------
+CREATE INDEX "idx_post_star_post_id"
+ON "p_post_star" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_star_user_id"
+ON "p_post_star" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_tag
+-- ----------------------------
+CREATE UNIQUE INDEX "idx_tag"
+ON "p_tag" (
+ "tag" ASC
+);
+CREATE INDEX "idx_tag_quote_num"
+ON "p_tag" (
+ "quote_num" ASC
+);
+CREATE INDEX "idx_tag_user_id"
+ON "p_tag" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_user
+-- ----------------------------
+CREATE INDEX "idx_user_phone"
+ON "p_user" (
+ "phone" ASC
+);
+CREATE UNIQUE INDEX "idx_user_username"
+ON "p_user" (
+ "username" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_wallet_recharge
+-- ----------------------------
+CREATE INDEX "idx_wallet_recharge_trade_no"
+ON "p_wallet_recharge" (
+ "trade_no" ASC
+);
+CREATE INDEX "idx_wallet_recharge_trade_status"
+ON "p_wallet_recharge" (
+ "trade_status" ASC
+);
+CREATE INDEX "idx_wallet_recharge_user_id"
+ON "p_wallet_recharge" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_wallet_statement
+-- ----------------------------
+CREATE INDEX "idx_wallet_statement_user_id"
+ON "p_wallet_statement" (
+ "user_id" ASC
+);
+
+PRAGMA foreign_keys = true;
diff --git a/scripts/paopao-mysql.sql b/scripts/paopao-mysql.sql
index 18525ab3..7cf2db6a 100644
--- a/scripts/paopao-mysql.sql
+++ b/scripts/paopao-mysql.sql
@@ -6,19 +6,19 @@ SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
DROP TABLE IF EXISTS `p_attachment`;
CREATE TABLE `p_attachment` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT,
- `user_id` bigint unsigned NOT NULL DEFAULT '0',
- `file_size` bigint unsigned NOT NULL,
- `img_width` bigint unsigned NOT NULL DEFAULT '0',
- `img_height` bigint unsigned NOT NULL DEFAULT '0',
- `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '1图片,2视频,3其他附件',
- `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` bigint unsigned NOT NULL DEFAULT '0',
+ `file_size` bigint unsigned NOT NULL,
+ `img_width` bigint unsigned NOT NULL DEFAULT '0',
+ `img_height` bigint unsigned NOT NULL DEFAULT '0',
+ `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '1图片,2视频,3其他附件',
+ `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_attachment_user` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=100041 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='附件';
-- ----------------------------
@@ -26,19 +26,19 @@ CREATE TABLE `p_attachment` (
-- ----------------------------
DROP TABLE IF EXISTS `p_captcha`;
CREATE TABLE `p_captcha` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '验证码ID',
- `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号',
- `captcha` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '验证码',
- `use_times` int unsigned NOT NULL DEFAULT '0' COMMENT '使用次数',
- `expired_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '过期时间',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_phone` (`phone`) USING BTREE,
- KEY `idx_expired_on` (`expired_on`) USING BTREE,
- KEY `idx_use_times` (`use_times`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '验证码ID',
+ `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号',
+ `captcha` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '验证码',
+ `use_times` int unsigned NOT NULL DEFAULT '0' COMMENT '使用次数',
+ `expired_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '过期时间',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_captcha_phone` (`phone`) USING BTREE,
+ KEY `idx_captcha_expired_on` (`expired_on`) USING BTREE,
+ KEY `idx_captcha_use_times` (`use_times`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1021 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='手机验证码';
-- ----------------------------
@@ -46,18 +46,18 @@ CREATE TABLE `p_captcha` (
-- ----------------------------
DROP TABLE IF EXISTS `p_comment`;
CREATE TABLE `p_comment` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
- `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_post` (`post_id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
+ `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_comment_post_id` (`post_id`) USING BTREE,
+ KEY `idx_comment_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6001736 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论';
-- ----------------------------
@@ -65,21 +65,21 @@ CREATE TABLE `p_comment` (
-- ----------------------------
DROP TABLE IF EXISTS `p_comment_content`;
CREATE TABLE `p_comment_content` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID',
- `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
- `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址',
- `sort` bigint unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_reply` (`comment_id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE,
- KEY `idx_type` (`type`) USING BTREE,
- KEY `idx_sort` (`sort`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID',
+ `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
+ `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址',
+ `sort` bigint unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_comment_content_comment_id` (`comment_id`) USING BTREE,
+ KEY `idx_comment_content_user_id` (`user_id`) USING BTREE,
+ KEY `idx_comment_content_type` (`type`) USING BTREE,
+ KEY `idx_comment_content_sort` (`sort`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=11001738 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论内容';
-- ----------------------------
@@ -87,19 +87,19 @@ CREATE TABLE `p_comment_content` (
-- ----------------------------
DROP TABLE IF EXISTS `p_comment_reply`;
CREATE TABLE `p_comment_reply` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '回复ID',
- `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `at_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '@用户ID',
- `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
- `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
- `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_comment` (`comment_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '回复ID',
+ `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `at_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '@用户ID',
+ `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
+ `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
+ `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_comment_reply_comment_id` (`comment_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=12000015 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评论回复';
-- ----------------------------
@@ -107,24 +107,24 @@ CREATE TABLE `p_comment_reply` (
-- ----------------------------
DROP TABLE IF EXISTS `p_message`;
CREATE TABLE `p_message` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '消息通知ID',
- `sender_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '发送方用户ID',
- `receiver_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '接收方用户ID',
- `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '通知类型,1动态,2评论,3回复,4私信,99系统通知',
- `brief` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '摘要说明',
- `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '详细内容',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '动态ID',
- `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID',
- `reply_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '回复ID',
- `is_read` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否已读',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_receiver` (`receiver_user_id`) USING BTREE,
- KEY `idx_is_read` (`is_read`) USING BTREE,
- KEY `idx_type` (`type`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '消息通知ID',
+ `sender_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '发送方用户ID',
+ `receiver_user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '接收方用户ID',
+ `type` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '通知类型,1动态,2评论,3回复,4私信,99系统通知',
+ `brief` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '摘要说明',
+ `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '详细内容',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '动态ID',
+ `comment_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论ID',
+ `reply_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '回复ID',
+ `is_read` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否已读',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_message_receiver_user_id` (`receiver_user_id`) USING BTREE,
+ KEY `idx_message_is_read` (`is_read`) USING BTREE,
+ KEY `idx_message_type` (`type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=16000033 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='消息通知';
-- ----------------------------
@@ -132,27 +132,27 @@ CREATE TABLE `p_message` (
-- ----------------------------
DROP TABLE IF EXISTS `p_post`;
CREATE TABLE `p_post` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主题ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `comment_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论数',
- `collection_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '收藏数',
- `upvote_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '点赞数',
- `visibility` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '可见性 0公开 1私密 2好友可见',
- `is_top` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否置顶',
- `is_essence` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否精华',
- `is_lock` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否锁定',
- `latest_replied_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最新回复时间',
- `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标签',
- `attachment_price` bigint unsigned NOT NULL DEFAULT '0' COMMENT '附件价格(分)',
- `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
- `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE,
- KEY `idx_visibility` (`visibility`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主题ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `comment_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论数',
+ `collection_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '收藏数',
+ `upvote_count` bigint unsigned NOT NULL DEFAULT '0' COMMENT '点赞数',
+ `visibility` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '可见性 0公开 1私密 2好友可见',
+ `is_top` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否置顶',
+ `is_essence` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否精华',
+ `is_lock` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否锁定',
+ `latest_replied_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最新回复时间',
+ `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标签',
+ `attachment_price` bigint unsigned NOT NULL DEFAULT '0' COMMENT '附件价格(分)',
+ `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP地址',
+ `ip_loc` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'IP城市地址',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_post_user_id` (`user_id`) USING BTREE,
+ KEY `idx_post_visibility` (`visibility`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1080017989 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章';
-- ----------------------------
@@ -160,17 +160,17 @@ CREATE TABLE `p_post` (
-- ----------------------------
DROP TABLE IF EXISTS `p_post_attachment_bill`;
CREATE TABLE `p_post_attachment_bill` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '购买记录ID',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `paid_amount` bigint unsigned NOT NULL DEFAULT '0' COMMENT '支付金额',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_post` (`post_id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '购买记录ID',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `paid_amount` bigint unsigned NOT NULL DEFAULT '0' COMMENT '支付金额',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_post_attachment_bill_post_id` (`post_id`) USING BTREE,
+ KEY `idx_post_attachment_bill_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5000002 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章附件账单';
-- ----------------------------
@@ -178,16 +178,16 @@ CREATE TABLE `p_post_attachment_bill` (
-- ----------------------------
DROP TABLE IF EXISTS `p_post_collection`;
CREATE TABLE `p_post_collection` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_post` (`post_id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_post_collection_post_id` (`post_id`) USING BTREE,
+ KEY `idx_post_collection_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6000012 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章收藏';
-- ----------------------------
@@ -195,19 +195,19 @@ CREATE TABLE `p_post_collection` (
-- ----------------------------
DROP TABLE IF EXISTS `p_post_content`;
CREATE TABLE `p_post_content` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
- `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源',
- `sort` int unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_post` (`post_id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '内容ID',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
+ `type` tinyint unsigned NOT NULL DEFAULT '2' COMMENT '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源',
+ `sort` int unsigned NOT NULL DEFAULT '100' COMMENT '排序,越小越靠前',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_post_content_post_id` (`post_id`) USING BTREE,
+ KEY `idx_post_content_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=180022546 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章内容';
-- ----------------------------
@@ -215,16 +215,16 @@ CREATE TABLE `p_post_content` (
-- ----------------------------
DROP TABLE IF EXISTS `p_post_star`;
CREATE TABLE `p_post_star` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_post` (`post_id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'POST ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_post_star_post_id` (`post_id`) USING BTREE,
+ KEY `idx_post_star_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=6000028 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='冒泡/文章点赞';
-- ----------------------------
@@ -232,18 +232,18 @@ CREATE TABLE `p_post_star` (
-- ----------------------------
DROP TABLE IF EXISTS `p_tag`;
CREATE TABLE `p_tag` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '标签ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID',
- `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标签名',
- `quote_num` bigint unsigned NOT NULL DEFAULT '0' COMMENT '引用数',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- UNIQUE KEY `idx_tag` (`tag`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE,
- KEY `idx_num` (`quote_num`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '标签ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建者ID',
+ `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标签名',
+ `quote_num` bigint unsigned NOT NULL DEFAULT '0' COMMENT '引用数',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `idx_tag_tag` (`tag`) USING BTREE,
+ KEY `idx_tag_user_id` (`user_id`) USING BTREE,
+ KEY `idx_tag_quote_num` (`quote_num`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=9000065 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签';
-- ----------------------------
@@ -251,23 +251,23 @@ CREATE TABLE `p_tag` (
-- ----------------------------
DROP TABLE IF EXISTS `p_user`;
CREATE TABLE `p_user` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
- `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '昵称',
- `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
- `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号',
- `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'MD5密码',
- `salt` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '盐值',
- `status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '状态,1正常,2停用',
- `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户头像',
- `balance` bigint unsigned NOT NULL COMMENT '用户余额(分)',
- `is_admin` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否管理员',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- UNIQUE KEY `idx_username` (`username`) USING BTREE,
- KEY `idx_phone` (`phone`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
+ `nickname` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '昵称',
+ `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
+ `phone` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '手机号',
+ `password` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'MD5密码',
+ `salt` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '盐值',
+ `status` tinyint unsigned NOT NULL DEFAULT '1' COMMENT '状态,1正常,2停用',
+ `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '用户头像',
+ `balance` bigint unsigned NOT NULL COMMENT '用户余额(分)',
+ `is_admin` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否管理员',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `idx_user_username` (`username`) USING BTREE,
+ KEY `idx_user_phone` (`phone`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=100058 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户';
-- ----------------------------
@@ -275,22 +275,22 @@ CREATE TABLE `p_user` (
-- ----------------------------
DROP TABLE IF EXISTS `p_contact`;
CREATE TABLE `p_contact` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID',
- `user_id` bigint unsigned NOT NULL COMMENT '用户ID',
- `friend_id` bigint unsigned NOT NULL COMMENT '好友ID',
- `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '好友分组ID:默认为0无分组',
- `remark` varchar(32) NOT NULL DEFAULT '' COMMENT '好友备注',
- `status` tinyint NOT NULL DEFAULT '0' COMMENT '好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友',
- `is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶, 0否, 1是',
- `is_black` tinyint NOT NULL DEFAULT '0' COMMENT '是否为黑名单, 0否, 1是',
- `is_delete` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除好友, 0否, 1是',
- `notice_enable` tinyint NOT NULL DEFAULT '0' COMMENT '是否有消息提醒, 0否, 1是',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- PRIMARY KEY (`id`) USING BTREE,
- UNIQUE KEY `idx_user_friend_id` (`user_id`,`friend_id`) USING BTREE,
- KEY `idx_user_friend_status` (`user_id`, `friend_id`, `status`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID',
+ `user_id` bigint unsigned NOT NULL COMMENT '用户ID',
+ `friend_id` bigint unsigned NOT NULL COMMENT '好友ID',
+ `group_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '好友分组ID:默认为0无分组',
+ `remark` varchar(32) NOT NULL DEFAULT '' COMMENT '好友备注',
+ `status` tinyint NOT NULL DEFAULT '0' COMMENT '好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友',
+ `is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶, 0否, 1是',
+ `is_black` tinyint NOT NULL DEFAULT '0' COMMENT '是否为黑名单, 0否, 1是',
+ `is_delete` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除好友, 0否, 1是',
+ `notice_enable` tinyint NOT NULL DEFAULT '0' COMMENT '是否有消息提醒, 0否, 1是',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `idx_contact_user_friend` (`user_id`,`friend_id`) USING BTREE,
+ KEY `idx_contact_user_friend_status` (`user_id`, `friend_id`, `status`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='联系人';
-- ----------------------------
@@ -298,14 +298,14 @@ CREATE TABLE `p_contact` (
-- ----------------------------
DROP TABLE IF EXISTS `p_contact_group`;
CREATE TABLE `p_contact_group` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID',
- `user_id` int NOT NULL DEFAULT '0' COMMENT '用户id',
- `name` varchar(32) NOT NULL DEFAULT '' COMMENT '分组名称',
- `is_delete` tinyint NOT NULL DEFAULT '1' COMMENT '是否删除, 0否, 1是',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- PRIMARY KEY (`id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '联系人ID',
+ `user_id` int NOT NULL DEFAULT '0' COMMENT '用户id',
+ `name` varchar(32) NOT NULL DEFAULT '' COMMENT '分组名称',
+ `is_delete` tinyint NOT NULL DEFAULT '1' COMMENT '是否删除, 0否, 1是',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='联系人分组';
-- ----------------------------
@@ -313,19 +313,19 @@ CREATE TABLE `p_contact_group` (
-- ----------------------------
DROP TABLE IF EXISTS `p_wallet_recharge`;
CREATE TABLE `p_wallet_recharge` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '充值ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `amount` bigint NOT NULL DEFAULT '0' COMMENT '充值金额',
- `trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '支付宝订单号',
- `trade_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '交易状态',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE,
- KEY `idx_trade_no` (`trade_no`) USING BTREE,
- KEY `idx_trade_status` (`trade_status`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '充值ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `amount` bigint NOT NULL DEFAULT '0' COMMENT '充值金额',
+ `trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '支付宝订单号',
+ `trade_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '交易状态',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_wallet_recharge_user_id` (`user_id`) USING BTREE,
+ KEY `idx_wallet_recharge_trade_no` (`trade_no`) USING BTREE,
+ KEY `idx_wallet_recharge_trade_status` (`trade_status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10023 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='钱包流水';
-- ----------------------------
@@ -333,18 +333,18 @@ CREATE TABLE `p_wallet_recharge` (
-- ----------------------------
DROP TABLE IF EXISTS `p_wallet_statement`;
CREATE TABLE `p_wallet_statement` (
- `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '账单ID',
- `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
- `change_amount` bigint NOT NULL DEFAULT '0' COMMENT '变动金额',
- `balance_snapshot` bigint NOT NULL DEFAULT '0' COMMENT '资金快照',
- `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动原因',
- `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联动态',
- `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
- `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
- `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
- `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
- PRIMARY KEY (`id`) USING BTREE,
- KEY `idx_user` (`user_id`) USING BTREE
+ `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '账单ID',
+ `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '用户ID',
+ `change_amount` bigint NOT NULL DEFAULT '0' COMMENT '变动金额',
+ `balance_snapshot` bigint NOT NULL DEFAULT '0' COMMENT '资金快照',
+ `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '变动原因',
+ `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联动态',
+ `created_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+ `modified_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
+ `deleted_on` bigint unsigned NOT NULL DEFAULT '0' COMMENT '删除时间',
+ `is_del` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_wallet_statement_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10010 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='钱包流水';
SET FOREIGN_KEY_CHECKS = 1;
diff --git a/scripts/paopao-postgres.sql b/scripts/paopao-postgres.sql
index e359ec3e..ca536740 100644
--- a/scripts/paopao-postgres.sql
+++ b/scripts/paopao-postgres.sql
@@ -1,619 +1,285 @@
-/*
- Navicat Premium Data Transfer
-*/
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = off;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+SET escape_string_warning = off;
--- ----------------------------
--- Table structure for p_anouncement
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_anouncement";
-CREATE TABLE "public"."p_anouncement" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "comment_count" numeric(20,0) NOT NULL,
- "collection_count" numeric(20,0) NOT NULL,
- "upvote_count" numeric(20,0) NOT NULL,
- "is_top" int2 NOT NULL,
- "is_essence" int2 NOT NULL,
- "is_lock" int2 NOT NULL,
- "latest_replied_on" numeric(20,0) NOT NULL,
- "tags" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "attachment_price" numeric(20,0) NOT NULL,
- "ip" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "ip_loc" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_attachment;
+CREATE TABLE p_attachment (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ file_size BIGINT NOT NULL,
+ img_width BIGINT NOT NULL DEFAULT 0,
+ img_height BIGINT NOT NULL DEFAULT 0,
+ "type" SMALLINT NOT NULL DEFAULT 1, -- 1图片、2视频、3其他附件
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除
);
-COMMENT ON COLUMN "public"."p_anouncement"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_anouncement"."comment_count" IS '评论数';
-COMMENT ON COLUMN "public"."p_anouncement"."collection_count" IS '收藏数';
-COMMENT ON COLUMN "public"."p_anouncement"."upvote_count" IS '点赞数';
-COMMENT ON COLUMN "public"."p_anouncement"."is_top" IS '是否置顶';
-COMMENT ON COLUMN "public"."p_anouncement"."is_essence" IS '是否精华';
-COMMENT ON COLUMN "public"."p_anouncement"."is_lock" IS '是否锁定';
-COMMENT ON COLUMN "public"."p_anouncement"."latest_replied_on" IS '最新回复时间';
-COMMENT ON COLUMN "public"."p_anouncement"."tags" IS '标签';
-COMMENT ON COLUMN "public"."p_anouncement"."attachment_price" IS '附件价格(分)';
-COMMENT ON COLUMN "public"."p_anouncement"."ip" IS 'IP地址';
-COMMENT ON COLUMN "public"."p_anouncement"."ip_loc" IS 'IP城市地址';
-COMMENT ON COLUMN "public"."p_anouncement"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_anouncement"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_anouncement"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_anouncement"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_anouncement" IS '公告';
+CREATE INDEX idx_attachment_user_id ON p_attachment USING btree (id);
--- ----------------------------
--- Table structure for p_anouncement_content
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_anouncement_content";
-CREATE TABLE "public"."p_anouncement_content" (
- "id" numeric(20,0) NOT NULL,
- "anouncement_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "content" varchar(2000) COLLATE "pg_catalog"."default" NOT NULL,
- "type" int2 NOT NULL,
- "sort" int8 NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_captcha;
+CREATE TABLE p_captcha (
+ id BIGSERIAL PRIMARY KEY,
+ phone VARCHAR(16),
+ captcha VARCHAR(16),
+ use_times INTEGER NOT NULL DEFAULT 0,
+ expired_on BIGINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0为未删除、1为已删除'
);
-COMMENT ON COLUMN "public"."p_anouncement_content"."id" IS '内容ID';
-COMMENT ON COLUMN "public"."p_anouncement_content"."anouncement_id" IS '公告ID';
-COMMENT ON COLUMN "public"."p_anouncement_content"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_anouncement_content"."content" IS '内容';
-COMMENT ON COLUMN "public"."p_anouncement_content"."type" IS '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源';
-COMMENT ON COLUMN "public"."p_anouncement_content"."sort" IS '排序,越小越靠前';
-COMMENT ON COLUMN "public"."p_anouncement_content"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_anouncement_content"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_anouncement_content"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_anouncement_content"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_anouncement_content" IS '公告内容';
+CREATE INDEX idx_captcha_phone ON p_captcha USING btree (phone);
+CREATE INDEX idx_captcha_expired_on ON p_captcha USING btree (expired_on);
+CREATE INDEX idx_captcha_use_times ON p_captcha USING btree (use_times);
--- ----------------------------
--- Table structure for p_attachment
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_attachment";
-CREATE TABLE "public"."p_attachment" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "file_size" numeric(20,0) NOT NULL,
- "img_width" numeric(20,0) NOT NULL,
- "img_height" numeric(20,0) NOT NULL,
- "type" int2 NOT NULL,
- "content" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL,
- "scope" int2 NOT NULL
+DROP TABLE IF EXISTS p_comment;
+CREATE TABLE p_comment (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ ip VARCHAR(64) NOT NULL DEFAULT '',
+ ip_loc VARCHAR(64) NOT NULL DEFAULT '',
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_attachment"."type" IS '1图片,2视频,3其他附件';
-COMMENT ON COLUMN "public"."p_attachment"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_attachment"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_attachment"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_attachment"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON COLUMN "public"."p_attachment"."scope" IS '领域 0未知 1泡泡 2公告';
-COMMENT ON TABLE "public"."p_attachment" IS '附件';
+CREATE INDEX idx_comment_post_id ON p_comment USING btree (post_id);
+CREATE INDEX idx_comment_user_id ON p_comment USING btree (user_id);
--- ----------------------------
--- Table structure for p_captcha
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_captcha";
-CREATE TABLE "public"."p_captcha" (
- "id" numeric(20,0) NOT NULL,
- "phone" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
- "captcha" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
- "use_times" int8 NOT NULL,
- "expired_on" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_comment_content;
+CREATE TABLE p_comment_content (
+ id BIGSERIAL PRIMARY KEY,
+ comment_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,
+ sort BIGINT NOT NULL DEFAULT 100,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_captcha"."id" IS '验证码ID';
-COMMENT ON COLUMN "public"."p_captcha"."phone" IS '手机号';
-COMMENT ON COLUMN "public"."p_captcha"."captcha" IS '验证码';
-COMMENT ON COLUMN "public"."p_captcha"."use_times" IS '使用次数';
-COMMENT ON COLUMN "public"."p_captcha"."expired_on" IS '过期时间';
-COMMENT ON COLUMN "public"."p_captcha"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_captcha"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_captcha"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_captcha"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_captcha" IS '手机验证码';
+CREATE INDEX idx_comment_content_comment_id ON p_comment_content USING btree (comment_id);
+CREATE INDEX idx_comment_content_user_id ON p_comment_content USING btree (user_id);
+CREATE INDEX idx_comment_content_type ON p_comment_content USING btree ("type");
+CREATE INDEX idx_comment_content_sort ON p_comment_content USING btree (sort);
--- ----------------------------
--- Table structure for p_comment
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_comment";
-CREATE TABLE "public"."p_comment" (
- "id" numeric(20,0) NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "ip" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "ip_loc" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL,
- "scope" int2 NOT NULL
+DROP TABLE IF EXISTS p_comment_reply;
+CREATE TABLE p_comment_reply (
+ id BIGSERIAL PRIMARY KEY,
+ comment_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ at_user_id BIGINT NOT NULL DEFAULT 0,
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ ip VARCHAR(64) NOT NULL DEFAULT '',
+ ip_loc VARCHAR(64) NOT NULL DEFAULT '',
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_comment"."id" IS '评论ID';
-COMMENT ON COLUMN "public"."p_comment"."post_id" IS 'POST ID';
-COMMENT ON COLUMN "public"."p_comment"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_comment"."ip" IS 'IP地址';
-COMMENT ON COLUMN "public"."p_comment"."ip_loc" IS 'IP城市地址';
-COMMENT ON COLUMN "public"."p_comment"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_comment"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_comment"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_comment"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON COLUMN "public"."p_comment"."scope" IS '领域 0未知 1泡泡 2公告';
-COMMENT ON TABLE "public"."p_comment" IS '评论';
+CREATE INDEX idx_comment_reply_comment_id ON p_comment_reply USING btree (comment_id);
--- ----------------------------
--- Table structure for p_comment_content
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_comment_content";
-CREATE TABLE "public"."p_comment_content" (
- "id" numeric(20,0) NOT NULL,
- "comment_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "content" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "type" int2 NOT NULL,
- "sort" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_message;
+CREATE TABLE p_message (
+ id BIGSERIAL PRIMARY KEY,
+ sender_user_id BIGINT NOT NULL DEFAULT 0,
+ receiver_user_id BIGINT NOT NULL DEFAULT 0,
+ type SMALLINT NOT NULL DEFAULT 1,
+ brief VARCHAR(255) NOT NULL DEFAULT '',
+ content VARCHAR(255) NOT NULL DEFAULT '',
+ post_id BIGINT NOT NULL DEFAULT 0,
+ comment_id BIGINT NOT NULL DEFAULT 0,
+ reply_id BIGINT NOT NULL DEFAULT 0,
+ is_read SMALLINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_comment_content"."id" IS '内容ID';
-COMMENT ON COLUMN "public"."p_comment_content"."comment_id" IS '评论ID';
-COMMENT ON COLUMN "public"."p_comment_content"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_comment_content"."content" IS '内容';
-COMMENT ON COLUMN "public"."p_comment_content"."type" IS '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址';
-COMMENT ON COLUMN "public"."p_comment_content"."sort" IS '排序,越小越靠前';
-COMMENT ON COLUMN "public"."p_comment_content"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_comment_content"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_comment_content"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_comment_content"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_comment_content" IS '评论内容';
+CREATE INDEX idx_message_receiver_user_id ON p_message USING btree (receiver_user_id);
+CREATE INDEX idx_message_is_read ON p_message USING btree (is_read);
+CREATE INDEX idx_message_type ON p_message USING btree ("type");
--- ----------------------------
--- Table structure for p_comment_reply
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_comment_reply";
-CREATE TABLE "public"."p_comment_reply" (
- "id" numeric(20,0) NOT NULL,
- "comment_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "at_user_id" numeric(20,0) NOT NULL,
- "content" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "ip" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "ip_loc" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+CREATE SEQUENCE IF NOT EXISTS post_id_seq AS BIGINT MINVALUE 1080017989 NO MAXVALUE;
+DROP TABLE IF EXISTS p_post;
+CREATE TABLE p_post (
+ id BIGINT NOT NULL DEFAULT nextval('post_id_seq'::regclass),
+ user_id BIGINT NOT NULL DEFAULT 0,
+ comment_count BIGINT NOT NULL DEFAULT 0,
+ collection_count BIGINT NOT NULL DEFAULT 0,
+ upvote_count BIGINT NOT NULL DEFAULT 0,
+ visibility SMALLINT NOT NULL DEFAULT 0, -- 可见性 0公开 1私密 2好友可见
+ is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶
+ is_essence SMALLINT NOT NULL DEFAULT 0, -- 是否精华
+ is_lock SMALLINT NOT NULL DEFAULT 0, -- 是否锁定
+ latest_replied_on BIGINT NOT NULL DEFAULT 0, -- 最新回复时间
+ tags VARCHAR(255) NOT NULL DEFAULT '',
+ attachment_price BIGINT NOT NULL DEFAULT 0, -- 附件价格(分)
+ ip VARCHAR(64) NOT NULL DEFAULT '', -- IP地址
+ ip_loc VARCHAR(64) NOT NULL DEFAULT '', -- IP城市地址
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0,
+ PRIMARY KEY (id)
);
-COMMENT ON COLUMN "public"."p_comment_reply"."id" IS '回复ID';
-COMMENT ON COLUMN "public"."p_comment_reply"."comment_id" IS '评论ID';
-COMMENT ON COLUMN "public"."p_comment_reply"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_comment_reply"."at_user_id" IS '@用户ID';
-COMMENT ON COLUMN "public"."p_comment_reply"."content" IS '内容';
-COMMENT ON COLUMN "public"."p_comment_reply"."ip" IS 'IP地址';
-COMMENT ON COLUMN "public"."p_comment_reply"."ip_loc" IS 'IP城市地址';
-COMMENT ON COLUMN "public"."p_comment_reply"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_comment_reply"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_comment_reply"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_comment_reply"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_comment_reply" IS '评论回复';
+CREATE INDEX idx_post_user_id ON p_post USING btree (user_id);
+CREATE INDEX idx_post_visibility ON p_post USING btree (visibility);
--- ----------------------------
--- Table structure for p_contact
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_contact";
-CREATE TABLE "public"."p_contact" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "friend_id" numeric(20,0) NOT NULL,
- "group_id" numeric(20,0) NOT NULL,
- "remark" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
- "status" int2 NOT NULL,
- "notice_enable" int2 NOT NULL,
- "is_top" int2 NOT NULL,
- "is_black" int2 NOT NULL,
- "is_del" int2 NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL
+DROP TABLE IF EXISTS p_post_attachment_bill;
+CREATE TABLE p_post_attachment_bill (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ paid_amount BIGINT NOT NULL DEFAULT 0, -- 支付金额
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_contact"."id" IS '联系人ID';
-COMMENT ON COLUMN "public"."p_contact"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_contact"."friend_id" IS '好友ID';
-COMMENT ON COLUMN "public"."p_contact"."group_id" IS '好友分组ID:默认为0无分组';
-COMMENT ON COLUMN "public"."p_contact"."remark" IS '好友备注';
-COMMENT ON COLUMN "public"."p_contact"."status" IS '好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友';
-COMMENT ON COLUMN "public"."p_contact"."notice_enable" IS '是否有消息提醒, 0否, 1是';
-COMMENT ON COLUMN "public"."p_contact"."is_top" IS '是否置顶, 0否, 1是';
-COMMENT ON COLUMN "public"."p_contact"."is_black" IS '是否为黑名单, 0否, 1是';
-COMMENT ON COLUMN "public"."p_contact"."is_del" IS '是否删除好友, 0否, 1是';
-COMMENT ON COLUMN "public"."p_contact"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_contact"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_contact"."deleted_on" IS '删除时间';
-COMMENT ON TABLE "public"."p_contact" IS '联系人';
+CREATE INDEX idx_post_attachment_bill_post_id ON p_post_attachment_bill USING btree (post_id);
+CREATE INDEX idx_post_attachment_bill_user_id ON p_post_attachment_bill USING btree (user_id);
--- ----------------------------
--- Table structure for p_contact_group
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_contact_group";
-CREATE TABLE "public"."p_contact_group" (
- "id" numeric(20,0) NOT NULL,
- "user_id" int4 NOT NULL,
- "name" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
- "is_del" int2 NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL
+DROP TABLE IF EXISTS p_post_collection;
+CREATE TABLE p_post_collection (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_contact_group"."id" IS '联系人ID';
-COMMENT ON COLUMN "public"."p_contact_group"."user_id" IS '用户id';
-COMMENT ON COLUMN "public"."p_contact_group"."name" IS '分组名称';
-COMMENT ON COLUMN "public"."p_contact_group"."is_del" IS '是否删除, 0否, 1是';
-COMMENT ON COLUMN "public"."p_contact_group"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_contact_group"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_contact_group"."deleted_on" IS '删除时间';
-COMMENT ON TABLE "public"."p_contact_group" IS '联系人分组';
+CREATE INDEX idx_post_collection_post_id ON p_post_collection USING btree (post_id);
+CREATE INDEX idx_post_collection_user_id ON p_post_collection USING btree (user_id);
--- ----------------------------
--- Table structure for p_message
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_message";
-CREATE TABLE "public"."p_message" (
- "id" numeric(20,0) NOT NULL,
- "sender_user_id" numeric(20,0) NOT NULL,
- "receiver_user_id" numeric(20,0) NOT NULL,
- "type" int2 NOT NULL,
- "brief" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "content" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "comment_id" numeric(20,0) NOT NULL,
- "reply_id" numeric(20,0) NOT NULL,
- "is_read" int2 NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_post_content;
+CREATE TABLE p_post_content (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ content VARCHAR(2000) NOT NULL DEFAULT '',
+ "type" SMALLINT NOT NULL DEFAULT 2, -- 类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源
+ sort SMALLINT NOT NULL DEFAULT 100,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_message"."id" IS '消息通知ID';
-COMMENT ON COLUMN "public"."p_message"."sender_user_id" IS '发送方用户ID';
-COMMENT ON COLUMN "public"."p_message"."receiver_user_id" IS '接收方用户ID';
-COMMENT ON COLUMN "public"."p_message"."type" IS '通知类型,1动态,2评论,3回复,4私信,99系统通知';
-COMMENT ON COLUMN "public"."p_message"."brief" IS '摘要说明';
-COMMENT ON COLUMN "public"."p_message"."content" IS '详细内容';
-COMMENT ON COLUMN "public"."p_message"."post_id" IS '动态ID';
-COMMENT ON COLUMN "public"."p_message"."comment_id" IS '评论ID';
-COMMENT ON COLUMN "public"."p_message"."reply_id" IS '回复ID';
-COMMENT ON COLUMN "public"."p_message"."is_read" IS '是否已读';
-COMMENT ON COLUMN "public"."p_message"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_message"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_message"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_message"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_message" IS '消息通知';
+CREATE INDEX idx_post_content_post_id ON p_post_content USING btree (post_id);
+CREATE INDEX idx_post_content_user_id ON p_post_content USING btree (user_id);
--- ----------------------------
--- Table structure for p_post
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_post";
-CREATE TABLE "public"."p_post" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "comment_count" numeric(20,0) NOT NULL,
- "collection_count" numeric(20,0) NOT NULL,
- "upvote_count" numeric(20,0) NOT NULL,
- "is_top" int2 NOT NULL,
- "is_essence" int2 NOT NULL,
- "is_lock" int2 NOT NULL,
- "latest_replied_on" numeric(20,0) NOT NULL,
- "tags" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "attachment_price" numeric(20,0) NOT NULL,
- "ip" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "ip_loc" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL,
- "visibility" int2 NOT NULL
+DROP TABLE IF EXISTS p_post_star;
+CREATE TABLE p_post_star (
+ id BIGSERIAL PRIMARY KEY,
+ post_id BIGINT NOT NULL DEFAULT 0,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_post"."id" IS '主题ID';
-COMMENT ON COLUMN "public"."p_post"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_post"."comment_count" IS '评论数';
-COMMENT ON COLUMN "public"."p_post"."collection_count" IS '收藏数';
-COMMENT ON COLUMN "public"."p_post"."upvote_count" IS '点赞数';
-COMMENT ON COLUMN "public"."p_post"."is_top" IS '是否置顶';
-COMMENT ON COLUMN "public"."p_post"."is_essence" IS '是否精华';
-COMMENT ON COLUMN "public"."p_post"."is_lock" IS '是否锁定';
-COMMENT ON COLUMN "public"."p_post"."latest_replied_on" IS '最新回复时间';
-COMMENT ON COLUMN "public"."p_post"."tags" IS '标签';
-COMMENT ON COLUMN "public"."p_post"."attachment_price" IS '附件价格(分)';
-COMMENT ON COLUMN "public"."p_post"."ip" IS 'IP地址';
-COMMENT ON COLUMN "public"."p_post"."ip_loc" IS 'IP城市地址';
-COMMENT ON COLUMN "public"."p_post"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_post"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_post"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_post"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON COLUMN "public"."p_post"."visibility" IS '可见性 0公开 1私密 2好友可见';
-COMMENT ON TABLE "public"."p_post" IS '冒泡/文章';
+CREATE INDEX idx_post_star_post_id ON p_post_star USING btree (post_id);
+CREATE INDEX idx_post_star_user_id ON p_post_star USING btree (user_id);
--- ----------------------------
--- Table structure for p_post_attachment_bill
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_post_attachment_bill";
-CREATE TABLE "public"."p_post_attachment_bill" (
- "id" numeric(20,0) NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "paid_amount" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL,
- "scope" int2 NOT NULL
+DROP TABLE IF EXISTS p_tag;
+CREATE TABLE p_tag (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ tag VARCHAR(255) NOT NULL,
+ quote_num BIGINT NOT NULL DEFAULT 0, -- 引用数
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."id" IS '购买记录ID';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."post_id" IS 'POST ID';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."paid_amount" IS '支付金额';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON COLUMN "public"."p_post_attachment_bill"."scope" IS '领域 0未知 1泡泡 2公告';
-COMMENT ON TABLE "public"."p_post_attachment_bill" IS '冒泡/文章附件账单';
+CREATE UNIQUE INDEX idx_tag_tag ON p_tag USING btree (tag);
+CREATE INDEX idx_tag_user_id ON p_tag USING btree (user_id);
+CREATE INDEX idx_tag_quote_num ON p_tag USING btree (quote_num);
--- ----------------------------
--- Table structure for p_post_collection
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_post_collection";
-CREATE TABLE "public"."p_post_collection" (
- "id" numeric(20,0) NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL,
- "scope" int2 NOT NULL
+DROP TABLE IF EXISTS p_user;
+CREATE TABLE p_user (
+ id BIGSERIAL PRIMARY KEY,
+ nickname VARCHAR(32) NOT NULL DEFAULT '',
+ username VARCHAR(32) NOT NULL DEFAULT '',
+ phone VARCHAR(16) NOT NULL DEFAULT '', -- 手机号
+ password VARCHAR(32) NOT NULL DEFAULT '', -- MD5密码
+ salt VARCHAR(16) NOT NULL DEFAULT '', -- 盐值
+ status SMALLINT NOT NULL DEFAULT 1, -- 状态,1正常,2停用
+ avatar VARCHAR(255) NOT NULL DEFAULT '',
+ balance BIGINT NOT NULL, -- 用户余额(分)
+ is_admin BOOLEAN NOT NULL DEFAULT false, -- 是否管理员
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_post_collection"."id" IS '收藏ID';
-COMMENT ON COLUMN "public"."p_post_collection"."post_id" IS 'POST ID';
-COMMENT ON COLUMN "public"."p_post_collection"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_post_collection"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_post_collection"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_post_collection"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_post_collection"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON COLUMN "public"."p_post_collection"."scope" IS '领域 0未知 1泡泡 2公告';
-COMMENT ON TABLE "public"."p_post_collection" IS '冒泡/文章收藏';
+CREATE UNIQUE INDEX idx_user_username ON p_user USING btree (username);
+CREATE INDEX idx_user_phone ON p_user USING btree (phone);
--- ----------------------------
--- Table structure for p_post_content
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_post_content";
-CREATE TABLE "public"."p_post_content" (
- "id" numeric(20,0) NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "content" varchar(2000) COLLATE "pg_catalog"."default" NOT NULL,
- "type" int2 NOT NULL,
- "sort" int8 NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_contact;
+CREATE TABLE p_contact (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL,
+ friend_id BIGINT NOT NULL,
+ group_id BIGINT NOT NULL DEFAULT 0, -- 好友分组ID:默认为0无分组
+ remark VARCHAR(32) NOT NULL DEFAULT '', -- 好友备注
+ status SMALLINT NOT NULL DEFAULT 0, -- 好友状态: 1请求好友, 2已好友, 3拒绝好友, 4已删好友
+ is_top SMALLINT NOT NULL DEFAULT 0, -- 是否置顶, 0否, 1是
+ is_black SMALLINT NOT NULL DEFAULT 0, -- 是否为黑名单, 0否, 1是
+ is_del SMALLINT NOT NULL DEFAULT 0, -- 否删除好友, 0否, 1是
+ notice_enable SMALLINT NOT NULL DEFAULT 0, -- 是否有消息提醒, 0否, 1是
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_post_content"."id" IS '内容ID';
-COMMENT ON COLUMN "public"."p_post_content"."post_id" IS 'POST ID';
-COMMENT ON COLUMN "public"."p_post_content"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_post_content"."content" IS '内容';
-COMMENT ON COLUMN "public"."p_post_content"."type" IS '类型,1标题,2文字段落,3图片地址,4视频地址,5语音地址,6链接地址,7附件资源,8收费资源';
-COMMENT ON COLUMN "public"."p_post_content"."sort" IS '排序,越小越靠前';
-COMMENT ON COLUMN "public"."p_post_content"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_post_content"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_post_content"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_post_content"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_post_content" IS '冒泡/文章内容';
+CREATE UNIQUE INDEX idx_contact_user_friend ON p_contact USING btree (user_id,friend_id);
+CREATE INDEX idx_contact_user_friend_status ON p_contact USING btree (user_id, friend_id, status);
--- ----------------------------
--- Table structure for p_post_star
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_post_star";
-CREATE TABLE "public"."p_post_star" (
- "id" numeric(20,0) NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL,
- "scope" int2 NOT NULL
+DROP TABLE IF EXISTS p_contact_group;
+CREATE TABLE p_contact_group (
+ id BIGSERIAL PRIMARY KEY,
+ user_id int NOT NULL DEFAULT 0,
+ name VARCHAR(32) NOT NULL DEFAULT '', -- 分组名称
+ is_del SMALLINT NOT NULL DEFAULT 1, -- 是否删除, 0否, 1是
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0
);
-COMMENT ON COLUMN "public"."p_post_star"."id" IS '收藏ID';
-COMMENT ON COLUMN "public"."p_post_star"."post_id" IS 'POST ID';
-COMMENT ON COLUMN "public"."p_post_star"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_post_star"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_post_star"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_post_star"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_post_star"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON COLUMN "public"."p_post_star"."scope" IS '领域 0未知 1泡泡 2公告';
-COMMENT ON TABLE "public"."p_post_star" IS '冒泡/文章点赞';
--- ----------------------------
--- Table structure for p_tag
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_tag";
-CREATE TABLE "public"."p_tag" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "tag" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "quote_num" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
+DROP TABLE IF EXISTS p_wallet_recharge;
+CREATE TABLE p_wallet_recharge (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ amount BIGINT NOT NULL DEFAULT 0, -- 充值金额
+ trade_no VARCHAR(64) NOT NULL DEFAULT '', -- 支付宝订单号
+ trade_status VARCHAR(32) NOT NULL DEFAULT '', -- 交易状态
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0 -- 是否删除 0 为未删除、1 为已删除
);
-COMMENT ON COLUMN "public"."p_tag"."id" IS '标签ID';
-COMMENT ON COLUMN "public"."p_tag"."user_id" IS '创建者ID';
-COMMENT ON COLUMN "public"."p_tag"."tag" IS '标签名';
-COMMENT ON COLUMN "public"."p_tag"."quote_num" IS '引用数';
-COMMENT ON COLUMN "public"."p_tag"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_tag"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_tag"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_tag"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_tag" IS '标签';
+CREATE INDEX idx_wallet_recharge_user_id ON p_wallet_recharge USING btree (user_id);
+CREATE INDEX idx_wallet_recharge_trade_no ON p_wallet_recharge USING btree (trade_no);
+CREATE INDEX idx_wallet_recharge_trade_status ON p_wallet_recharge USING btree (trade_status);
--- ----------------------------
--- Table structure for p_user
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_user";
-CREATE TABLE "public"."p_user" (
- "id" numeric(20,0) NOT NULL,
- "nickname" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
- "username" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
- "phone" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
- "password" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
- "salt" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
- "status" int2 NOT NULL,
- "avatar" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "balance" numeric(20,0) NOT NULL,
- "is_admin" int2 NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
-);
-COMMENT ON COLUMN "public"."p_user"."id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_user"."nickname" IS '昵称';
-COMMENT ON COLUMN "public"."p_user"."username" IS '用户名';
-COMMENT ON COLUMN "public"."p_user"."phone" IS '手机号';
-COMMENT ON COLUMN "public"."p_user"."password" IS 'MD5密码';
-COMMENT ON COLUMN "public"."p_user"."salt" IS '盐值';
-COMMENT ON COLUMN "public"."p_user"."status" IS '状态,1正常,2停用';
-COMMENT ON COLUMN "public"."p_user"."avatar" IS '用户头像';
-COMMENT ON COLUMN "public"."p_user"."balance" IS '用户余额(分)';
-COMMENT ON COLUMN "public"."p_user"."is_admin" IS '是否管理员';
-COMMENT ON COLUMN "public"."p_user"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_user"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_user"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_user"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_user" IS '用户';
-
--- ----------------------------
--- Table structure for p_wallet_recharge
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_wallet_recharge";
-CREATE TABLE "public"."p_wallet_recharge" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "amount" int8 NOT NULL,
- "trade_no" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
- "trade_status" varchar(32) COLLATE "pg_catalog"."default" NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
-);
-COMMENT ON COLUMN "public"."p_wallet_recharge"."id" IS '充值ID';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."amount" IS '充值金额';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."trade_no" IS '支付宝订单号';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."trade_status" IS '交易状态';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_wallet_recharge"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_wallet_recharge" IS '钱包流水';
-
--- ----------------------------
--- Table structure for p_wallet_statement
--- ----------------------------
-DROP TABLE IF EXISTS "public"."p_wallet_statement";
-CREATE TABLE "public"."p_wallet_statement" (
- "id" numeric(20,0) NOT NULL,
- "user_id" numeric(20,0) NOT NULL,
- "change_amount" int8 NOT NULL,
- "balance_snapshot" int8 NOT NULL,
- "reason" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
- "post_id" numeric(20,0) NOT NULL,
- "created_on" numeric(20,0) NOT NULL,
- "modified_on" numeric(20,0) NOT NULL,
- "deleted_on" numeric(20,0) NOT NULL,
- "is_del" int2 NOT NULL
-);
-COMMENT ON COLUMN "public"."p_wallet_statement"."id" IS '账单ID';
-COMMENT ON COLUMN "public"."p_wallet_statement"."user_id" IS '用户ID';
-COMMENT ON COLUMN "public"."p_wallet_statement"."change_amount" IS '变动金额';
-COMMENT ON COLUMN "public"."p_wallet_statement"."balance_snapshot" IS '资金快照';
-COMMENT ON COLUMN "public"."p_wallet_statement"."reason" IS '变动原因';
-COMMENT ON COLUMN "public"."p_wallet_statement"."post_id" IS '关联动态';
-COMMENT ON COLUMN "public"."p_wallet_statement"."created_on" IS '创建时间';
-COMMENT ON COLUMN "public"."p_wallet_statement"."modified_on" IS '修改时间';
-COMMENT ON COLUMN "public"."p_wallet_statement"."deleted_on" IS '删除时间';
-COMMENT ON COLUMN "public"."p_wallet_statement"."is_del" IS '是否删除 0 为未删除、1 为已删除';
-COMMENT ON TABLE "public"."p_wallet_statement" IS '钱包流水';
-
--- ----------------------------
--- Primary Key structure for table p_anouncement
--- ----------------------------
-ALTER TABLE "public"."p_anouncement" ADD CONSTRAINT "p_anouncement_pkey" PRIMARY KEY ("id");
-
--- ----------------------------
--- Indexes structure for table p_anouncement_content
--- ----------------------------
-CREATE INDEX "idx_b_anouncement" ON "public"."p_anouncement_content" USING btree (
- "anouncement_id" "pg_catalog"."numeric_ops" ASC NULLS LAST
-);
-CREATE INDEX "idx_b_user" ON "public"."p_anouncement_content" USING btree (
- "user_id" "pg_catalog"."numeric_ops" ASC NULLS LAST
-);
-
--- ----------------------------
--- Primary Key structure for table p_anouncement_content
--- ----------------------------
-ALTER TABLE "public"."p_anouncement_content" ADD CONSTRAINT "p_anouncement_content_pkey" PRIMARY KEY ("id");
-
--- ----------------------------
--- Indexes structure for table p_attachment
--- ----------------------------
-CREATE INDEX "idx_user" ON "public"."p_attachment" USING btree (
- "user_id" "pg_catalog"."numeric_ops" ASC NULLS LAST
-);
-
--- ----------------------------
--- Primary Key structure for table p_attachment
--- ----------------------------
-ALTER TABLE "public"."p_attachment" ADD CONSTRAINT "p_attachment_pkey" PRIMARY KEY ("id");
-
--- ----------------------------
--- Indexes structure for table p_captcha
--- ----------------------------
-CREATE INDEX "idx_expired_on" ON "public"."p_captcha" USING btree (
- "expired_on" "pg_catalog"."numeric_ops" ASC NULLS LAST
-);
-CREATE INDEX "idx_phone" ON "public"."p_captcha" USING btree (
- "phone" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
-);
-CREATE INDEX "idx_use_times" ON "public"."p_captcha" USING btree (
- "use_times" "pg_catalog"."int8_ops" ASC NULLS LAST
-);
-
--- ----------------------------
--- Primary Key structure for table p_captcha
--- ----------------------------
-ALTER TABLE "public"."p_captcha" ADD CONSTRAINT "p_captcha_pkey" PRIMARY KEY ("id");
-
--- ----------------------------
--- Indexes structure for table p_comment
--- ----------------------------
-CREATE INDEX "idx_post" ON "public"."p_comment" USING btree (
- "post_id" "pg_catalog"."numeric_ops" ASC NULLS LAST
+DROP TABLE IF EXISTS p_wallet_statement;
+CREATE TABLE p_wallet_statement (
+ id BIGSERIAL PRIMARY KEY,
+ user_id BIGINT NOT NULL DEFAULT 0,
+ change_amount BIGINT NOT NULL DEFAULT 0, -- 变动金额
+ balance_snapshot BIGINT NOT NULL DEFAULT 0, -- 资金快照
+ reason VARCHAR(255) NOT NULL, -- 变动原因
+ post_id BIGINT NOT NULL DEFAULT 0, -- 关联动态
+ created_on BIGINT NOT NULL DEFAULT 0,
+ modified_on BIGINT NOT NULL DEFAULT 0,
+ deleted_on BIGINT NOT NULL DEFAULT 0,
+ is_del SMALLINT NOT NULL DEFAULT 0
);
+CREATE INDEX idx_wallet_statement_user_id ON p_wallet_statement USING btree (user_id);
diff --git a/scripts/paopao-sqlite3.sql b/scripts/paopao-sqlite3.sql
index a82c4a34..4b4d0ac3 100644
--- a/scripts/paopao-sqlite3.sql
+++ b/scripts/paopao-sqlite3.sql
@@ -101,10 +101,10 @@ CREATE TABLE "p_contact" (
"group_id" integer NOT NULL,
"remark" text(32) NOT NULL,
"status" integer NOT NULL,
+ "notice_enable" integer NOT NULL,
"is_top" integer NOT NULL,
"is_black" integer NOT NULL,
- "is_delete" integer NOT NULL,
- "notice_enable" integer NOT NULL,
+ "is_del" integer NOT NULL,
"created_on" integer NOT NULL,
"modified_on" integer NOT NULL,
"deleted_on" integer NOT NULL,
@@ -119,7 +119,7 @@ CREATE TABLE "p_contact_group" (
"id" integer NOT NULL,
"user_id" integer NOT NULL,
"name" text(32) NOT NULL,
- "is_delete" integer NOT NULL,
+ "is_del" integer NOT NULL,
"created_on" integer NOT NULL,
"modified_on" integer NOT NULL,
"deleted_on" integer NOT NULL,
@@ -169,7 +169,8 @@ CREATE TABLE "p_post" (
"created_on" integer NOT NULL,
"modified_on" integer NOT NULL,
"deleted_on" integer NOT NULL,
- "is_del" integer NOT NULL, `visibility` integer NOT NULL DEFAULT '0',
+ "is_del" integer NOT NULL,
+ "visibility" integer NOT NULL,
PRIMARY KEY ("id")
);
@@ -313,7 +314,7 @@ CREATE TABLE "p_wallet_statement" (
-- ----------------------------
-- Indexes structure for table p_attachment
-- ----------------------------
-CREATE INDEX "main"."idx_user"
+CREATE INDEX "idx_attachment_user_id"
ON "p_attachment" (
"user_id" ASC
);
@@ -321,15 +322,15 @@ ON "p_attachment" (
-- ----------------------------
-- Indexes structure for table p_captcha
-- ----------------------------
-CREATE INDEX "main"."idx_expired_on"
+CREATE INDEX "idx_captcha_expired_on"
ON "p_captcha" (
"expired_on" ASC
);
-CREATE INDEX "main"."idx_phone"
+CREATE INDEX "idx_captcha_phone"
ON "p_captcha" (
"phone" ASC
);
-CREATE INDEX "main"."idx_use_times"
+CREATE INDEX "idx_captcha_use_times"
ON "p_captcha" (
"use_times" ASC
);
@@ -337,32 +338,184 @@ ON "p_captcha" (
-- ----------------------------
-- Indexes structure for table p_comment
-- ----------------------------
-CREATE INDEX "main"."idx_post"
+CREATE INDEX "idx_comment_post_id"
ON "p_comment" (
"post_id" ASC
);
+CREATE INDEX "idx_comment_user_id"
+ON "p_comment" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_comment_content
+-- ----------------------------
+CREATE INDEX "idx_comment_content_comment_id"
+ON "p_comment_content" (
+ "comment_id" ASC
+);
+CREATE INDEX "idx_comment_content_sort"
+ON "p_comment_content" (
+ "sort" ASC
+);
+CREATE INDEX "idx_comment_content_type"
+ON "p_comment_content" (
+ "type" ASC
+);
+CREATE INDEX "idx_comment_content_user_id"
+ON "p_comment_content" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_comment_reply
+-- ----------------------------
+CREATE INDEX "idx_comment_reply_comment_id"
+ON "p_comment_reply" (
+ "comment_id" ASC
+);
-- ----------------------------
-- Indexes structure for table p_contact
-- ----------------------------
-CREATE UNIQUE INDEX "main"."idx_user_friend_id"
+CREATE UNIQUE INDEX "idx_contact_user_friend"
ON "p_contact" (
"user_id" ASC,
"friend_id" ASC
);
-CREATE INDEX "main"."idx_user_friend_status"
+CREATE INDEX "idx_contact_user_friend_status"
ON "p_contact" (
"user_id" ASC,
"friend_id" ASC,
"status" ASC
);
+-- ----------------------------
+-- Indexes structure for table p_message
+-- ----------------------------
+CREATE INDEX "idx_message_is_read"
+ON "p_message" (
+ "is_read" ASC
+);
+CREATE INDEX "idx_message_receiver_user_id"
+ON "p_message" (
+ "receiver_user_id" ASC
+);
+CREATE INDEX "idx_message_type"
+ON "p_message" (
+ "type" ASC
+);
+
-- ----------------------------
-- Indexes structure for table p_post
-- ----------------------------
-CREATE INDEX "main"."idx_visibility"
+CREATE INDEX "idx_post_user_id"
+ON "p_post" (
+ "user_id" ASC
+);
+CREATE INDEX "idx_post_visibility"
ON "p_post" (
"visibility" ASC
);
+-- ----------------------------
+-- Indexes structure for table p_post_attachment_bill
+-- ----------------------------
+CREATE INDEX "idx_post_attachment_bill_post_id"
+ON "p_post_attachment_bill" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_attachment_bill_user_id"
+ON "p_post_attachment_bill" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_collection
+-- ----------------------------
+CREATE INDEX "idx_post_collection_post_id"
+ON "p_post_collection" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_collection_user_id"
+ON "p_post_collection" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_content
+-- ----------------------------
+CREATE INDEX "idx_post_content_post_id"
+ON "p_post_content" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_content_user_id"
+ON "p_post_content" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_post_star
+-- ----------------------------
+CREATE INDEX "idx_post_star_post_id"
+ON "p_post_star" (
+ "post_id" ASC
+);
+CREATE INDEX "idx_post_star_user_id"
+ON "p_post_star" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_tag
+-- ----------------------------
+CREATE UNIQUE INDEX "idx_tag"
+ON "p_tag" (
+ "tag" ASC
+);
+CREATE INDEX "idx_tag_quote_num"
+ON "p_tag" (
+ "quote_num" ASC
+);
+CREATE INDEX "idx_tag_user_id"
+ON "p_tag" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_user
+-- ----------------------------
+CREATE INDEX "idx_user_phone"
+ON "p_user" (
+ "phone" ASC
+);
+CREATE UNIQUE INDEX "idx_user_username"
+ON "p_user" (
+ "username" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_wallet_recharge
+-- ----------------------------
+CREATE INDEX "idx_wallet_recharge_trade_no"
+ON "p_wallet_recharge" (
+ "trade_no" ASC
+);
+CREATE INDEX "idx_wallet_recharge_trade_status"
+ON "p_wallet_recharge" (
+ "trade_status" ASC
+);
+CREATE INDEX "idx_wallet_recharge_user_id"
+ON "p_wallet_recharge" (
+ "user_id" ASC
+);
+
+-- ----------------------------
+-- Indexes structure for table p_wallet_statement
+-- ----------------------------
+CREATE INDEX "idx_wallet_statement_user_id"
+ON "p_wallet_statement" (
+ "user_id" ASC
+);
+
PRAGMA foreign_keys = true;