|
|
|
@@ -0,0 +1,719 @@ |
|
|
|
# New-API 数据库表结构文档 |
|
|
|
|
|
|
|
本文档记录了 New-API 项目中所有数据库表及其字段的详细说明。 |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 目录 |
|
|
|
|
|
|
|
1. [users - 用户表](#1-users---用户表) |
|
|
|
2. [tokens - 令牌表](#2-tokens---令牌表) |
|
|
|
3. [channels - 渠道表](#3-channels---渠道表) |
|
|
|
4. [logs - 日志表](#4-logs---日志表) |
|
|
|
5. [options - 系统配置表](#5-options---系统配置表) |
|
|
|
6. [redemptions - 兑换码表](#6-redemptions---兑换码表) |
|
|
|
7. [top_ups - 充值记录表](#7-top_ups---充值记录表) |
|
|
|
8. [tasks - 异步任务表](#8-tasks---异步任务表) |
|
|
|
9. [midjourneys - Midjourney任务表](#9-midjourneys---midjourney任务表) |
|
|
|
10. [abilities - 渠道能力表](#10-abilities---渠道能力表) |
|
|
|
11. [setups - 系统初始化表](#11-setups---系统初始化表) |
|
|
|
12. [two_fas - 双因素认证表](#12-two_fas---双因素认证表) |
|
|
|
13. [two_fa_backup_codes - 2FA备用码表](#13-two_fa_backup_codes---2fa备用码表) |
|
|
|
14. [checkins - 签到记录表](#14-checkins---签到记录表) |
|
|
|
15. [passkey_credentials - Passkey凭证表](#15-passkey_credentials---passkey凭证表) |
|
|
|
16. [quota_data - 额度数据统计表](#16-quota_data---额度数据统计表) |
|
|
|
17. [subscription_plans - 订阅计划表](#17-subscription_plans---订阅计划表) |
|
|
|
18. [subscription_orders - 订阅订单表](#18-subscription_orders---订阅订单表) |
|
|
|
19. [user_subscriptions - 用户订阅表](#19-user_subscriptions---用户订阅表) |
|
|
|
20. [subscription_pre_consume_records - 订阅预消费记录表](#20-subscription_pre_consume_records---订阅预消费记录表) |
|
|
|
21. [custom_oauth_providers - 自定义OAuth提供商表](#21-custom_oauth_providers---自定义oauth提供商表) |
|
|
|
22. [user_oauth_bindings - 用户OAuth绑定表](#22-user_oauth_bindings---用户oauth绑定表) |
|
|
|
23. [vendors - 供应商表](#23-vendors---供应商表) |
|
|
|
24. [models - 模型元数据表](#24-models---模型元数据表) |
|
|
|
25. [prefill_groups - 预填充组表](#25-prefill_groups---预填充组表) |
|
|
|
26. [channel_pricings - 渠道定价表](#26-channel_pricings---渠道定价表) |
|
|
|
27. [pricing_tags - 定价标签表](#27-pricing_tags---定价标签表) |
|
|
|
28. [表关系图](#表关系图) |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 1. users - 用户表 |
|
|
|
|
|
|
|
存储系统用户信息。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| username | string | 用户名,唯一索引 | |
|
|
|
| password | string | 密码(哈希存储) | |
|
|
|
| display_name | string | 显示名称 | |
|
|
|
| role | int | 角色:1=普通用户,10=管理员,100=超级管理员 | |
|
|
|
| status | int | 状态:1=启用 | |
|
|
|
| email | string | 邮箱 | |
|
|
|
| github_id | string | GitHub OAuth ID | |
|
|
|
| discord_id | string | Discord OAuth ID | |
|
|
|
| oidc_id | string | OIDC OAuth ID | |
|
|
|
| wechat_id | string | 微信 OAuth ID | |
|
|
|
| telegram_id | string | Telegram OAuth ID | |
|
|
|
| access_token | *string | 系统管理访问令牌(32字符,唯一) | |
|
|
|
| quota | int | 用户配额/额度 | |
|
|
|
| used_quota | int | 已使用的配额 | |
|
|
|
| request_count | int | 请求次数 | |
|
|
|
| group | string | 用户分组(默认 'default') | |
|
|
|
| aff_code | string | 邀请码(唯一) | |
|
|
|
| aff_count | int | 邀请人数 | |
|
|
|
| aff_quota | int | 邀请剩余额度 | |
|
|
|
| aff_history_quota | int | 邀请历史总额度 | |
|
|
|
| inviter_id | int | 邀请人ID | |
|
|
|
| linux_do_id | string | LinuxDO OAuth ID | |
|
|
|
| setting | string | 用户设置(JSON格式) | |
|
|
|
| remark | string | 备注 | |
|
|
|
| stripe_customer | string | Stripe客户ID | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 2. tokens - 令牌表 |
|
|
|
|
|
|
|
存储用户的 API 令牌。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| key | string | 令牌密钥(48字符,唯一) | |
|
|
|
| status | int | 状态:1=启用 | |
|
|
|
| name | string | 令牌名称 | |
|
|
|
| created_time | int64 | 创建时间(Unix时间戳) | |
|
|
|
| accessed_time | int64 | 最后访问时间 | |
|
|
|
| expired_time | int64 | 过期时间(-1表示永不过期) | |
|
|
|
| remain_quota | int | 剩余额度 | |
|
|
|
| unlimited_quota | bool | 是否无限额度 | |
|
|
|
| model_limits_enabled | bool | 是否启用模型限制 | |
|
|
|
| model_limits | string | 模型限制列表(逗号分隔) | |
|
|
|
| allow_ips | *string | 允许的IP列表 | |
|
|
|
| used_quota | int | 已使用额度 | |
|
|
|
| group | string | 令牌分组 | |
|
|
|
| cross_group_retry | bool | 跨分组重试 | |
|
|
|
| bound_channel_id | int | 绑定的渠道ID(指定令牌只能使用该渠道) | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 3. channels - 渠道表 |
|
|
|
|
|
|
|
存储 API 服务商渠道配置。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| type | int | 渠道类型(OpenAI=1, Azure=2等) | |
|
|
|
| key | string | API密钥 | |
|
|
|
| openai_organization | *string | OpenAI组织ID | |
|
|
|
| test_model | *string | 测试模型 | |
|
|
|
| status | int | 状态:1=启用 | |
|
|
|
| name | string | 渠道名称 | |
|
|
|
| weight | *uint | 权重(负载均衡用) | |
|
|
|
| created_time | int64 | 创建时间 | |
|
|
|
| test_time | int64 | 最后测试时间 | |
|
|
|
| response_time | int | 响应时间(毫秒) | |
|
|
|
| base_url | *string | 基础URL | |
|
|
|
| other | string | 其他信息 | |
|
|
|
| balance | float64 | 余额(美元) | |
|
|
|
| balance_updated_time | int64 | 余额更新时间 | |
|
|
|
| models | string | 支持的模型列表 | |
|
|
|
| group | string | 渠道分组 | |
|
|
|
| used_quota | int64 | 已使用额度 | |
|
|
|
| model_mapping | *string | 模型映射(JSON) | |
|
|
|
| status_code_mapping | *string | 状态码映射 | |
|
|
|
| priority | *int64 | 优先级 | |
|
|
|
| auto_ban | *int | 是否自动封禁 | |
|
|
|
| other_info | string | 其他信息(JSON) | |
|
|
|
| tag | *string | 标签 | |
|
|
|
| setting | *string | 渠道额外设置(JSON) | |
|
|
|
| param_override | *string | 参数覆盖(JSON) | |
|
|
|
| header_override | *string | 请求头覆盖(JSON) | |
|
|
|
| remark | *string | 备注 | |
|
|
|
| channel_info | ChannelInfo | 渠道信息(JSON,多Key模式配置) | |
|
|
|
| settings | string | 其他设置 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 4. logs - 日志表 |
|
|
|
|
|
|
|
记录用户请求日志和系统日志。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| created_at | int64 | 创建时间(Unix时间戳) | |
|
|
|
| type | int | 日志类型:0=未知,1=充值,2=消费,3=管理,4=系统,5=错误,6=退款 | |
|
|
|
| content | string | 日志内容 | |
|
|
|
| username | string | 用户名 | |
|
|
|
| token_name | string | 令牌名称 | |
|
|
|
| model_name | string | 模型名称 | |
|
|
|
| quota | int | 消耗额度 | |
|
|
|
| prompt_tokens | int | 提示词Token数 | |
|
|
|
| completion_tokens | int | 完成Token数 | |
|
|
|
| use_time | int | 使用时间 | |
|
|
|
| is_stream | bool | 是否流式请求 | |
|
|
|
| channel_id | int | 渠道ID(索引) | |
|
|
|
| token_id | int | 令牌ID(索引) | |
|
|
|
| group | string | 分组 | |
|
|
|
| ip | string | 请求IP | |
|
|
|
| request_id | string | 请求ID(唯一) | |
|
|
|
| other | string | 其他信息(JSON) | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 5. options - 系统配置表 |
|
|
|
|
|
|
|
存储系统级配置项。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| key | string | 配置键(主键) | |
|
|
|
| value | string | 配置值 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 6. redemptions - 兑换码表 |
|
|
|
|
|
|
|
存储额度兑换码。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 创建者用户ID | |
|
|
|
| key | string | 兑换码(32字符,唯一) | |
|
|
|
| status | int | 状态:1=启用,2=已使用,3=已禁用 | |
|
|
|
| name | string | 兑换码名称 | |
|
|
|
| quota | int | 额度值 | |
|
|
|
| created_time | int64 | 创建时间 | |
|
|
|
| redeemed_time | int64 | 兑换时间 | |
|
|
|
| used_user_id | int | 使用者用户ID | |
|
|
|
| expired_time | int64 | 过期时间(0=永不过期) | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 7. top_ups - 充值记录表 |
|
|
|
|
|
|
|
记录用户充值订单。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| amount | int64 | 充值额度 | |
|
|
|
| money | float64 | 支付金额 | |
|
|
|
| trade_no | string | 交易号(唯一,索引) | |
|
|
|
| payment_method | string | 支付方式 | |
|
|
|
| create_time | int64 | 创建时间 | |
|
|
|
| complete_time | int64 | 完成时间 | |
|
|
|
| status | string | 状态:pending/success/failed | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 8. tasks - 异步任务表 |
|
|
|
|
|
|
|
存储异步任务(如视频生成等)。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int64 | 主键,自增ID | |
|
|
|
| created_at | int64 | 创建时间(索引) | |
|
|
|
| updated_at | int64 | 更新时间 | |
|
|
|
| task_id | string | 任务ID(对外暴露,索引) | |
|
|
|
| platform | string | 平台类型(索引) | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| group | string | 分组 | |
|
|
|
| channel_id | int | 渠道ID(索引) | |
|
|
|
| quota | int | 消耗额度 | |
|
|
|
| action | string | 任务类型(索引) | |
|
|
|
| status | string | 任务状态(索引) | |
|
|
|
| fail_reason | string | 失败原因 | |
|
|
|
| submit_time | int64 | 提交时间(索引) | |
|
|
|
| start_time | int64 | 开始时间(索引) | |
|
|
|
| finish_time | int64 | 完成时间(索引) | |
|
|
|
| progress | string | 进度(索引) | |
|
|
|
| properties | json | 任务属性 | |
|
|
|
| private_data | json | 私有数据(含Key、计费上下文等) | |
|
|
|
| data | json | 任务数据 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 9. midjourneys - Midjourney任务表 |
|
|
|
|
|
|
|
存储 Midjourney 图片生成任务。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| code | int | 响应码 | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| action | string | 动作类型(索引) | |
|
|
|
| mj_id | string | Midjourney ID(索引) | |
|
|
|
| prompt | string | 提示词 | |
|
|
|
| prompt_en | string | 英文提示词 | |
|
|
|
| description | string | 描述 | |
|
|
|
| state | string | 状态 | |
|
|
|
| submit_time | int64 | 提交时间(索引) | |
|
|
|
| start_time | int64 | 开始时间(索引) | |
|
|
|
| finish_time | int64 | 完成时间(索引) | |
|
|
|
| image_url | string | 图片URL | |
|
|
|
| video_url | string | 视频URL | |
|
|
|
| video_urls | string | 多个视频URL | |
|
|
|
| status | string | 状态(索引) | |
|
|
|
| progress | string | 进度(索引) | |
|
|
|
| fail_reason | string | 失败原因 | |
|
|
|
| channel_id | int | 渠道ID | |
|
|
|
| quota | int | 消耗额度 | |
|
|
|
| buttons | string | 操作按钮(JSON) | |
|
|
|
| properties | string | 属性(JSON) | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 10. abilities - 渠道能力表 |
|
|
|
|
|
|
|
记录各渠道对不同模型的支持能力。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| group | string | 分组(主键之一) | |
|
|
|
| model | string | 模型名称(主键之一) | |
|
|
|
| channel_id | int | 渠道ID(主键之一,索引) | |
|
|
|
| enabled | bool | 是否启用 | |
|
|
|
| priority | *int64 | 优先级(索引) | |
|
|
|
| weight | uint | 权重(索引) | |
|
|
|
| tag | *string | 标签(索引) | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 11. setups - 系统初始化表 |
|
|
|
|
|
|
|
记录系统初始化状态。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | uint | 主键 | |
|
|
|
| version | string | 系统版本号 | |
|
|
|
| initialized_at | int64 | 初始化时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 12. two_fas - 双因素认证表 |
|
|
|
|
|
|
|
存储用户的双因素认证设置。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(唯一,索引) | |
|
|
|
| secret | string | TOTP密钥 | |
|
|
|
| is_enabled | bool | 是否启用 | |
|
|
|
| failed_attempts | int | 失败尝试次数 | |
|
|
|
| locked_until | *time.Time | 锁定截止时间 | |
|
|
|
| last_used_at | *time.Time | 最后使用时间 | |
|
|
|
| created_at | time.Time | 创建时间 | |
|
|
|
| updated_at | time.Time | 更新时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 13. two_fa_backup_codes - 2FA备用码表 |
|
|
|
|
|
|
|
存储双因素认证的备用恢复码。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| code_hash | string | 备用码哈希 | |
|
|
|
| is_used | bool | 是否已使用 | |
|
|
|
| used_at | *time.Time | 使用时间 | |
|
|
|
| created_at | time.Time | 创建时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 14. checkins - 签到记录表 |
|
|
|
|
|
|
|
记录用户每日签到。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(联合唯一索引) | |
|
|
|
| checkin_date | string | 签到日期 YYYY-MM-DD(联合唯一索引) | |
|
|
|
| quota_awarded | int | 奖励额度 | |
|
|
|
| created_at | int64 | 创建时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 15. passkey_credentials - Passkey凭证表 |
|
|
|
|
|
|
|
存储用户的 Passkey/WebAuthn 凭证。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(唯一索引) | |
|
|
|
| credential_id | string | 凭证ID(base64,唯一) | |
|
|
|
| public_key | string | 公钥(base64) | |
|
|
|
| attestation_type | string | 证明类型 | |
|
|
|
| aaguid | string | AAGUID(base64) | |
|
|
|
| sign_count | uint32 | 签名计数 | |
|
|
|
| clone_warning | bool | 克隆警告 | |
|
|
|
| user_present | bool | 用户在场标志 | |
|
|
|
| user_verified | bool | 用户已验证标志 | |
|
|
|
| backup_eligible | bool | 备份资格 | |
|
|
|
| backup_state | bool | 备份状态 | |
|
|
|
| transports | string | 传输方式(JSON) | |
|
|
|
| attachment | string | 附件类型 | |
|
|
|
| last_used_at | *time.Time | 最后使用时间 | |
|
|
|
| created_at | time.Time | 创建时间 | |
|
|
|
| updated_at | time.Time | 更新时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 16. quota_data - 额度数据统计表 |
|
|
|
|
|
|
|
用于统计分析用户的额度使用情况。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| username | string | 用户名 | |
|
|
|
| model_name | string | 模型名称 | |
|
|
|
| created_at | int64 | 创建时间(Unix时间戳) | |
|
|
|
| token_used | int | Token使用量 | |
|
|
|
| count | int | 请求次数 | |
|
|
|
| quota | int | 消耗额度 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 17. subscription_plans - 订阅计划表 |
|
|
|
|
|
|
|
存储可购买的订阅套餐。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| title | string | 套餐标题 | |
|
|
|
| subtitle | string | 副标题 | |
|
|
|
| price_amount | float64 | 价格金额 | |
|
|
|
| currency | string | 货币(默认USD) | |
|
|
|
| duration_unit | string | 时长单位:year/month/day/hour/custom | |
|
|
|
| duration_value | int | 时长数值 | |
|
|
|
| custom_seconds | int64 | 自定义秒数 | |
|
|
|
| enabled | bool | 是否启用 | |
|
|
|
| sort_order | int | 排序顺序 | |
|
|
|
| stripe_price_id | string | Stripe价格ID | |
|
|
|
| creem_product_id | string | Creem产品ID | |
|
|
|
| max_purchase_per_user | int | 每用户最大购买次数 | |
|
|
|
| upgrade_group | string | 升级到的用户组 | |
|
|
|
| total_amount | int64 | 总额度 | |
|
|
|
| quota_reset_period | string | 额度重置周期 | |
|
|
|
| quota_reset_custom_seconds | int64 | 自定义重置秒数 | |
|
|
|
| created_at | int64 | 创建时间 | |
|
|
|
| updated_at | int64 | 更新时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 18. subscription_orders - 订阅订单表 |
|
|
|
|
|
|
|
记录订阅购买订单。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| plan_id | int | 计划ID(索引) | |
|
|
|
| money | float64 | 支付金额 | |
|
|
|
| trade_no | string | 交易号(唯一,索引) | |
|
|
|
| payment_method | string | 支付方式 | |
|
|
|
| status | string | 状态 | |
|
|
|
| create_time | int64 | 创建时间 | |
|
|
|
| complete_time | int64 | 完成时间 | |
|
|
|
| provider_payload | string | 支付提供商数据 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 19. user_subscriptions - 用户订阅表 |
|
|
|
|
|
|
|
记录用户购买的订阅。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| plan_id | int | 计划ID(索引) | |
|
|
|
| amount_total | int64 | 总额度 | |
|
|
|
| amount_used | int64 | 已使用额度 | |
|
|
|
| start_time | int64 | 开始时间 | |
|
|
|
| end_time | int64 | 结束时间(索引) | |
|
|
|
| status | string | 状态 | |
|
|
|
| source | string | 来源:order/admin | |
|
|
|
| last_reset_time | int64 | 上次重置时间 | |
|
|
|
| next_reset_time | int64 | 下次重置时间(索引) | |
|
|
|
| upgrade_group | string | 升级到的分组 | |
|
|
|
| prev_user_group | string | 之前用户分组 | |
|
|
|
| created_at | int64 | 创建时间 | |
|
|
|
| updated_at | int64 | 更新时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 20. subscription_pre_consume_records - 订阅预消费记录表 |
|
|
|
|
|
|
|
记录订阅的预消费额度,用于流式请求的额度控制。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| request_id | string | 请求ID(唯一索引) | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| user_subscription_id | int | 用户订阅ID(索引) | |
|
|
|
| pre_consumed | int64 | 预消费额度 | |
|
|
|
| status | string | 状态:consumed/refunded | |
|
|
|
| created_at | int64 | 创建时间 | |
|
|
|
| updated_at | int64 | 更新时间(索引) | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 21. custom_oauth_providers - 自定义OAuth提供商表 |
|
|
|
|
|
|
|
存储自定义的 OAuth 登录提供商配置。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| name | string | 显示名称 | |
|
|
|
| slug | string | URL标识符(唯一) | |
|
|
|
| icon | string | 图标名称 | |
|
|
|
| enabled | bool | 是否启用 | |
|
|
|
| client_id | string | OAuth客户端ID | |
|
|
|
| client_secret | string | OAuth客户端密钥 | |
|
|
|
| authorization_endpoint | string | 授权URL | |
|
|
|
| token_endpoint | string | Token交换URL | |
|
|
|
| user_info_endpoint | string | 用户信息URL | |
|
|
|
| scopes | string | OAuth权限范围 | |
|
|
|
| user_id_field | string | 用户ID字段路径 | |
|
|
|
| username_field | string | 用户名字段路径 | |
|
|
|
| display_name_field | string | 显示名称字段路径 | |
|
|
|
| email_field | string | 邮箱字段路径 | |
|
|
|
| well_known | string | OIDC发现端点 | |
|
|
|
| auth_style | int | 认证样式 | |
|
|
|
| access_policy | string | 访问控制策略(JSON) | |
|
|
|
| access_denied_message | string | 访问拒绝消息 | |
|
|
|
| created_at | time.Time | 创建时间 | |
|
|
|
| updated_at | time.Time | 更新时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 22. user_oauth_bindings - 用户OAuth绑定表 |
|
|
|
|
|
|
|
记录用户与第三方 OAuth 账号的绑定关系。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| user_id | int | 用户ID(索引) | |
|
|
|
| provider_id | int | 提供商ID(索引) | |
|
|
|
| provider_user_id | string | 提供商用户ID(索引) | |
|
|
|
| created_at | time.Time | 创建时间 | |
|
|
|
| updated_at | time.Time | 更新时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 23. vendors - 供应商表 |
|
|
|
|
|
|
|
存储 AI 模型供应商信息。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| name | string | 供应商名称 | |
|
|
|
| description | string | 描述 | |
|
|
|
| icon | string | 图标 | |
|
|
|
| status | int | 状态:1=启用,0=禁用 | |
|
|
|
| created_time | int64 | 创建时间 | |
|
|
|
| updated_time | int64 | 更新时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 24. models - 模型元数据表 |
|
|
|
|
|
|
|
存储 AI 模型的元数据信息(**注意:不存储价格,价格在 channel_pricings 表或全局配置中**)。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| model_name | string | 模型名称 | |
|
|
|
| description | string | 描述 | |
|
|
|
| icon | string | 图标 | |
|
|
|
| tags | string | 标签 | |
|
|
|
| type | int | 模型类型:1=Chat, 2=Image, 3=Audio, 4=Video, 5=Embedding, 6=Rerank, 7=Vision, 8=Other | |
|
|
|
| vendor_id | int | 供应商ID | |
|
|
|
| endpoints | string | 支持的端点(JSON) | |
|
|
|
| status | int | 状态:1=启用,0=禁用 | |
|
|
|
| sync_official | int | 是否同步官方 | |
|
|
|
| name_rule | int | 名称匹配规则:0=精确匹配,1=前缀匹配,2=包含匹配,3=后缀匹配 | |
|
|
|
| created_time | int64 | 创建时间 | |
|
|
|
| updated_time | int64 | 更新时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 25. prefill_groups - 预填充组表 |
|
|
|
|
|
|
|
存储预设的提示词/内容组。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| name | string | 组名称(唯一,索引) | |
|
|
|
| type | string | 组类型(索引) | |
|
|
|
| items | json | 组项目列表 | |
|
|
|
| description | string | 描述 | |
|
|
|
| created_time | int64 | 创建时间 | |
|
|
|
| updated_time | int64 | 更新时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 26. channel_pricings - 渠道定价表 |
|
|
|
|
|
|
|
存储各渠道的模型定价配置。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| model_name | string | 模型名称(联合唯一索引) | |
|
|
|
| channel_id | int | 渠道ID(联合唯一索引,索引) | |
|
|
|
| quota_type | int | 计费类型:0=按Token,1=按次 | |
|
|
|
| model_ratio | float64 | 模型倍率 | |
|
|
|
| completion_ratio | float64 | 完成倍率 | |
|
|
|
| model_price | float64 | 模型价格 | |
|
|
|
| tag_ids | string | 关联的定价标签ID列表(逗号分隔) | |
|
|
|
| created_time | int64 | 创建时间(Unix时间戳) | |
|
|
|
| updated_time | int64 | 更新时间(Unix时间戳) | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 27. pricing_tags - 定价标签表 |
|
|
|
|
|
|
|
存储定价分类标签。 |
|
|
|
|
|
|
|
| 字段名 | 类型 | 说明 | |
|
|
|
|--------|------|------| |
|
|
|
| id | int | 主键,自增ID | |
|
|
|
| name | string | 标签名称(唯一) | |
|
|
|
| color | string | 颜色(默认#1890ff) | |
|
|
|
| description | string | 描述 | |
|
|
|
| sort_order | int | 排序顺序 | |
|
|
|
| created_time | int64 | 创建时间 | |
|
|
|
| deleted_at | gorm.DeletedAt | 软删除时间 | |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 表关系图 |
|
|
|
|
|
|
|
### 核心关系 |
|
|
|
|
|
|
|
``` |
|
|
|
┌─────────────┐ ┌─────────────┐ |
|
|
|
│ users │───1:N─│ tokens │ |
|
|
|
└─────────────┘ └─────────────┘ |
|
|
|
│ |
|
|
|
│ 1:N |
|
|
|
▼ |
|
|
|
┌─────────────┐ ┌─────────────┐ |
|
|
|
│ logs │ │ top_ups │ |
|
|
|
└─────────────┘ └─────────────┘ |
|
|
|
|
|
|
|
┌─────────────┐ ┌─────────────┐ |
|
|
|
│ channels │───1:N─│ abilities │ |
|
|
|
└─────────────┘ └─────────────┘ |
|
|
|
│ |
|
|
|
│ 1:N |
|
|
|
▼ |
|
|
|
┌──────────────────┐ |
|
|
|
│ channel_pricings │ |
|
|
|
└──────────────────┘ |
|
|
|
``` |
|
|
|
|
|
|
|
### 订阅系统关系 |
|
|
|
|
|
|
|
``` |
|
|
|
┌───────────────────┐ |
|
|
|
│ subscription_plans│ |
|
|
|
└─────────┬─────────┘ |
|
|
|
│ |
|
|
|
┌─────┴─────┐ |
|
|
|
│ 1:N │ 1:N |
|
|
|
▼ ▼ |
|
|
|
┌───────────────┐ ┌──────────────────┐ |
|
|
|
│subscription_ │ │ user_subscriptions│ |
|
|
|
│ orders │ └───────────────────┘ |
|
|
|
└───────────────┘ │ |
|
|
|
│ 1:N |
|
|
|
▼ |
|
|
|
┌──────────────────────────┐ |
|
|
|
│ subscription_pre_consume │ |
|
|
|
│ _records │ |
|
|
|
└──────────────────────────┘ |
|
|
|
``` |
|
|
|
|
|
|
|
### OAuth 系统关系 |
|
|
|
|
|
|
|
``` |
|
|
|
┌────────────────────────┐ |
|
|
|
│ custom_oauth_providers │ |
|
|
|
└───────────┬────────────┘ |
|
|
|
│ 1:N |
|
|
|
▼ |
|
|
|
┌───────────────────────┐ ┌─────────────┐ |
|
|
|
│ user_oauth_bindings │─────│ users │ |
|
|
|
└───────────────────────┘ └─────────────┘ |
|
|
|
``` |
|
|
|
|
|
|
|
### 模型元数据关系 |
|
|
|
|
|
|
|
``` |
|
|
|
┌─────────────┐ ┌─────────────┐ |
|
|
|
│ vendors │───1:N─│ models │ |
|
|
|
└─────────────┘ └─────────────┘ |
|
|
|
``` |
|
|
|
|
|
|
|
--- |
|
|
|
|
|
|
|
## 完整关系列表 |
|
|
|
|
|
|
|
| 主表 | 从表 | 关系 | 说明 | |
|
|
|
|------|------|------|------| |
|
|
|
| users | tokens | 1:N | 一个用户可有多个令牌 | |
|
|
|
| users | logs | 1:N | 一个用户可有多条日志 | |
|
|
|
| users | top_ups | 1:N | 一个用户可有多条充值记录 | |
|
|
|
| users | redemptions | 1:N | 一个用户创建的兑换码 | |
|
|
|
| users | tasks | 1:N | 一个用户可有多个任务 | |
|
|
|
| users | midjourneys | 1:N | 一个用户可有多个MJ任务 | |
|
|
|
| users | checkins | 1:N | 一个用户可有多条签到记录 | |
|
|
|
| users | two_fas | 1:1 | 一个用户可有一个2FA设置 | |
|
|
|
| users | passkey_credentials | 1:1 | 一个用户可有一个Passkey | |
|
|
|
| users | user_subscriptions | 1:N | 一个用户可有多个订阅 | |
|
|
|
| users | user_oauth_bindings | 1:N | 一个用户可绑定多个OAuth | |
|
|
|
| channels | abilities | 1:N | 一个渠道可有多个能力记录 | |
|
|
|
| channels | channel_pricings | 1:N | 一个渠道可有多个模型定价 | |
|
|
|
| channels | tokens | 1:N | 一个渠道可被多个令牌绑定(可选,通过 bound_channel_id) | |
|
|
|
| subscription_plans | subscription_orders | 1:N | 一个计划可有多个订单 | |
|
|
|
| subscription_plans | user_subscriptions | 1:N | 一个计划可有多个用户订阅 | |
|
|
|
| custom_oauth_providers | user_oauth_bindings | 1:N | 一个提供商可有多个绑定 | |
|
|
|
| vendors | models | 1:N | 一个供应商可有多个模型 | |
|
|
|
| pricing_tags | channel_pricings | N:M | 定价标签与渠道定价多对多(通过 tag_ids) | |