DB
主业务数据库的全部数据表和字段。
DB 是默认模板的业务数据库,初始表结构由 schema/db-init.sql 定义。这里按表介绍账号、认证、OAuth 2.0、权限、支付、工单、通知、联盟推广和 Reaction 数据,包括字段类型、能否为空、默认值和数据库约束。
时间和布尔值
时间字段使用 Unix 毫秒;布尔状态使用 SQLite INTEGER 保存,通常以 1 表示是、0 表示否。
ticket
保存工单的检索字段和状态;工单正文保存在 MAIN_KV,由 kv_id 关联。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
requester_id | INTEGER | 否 | — | — | 提交工单的用户 ID;小于或等于 0 时表示匿名提交者。 |
assignee_id | INTEGER | 是 | — | — | 负责处理工单的后台用户 ID。 |
kv_id | TEXT | 否 | — | — | 工单正文在 MAIN_KV 中使用的唯一 Key。 |
status | TEXT | 否 | 'open' | — | 当前状态。 |
priority | INTEGER | 否 | 0 | — | 优先级,数值越大表示优先级越高。 |
ticket_type | TEXT | 是 | — | — | 工单类型。 |
product | TEXT | 是 | — | — | 工单关联的产品。 |
title | TEXT | 是 | — | — | 标题。 |
name | TEXT | 是 | — | — | 名称。 |
email | TEXT | 是 | — | — | 邮箱地址。 |
requester_unread | INTEGER | 否 | 0 | — | 请求者是否有未读回复;1 表示有,0 表示没有。 |
closed_at | INTEGER | 是 | — | — | 工单关闭时间,Unix 毫秒。 |
resolved_at | INTEGER | 是 | — | — | 工单解决时间,Unix 毫秒。 |
deleted_at | INTEGER | 否 | 0 | — | 软删除时间;0 表示未删除。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
newsletter_subscriber
保存邮件订阅地址、语言和订阅时间。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
email | TEXT | 否 | — | — | 邮箱地址。 |
locale | TEXT | 否 | — | — | 语言代码。 |
subscribed_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 订阅邮件列表的时间,Unix 毫秒。 |
saas_user
保存用户账号、登录服务商、双重验证和联盟推广相关状态。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
email | TEXT | 是 | — | — | 邮箱地址。 |
email_hash | TEXT | 否 | — | — | 规范化邮箱的摘要,用于唯一性判断和安全查询。 |
email_verified | INTEGER | 否 | 0 | — | 邮箱是否已经验证;1 表示已验证。 |
user_name | TEXT | 否 | — | — | 用户名。 |
display_name | TEXT | 是 | — | — | 显示名称。 |
password_hash | TEXT | 是 | — | — | 密码摘要;使用第三方登录且未设置密码时为空。 |
account_id | TEXT | 是 | — | — | 登录服务商返回的账号 ID。 |
image_url | TEXT | 是 | — | — | 头像地址。 |
blog_url | TEXT | 是 | — | — | 用户主页或博客地址。 |
provider | TEXT | 否 | 'email' | — | 账号登录服务商。 |
two_factor_enabled | INTEGER | 否 | 0 | — | 是否启用双重验证;1 表示启用。 |
totp_key | BLOB | 是 | — | — | 加密保存的 TOTP 密钥。 |
recovery_codes | JSON | 否 | '[]' | — | 恢复码摘要数组。 |
recovery_codes_generated_at | INTEGER | 否 | 0 | — | 最近一次生成恢复码的时间,Unix 毫秒。 |
deleted_at | INTEGER | 否 | 0 | — | 软删除时间;0 表示未删除。 |
deleted_reason | TEXT | 是 | — | — | 软删除原因。 |
disabled_at | INTEGER | 否 | 0 | — | 停用时间;0 表示未停用。 |
disabled_reason | TEXT | 是 | — | — | 停用原因。 |
disabled_expires_at | INTEGER | 否 | 0 | — | 临时停用的结束时间,0 表示没有设置结束时间。 |
invited_by_id | INTEGER | 是 | — | — | 邀请该用户的推广者用户 ID。 |
own_referral_code | TEXT | 否 | — | — | 分配给该用户的唯一推广码。 |
affiliate_enabled_at | INTEGER | 否 | 0 | — | 启用联盟推广资格的时间;0 表示未启用。 |
affiliate_disabled_at | INTEGER | 否 | 0 | — | 停用联盟推广资格的时间;0 表示未停用。 |
affiliate_disabled_reason | TEXT | 是 | — | — | 停用联盟推广资格的原因。 |
affiliate_disabled_by_id | INTEGER | 是 | — | — | 执行停用操作的后台用户 ID。 |
referral_status | TEXT | 是 | — | — | 推荐关系资格状态。 |
referral_status_reason | TEXT | 是 | — | — | 推荐关系资格状态发生变化的原因。 |
referral_status_changed_at | INTEGER | 否 | 0 | — | 推荐关系资格状态最近一次变化的时间;0 表示尚未记录。 |
referral_status_changed_by_id | INTEGER | 是 | — | — | 修改推荐关系资格状态的后台用户 ID。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
notification
保存站内通知内容、受众范围、发布状态和统计数量。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
audience_type | TEXT | 否 | — | — | 通知受众类型:全部用户或指定用户。 |
recipient_count | INTEGER | 否 | 0 | — | 通知目标用户数量。 |
read_count | INTEGER | 否 | 0 | — | 已读用户数量。 |
title | TEXT | 否 | — | — | 标题。 |
summary | TEXT | 否 | — | — | 摘要。 |
message | JSON | 否 | — | — | 结构化通知内容。 |
status | TEXT | 否 | — | — | 当前状态。 |
created_by_user_id | INTEGER | 是 | — | — | 创建该记录的后台用户 ID。 |
published_at | INTEGER | 是 | — | — | 通知发布时间,Unix 毫秒。 |
expires_at | INTEGER | 是 | — | — | 过期时间,Unix 毫秒。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
user_notification
保存用户对通知的已读和关闭状态,以及更新已读人数时使用的并发控制标记。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
user_id | INTEGER | 否 | — | PK(组合) | 用户 ID。 |
notification_id | TEXT | 否 | — | PK(组合) | 通知 ID。 |
read_at | INTEGER | 是 | — | — | 用户读取通知的时间,Unix 毫秒。 |
dismissed_at | INTEGER | 是 | — | — | 用户关闭通知的时间,Unix 毫秒。 |
read_claim_id | TEXT | 是 | — | — | 并发更新已读人数时使用的唯一标识。 |
affiliate_payout_profiles
加密保存推广者的收款资料。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 否 | — | — | 用户 ID。 |
payment_method | TEXT | 否 | — | — | 收款方式。 |
encrypted_details | BLOB | 否 | — | — | 加密后的收款资料。 |
payment_account_fingerprint | TEXT | 否 | — | — | 收款账号指纹,用于判断资料是否重复。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
affiliate_commissions
保存每笔推广佣金的来源、计算快照和有效状态。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
affiliate_user_id | INTEGER | 否 | — | — | 获得佣金或结算款的推广者用户 ID。 |
referred_user_id | INTEGER | 否 | — | — | 通过推广关系注册或购买的用户 ID。 |
product_id | TEXT | 否 | — | — | 产品 Key,对应 config/products.ts。 |
plan_id | TEXT | 否 | — | — | 套餐 Key,对应 config/products.ts。 |
provider | TEXT | 否 | — | — | 生成佣金的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
transaction_id | TEXT | 否 | — | — | 交易 ID。 |
transaction_item_id | TEXT | 否 | — | — | 交易明细 ID。 |
provider_line_item_id | TEXT | 否 | — | — | 支付服务商中的明细 ID。 |
provider_price_id | TEXT | 是 | — | — | 支付服务商中的 Price ID。 |
transaction_status | TEXT | 否 | — | — | 生成佣金时记录的交易状态。 |
payment_kind | TEXT | 否 | — | — | 付款类型:一次性付款或订阅付款。 |
subscription_id | TEXT | 是 | — | — | 订阅 ID。 |
quantity | INTEGER | 是 | — | — | 数量。 |
unit_amount_minor | INTEGER | 是 | — | — | 单价,使用货币最小单位。 |
unit_amount_decimal | TEXT | 是 | — | — | 支付服务商返回的高精度单价字符串。 |
subtotal_minor | INTEGER | 是 | — | — | 折扣和税费前小计,使用货币最小单位。 |
discount_minor | INTEGER | 是 | — | — | 折扣金额,使用货币最小单位。 |
tax_minor | INTEGER | 是 | — | — | 税额,使用货币最小单位。 |
total_minor | INTEGER | 否 | — | — | 总金额,使用货币最小单位。 |
currency | TEXT | 否 | — | — | 币种代码。 |
calculation_type | TEXT | 否 | — | — | 佣金计算方式:固定金额或按比例计算。 |
percentage_basis_points | INTEGER | 是 | — | — | 佣金比例,单位为基点;10000 表示 100%。 |
percentage_base | TEXT | 是 | — | — | 按比例计算佣金时使用的金额口径。 |
fixed_amount_minor | INTEGER | 是 | — | — | 固定佣金金额,使用货币最小单位。 |
fixed_currency | TEXT | 是 | — | — | 固定佣金使用的币种。 |
status | TEXT | 否 | 'valid' | — | 当前状态。 |
status_reason_code | TEXT | 是 | — | — | 佣金失效或退款原因代码。 |
status_reason | TEXT | 是 | — | — | 使用自定义原因代码时填写的原因。 |
status_internal_note | TEXT | 是 | — | — | 只供后台查看的状态备注。 |
status_changed_at | INTEGER | 否 | 0 | — | 状态最近一次变化的时间;0 表示尚未记录。 |
status_changed_by_id | INTEGER | 是 | — | — | 修改状态的后台用户 ID。 |
earned_at | INTEGER | 是 | — | — | 佣金确认时间,Unix 毫秒。 |
available_at | INTEGER | 是 | — | — | 佣金进入可结算状态的时间,Unix 毫秒。 |
deleted_at | INTEGER | 否 | 0 | — | 软删除时间;0 表示未删除。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
affiliate_monthly_payouts
按推广者、月份和币种汇总佣金及付款状态。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
affiliate_user_id | INTEGER | 否 | — | — | 获得佣金或结算款的推广者用户 ID。 |
period_start | INTEGER | 否 | — | — | 结算月份的开始时间,Unix 毫秒。 |
currency | TEXT | 否 | — | — | 币种代码。 |
calculated_referred_user_count | INTEGER | 否 | 0 | — | 参与本期结算的被推荐用户数量。 |
calculated_commission_count | INTEGER | 否 | 0 | — | 本期佣金记录总数。 |
calculated_valid_count | INTEGER | 否 | 0 | — | 本期有效佣金记录数量。 |
calculated_refunded_count | INTEGER | 否 | 0 | — | 本期已退款佣金记录数量。 |
calculated_invalid_count | INTEGER | 否 | 0 | — | 本期无效佣金记录数量。 |
calculated_total_payment_amount_minor | INTEGER | 否 | 0 | — | 本期付款总金额,使用货币最小单位。 |
calculated_valid_payment_amount_minor | INTEGER | 否 | 0 | — | 产生有效佣金的付款金额,使用货币最小单位。 |
calculated_valid_commission_amount_minor | INTEGER | 否 | 0 | — | 本期有效佣金金额,使用货币最小单位。 |
calculated_refunded_commission_amount_minor | INTEGER | 否 | 0 | — | 本期已退款佣金金额,使用货币最小单位。 |
calculated_invalid_commission_amount_minor | INTEGER | 否 | 0 | — | 本期无效佣金金额,使用货币最小单位。 |
calculation_changed_at | INTEGER | 否 | 0 | — | 结算金额最近一次变化的时间。 |
status | TEXT | 否 | 'draft' | — | 当前状态。 |
requested_at | INTEGER | 否 | 0 | — | 提交结算申请的时间;0 表示尚未申请。 |
actual_paid_amount_minor | INTEGER | 是 | — | — | 实际支付金额,使用货币最小单位。 |
paid_at | INTEGER | 否 | 0 | — | 月度结算的实际付款时间;0 表示尚未付款。 |
paid_by_id | INTEGER | 是 | — | — | 登记付款的后台用户 ID。 |
email_content_json | JSON | 是 | — | — | 结算通知邮件的内容快照。 |
send_email | INTEGER | 否 | 0 | — | 是否发送结算通知邮件;1 表示发送。 |
email_sent_at | INTEGER | 否 | 0 | — | 结算通知邮件发送成功的时间;0 表示尚未发送。 |
email_failure_reason | TEXT | 是 | — | — | 结算通知邮件发送失败的原因。 |
manual_updated_at | INTEGER | 否 | 0 | — | 后台手工修改结算记录的时间;0 表示未修改。 |
manual_updated_by_id | INTEGER | 是 | — | — | 执行手工修改的后台用户 ID。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
affiliate_monthly_payout_records
保存月度结算的每次实际付款记录和收款资料快照。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
monthly_payout_id | INTEGER | 否 | — | — | 月度结算记录 ID。 |
revision | INTEGER | 否 | — | — | 同一月度结算下的付款记录版本号。 |
calculated_amount_minor | INTEGER | 否 | — | — | 记录付款时计算出的应付金额,使用货币最小单位。 |
calculation_changed_at | INTEGER | 否 | — | — | 结算金额最近一次变化的时间。 |
actual_paid_amount_minor | INTEGER | 否 | — | — | 实际支付金额,使用货币最小单位。 |
difference_reason | TEXT | 否 | '' | — | 实际付款金额与计算金额不一致的原因。 |
internal_note | TEXT | 否 | '' | — | 只供后台查看的备注。 |
paid_at | INTEGER | 否 | — | — | 本次付款实际发生的时间,Unix 毫秒。 |
encrypted_payout_profile | BLOB | 否 | — | — | 付款时使用的加密收款资料快照。 |
saved_at | INTEGER | 否 | — | — | 付款记录保存时间,Unix 毫秒。 |
saved_by_id | INTEGER | 否 | — | — | 保存付款记录的后台用户 ID。 |
saas_session
保存用户登录会话、有效期和最近活动信息。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 否 | — | — | 用户 ID。 |
expires_at | INTEGER | 否 | — | — | 过期时间,Unix 毫秒。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
last_seen_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最近一次活动时间,Unix 毫秒。 |
ip | TEXT | 是 | — | — | IP 地址。 |
user_agent | TEXT | 是 | — | — | User-Agent。 |
country | TEXT | 是 | — | — | 国家或地区代码。 |
two_factor_verified | INTEGER | 否 | 0 | — | 当前流程是否已通过双重验证;1 表示已通过。 |
two_factor_setup_session
保存双重验证设置或更换过程中的临时密钥和恢复码。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 否 | — | FK → saas_user.id(级联删除) | 用户 ID。 |
saas_session_id | TEXT | 否 | — | FK → saas_session.id(级联删除) | 登录会话 ID。 |
purpose | TEXT | 否 | — | — | 该临时会话的用途。 |
encrypted_totp_key | BLOB | 否 | — | — | 设置期间加密保存的 TOTP 密钥。 |
recovery_codes | JSON | 否 | — | — | 恢复码摘要数组。 |
encrypted_recovery_codes | BLOB | 否 | — | — | 设置期间加密保存的恢复码。 |
attempt_count | INTEGER | 否 | 0 | — | 已尝试验证的次数。 |
claimed_at | INTEGER | 否 | 0 | — | 取得这条临时记录处理权的时间;0 表示尚未处理。 |
consumed_at | INTEGER | 否 | 0 | — | 这条临时记录使用完毕的时间;0 表示尚未使用。 |
expires_at | INTEGER | 否 | — | — | 过期时间,Unix 毫秒。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
email_verification_session
保存邮箱验证流程使用的验证码和有效期。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 否 | — | — | 用户 ID。 |
email | TEXT | 否 | — | — | 邮箱地址。 |
code | TEXT | 否 | — | — | 验证码或授权码。 |
type | TEXT | 否 | — | — | 记录类型。 |
attempt_count | INTEGER | 否 | 0 | — | 已尝试验证的次数。 |
expires_at | INTEGER | 否 | — | — | 过期时间,Unix 毫秒。 |
password_reset_session
保存密码重置流程的验证码、验证状态和有效期。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 否 | — | — | 用户 ID。 |
email | TEXT | 否 | — | — | 邮箱地址。 |
code | TEXT | 否 | — | — | 验证码或授权码。 |
type | TEXT | 是 | — | — | 记录类型。 |
attempt_count | INTEGER | 否 | 0 | — | 已尝试验证的次数。 |
expires_at | INTEGER | 否 | — | — | 过期时间,Unix 毫秒。 |
email_verified | INTEGER | 否 | 0 | — | 邮箱是否已经验证;1 表示已验证。 |
two_factor_verified | INTEGER | 否 | 0 | — | 当前流程是否已通过双重验证;1 表示已通过。 |
oauth_auth_session
保存 OAuth 2.0 授权请求在用户确认前的临时状态。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 是 | — | — | 用户 ID。 |
client_id | TEXT | 否 | — | — | OAuth 2.0 客户端 ID。 |
redirect_uri | TEXT | 否 | — | — | 本次授权请求使用的回调地址。 |
response_type | TEXT | 否 | — | — | OAuth 2.0 Response Type。 |
scope | TEXT | 是 | — | — | 本次授权请求的 Scope 字符串。 |
state | TEXT | 是 | — | — | OAuth 2.0 State,用于关联授权请求并防止 CSRF。 |
code_challenge | TEXT | 是 | — | — | PKCE Code Challenge。 |
code_challenge_method | TEXT | 是 | — | — | PKCE Code Challenge Method。 |
approved_at | INTEGER | 是 | NULL | — | 用户确认授权的时间。 |
upgrade_details | JSON | 是 | NULL | — | 授权过程中使用的升级提示数据。 |
expires_at | INTEGER | 否 | — | — | 过期时间,Unix 毫秒。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
oauth_client
保存 OAuth 2.0 客户端、回调地址、授权方式和 Scope。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
name | TEXT | 否 | — | — | 名称。 |
secret | TEXT | 是 | — | — | OAuth 2.0 客户端 Secret 的摘要;公开客户端可以为空。 |
owner_user_id | INTEGER | 是 | NULL | — | OAuth 2.0 客户端所有者的用户 ID。 |
redirect_uris | JSON | 否 | '[]' | — | 客户端允许使用的回调地址数组。 |
allowed_grants | JSON | 否 | '[]' | — | 客户端允许使用的授权方式数组。 |
scopes | JSON | 否 | '[]' | — | Scope 数组。 |
logo_uri | TEXT | 是 | — | — | 客户端 Logo 地址。 |
homepage_uri | TEXT | 是 | — | — | 客户端主页地址。 |
description | TEXT | 是 | — | — | 说明文字。 |
privacy_policy_uri | TEXT | 是 | — | — | 隐私政策地址。 |
terms_of_service_uri | TEXT | 是 | — | — | 服务条款地址。 |
disabled_at | INTEGER | 否 | 0 | — | 停用时间;0 表示未停用。 |
deleted_at | INTEGER | 否 | 0 | — | 软删除时间;0 表示未删除。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
oauth_auth_code
保存 OAuth 2.0 授权码及 PKCE 信息。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
code | TEXT | 否 | — | PK | 验证码或授权码。 |
redirect_uri | TEXT | 是 | — | — | 本次授权请求使用的回调地址。 |
code_challenge | TEXT | 是 | — | — | PKCE Code Challenge。 |
code_challenge_method | TEXT | 是 | 'plain' | — | PKCE Code Challenge Method。 |
expires_at | INTEGER | 否 | — | — | 过期时间,Unix 毫秒。 |
user_id | INTEGER | 是 | NULL | — | 用户 ID。 |
client_id | TEXT | 否 | — | — | OAuth 2.0 客户端 ID。 |
scopes | JSON | 否 | '[]' | — | Scope 数组。 |
revoked_at | INTEGER | 否 | 0 | — | 撤销时间;0 表示未撤销。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
oauth_token
保存 OAuth 2.0 Access Token 和 Refresh Token。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
access_token | TEXT | 否 | — | PK | Access Token,也是该表主键。 |
access_token_expires_at | INTEGER | 否 | — | — | Access Token 过期时间,Unix 毫秒。 |
refresh_token | TEXT | 是 | — | — | Refresh Token。 |
refresh_token_expires_at | INTEGER | 是 | NULL | — | Refresh Token 过期时间,Unix 毫秒。 |
client_id | TEXT | 否 | — | — | OAuth 2.0 客户端 ID。 |
user_id | INTEGER | 是 | NULL | — | 用户 ID。 |
oauth_code | TEXT | 是 | NULL | — | 签发该 Token 使用的授权码。 |
scopes | JSON | 否 | '[]' | — | Scope 数组。 |
revoked_at | INTEGER | 否 | 0 | — | 撤销时间;0 表示未撤销。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
user_role_capability
保存角色授予后展开到 Subject 的静态能力。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
subject_type | TEXT | 否 | — | — | Subject 类型。 |
subject_id | TEXT | 否 | — | — | Subject ID。 |
user_id | INTEGER | 是 | — | — | 用户 ID。 |
event_id | TEXT | 是 | — | — | 授予该角色能力的 Reaction Event ID。 |
command_id | TEXT | 是 | — | — | 授予该角色能力的 Reaction Command ID。 |
source_type | TEXT | 否 | — | — | 角色授予来源的类型。 |
source_key | TEXT | 否 | — | — | 角色或权益的来源 Key。 |
role_key | TEXT | 否 | — | — | 角色 Key,对应 config/roles.ts。 |
capability_key | TEXT | 否 | — | — | 能力 Key,对应 config/capability.ts。 |
starts_at | INTEGER | 是 | NULL | — | 生效时间,Unix 毫秒。 |
ends_at | INTEGER | 是 | NULL | — | 结束时间,Unix 毫秒。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
deleted_at | INTEGER | 否 | 0 | — | 软删除时间;0 表示未删除。 |
disabled_at | INTEGER | 否 | 0 | — | 停用时间;0 表示未停用。 |
disabled_reason | TEXT | 是 | — | — | 停用原因。 |
disabled_expires_at | INTEGER | 否 | 0 | — | 临时停用的结束时间,0 表示没有设置结束时间。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
user_entitlement_capability
保存权益授予后展开到 Subject 的布尔能力或额度能力。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
subject_type | TEXT | 否 | — | — | Subject 类型。 |
subject_id | TEXT | 否 | — | — | Subject ID。 |
user_id | INTEGER | 是 | — | — | 用户 ID。 |
event_id | TEXT | 是 | — | — | 授予该权益能力的 Reaction Event ID。 |
command_id | TEXT | 是 | — | — | 授予该权益能力的 Reaction Command ID。 |
source_type | TEXT | 否 | — | — | 权益授予来源的类型。 |
source_key | TEXT | 否 | — | — | 角色或权益的来源 Key。 |
source_quantity | INTEGER | 否 | 1 | — | 来源授予的数量。 |
source_unit_limit | INTEGER | 是 | NULL | — | 每个来源单位提供的额度。 |
entitlement_key | TEXT | 否 | — | — | 权益 Key,对应 config/entitlements.ts。 |
capability_key | TEXT | 否 | — | — | 能力 Key,对应 config/capability.ts。 |
capability_type | TEXT | 否 | — | — | 能力类型。 |
priority | INTEGER | 否 | 0 | — | 优先级,数值越大表示优先级越高。 |
rollover | INTEGER | 否 | 0 | — | 周期结束时是否结转未使用额度;1 表示结转。 |
quota_limit | INTEGER | 否 | 0 | — | 额度上限。 |
quota_total | INTEGER | 否 | 0 | — | 当前可用额度总量。 |
quota_used | INTEGER | 否 | 0 | — | 当前已使用额度。 |
quota_used_reset_mode | TEXT | 否 | 'clear' | — | 重置周期到期时已用额度的处理方式。 |
starts_at | INTEGER | 是 | NULL | — | 生效时间,Unix 毫秒。 |
ends_at | INTEGER | 是 | NULL | — | 结束时间,Unix 毫秒。 |
reset_alignment | TEXT | 是 | NULL | — | 额度周期的对齐方式。 |
reset_interval | TEXT | 是 | NULL | — | 额度重置周期单位。 |
reset_interval_count | INTEGER | 否 | 0 | — | 每个额度周期包含的单位数量。 |
anchor_at | INTEGER | 否 | — | — | 额度周期的锚点时间,Unix 毫秒。 |
reset_period_count | INTEGER | 是 | 0 | — | 已经完成的额度周期数量。 |
anchor_reset_at | INTEGER | 是 | — | — | 基于锚点计算出的本周期重置时间。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
deleted_at | INTEGER | 否 | 0 | — | 软删除时间;0 表示未删除。 |
disabled_at | INTEGER | 否 | 0 | — | 停用时间;0 表示未停用。 |
disabled_reason | TEXT | 是 | — | — | 停用原因。 |
disabled_expires_at | INTEGER | 否 | 0 | — | 临时停用的结束时间,0 表示没有设置结束时间。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 最后更新时间,Unix 毫秒。 |
capability_quota_event
保存额度能力的增加、扣减、重置和结转记录。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
subject_type | TEXT | 否 | — | — | Subject 类型。 |
subject_id | TEXT | 否 | — | — | Subject ID。 |
user_id | INTEGER | 是 | — | — | 用户 ID。 |
source_type | TEXT | 否 | — | — | 产生额度记录的来源类型。 |
source_key | TEXT | 否 | — | — | 角色或权益的来源 Key。 |
entitlement_key | TEXT | 否 | — | — | 权益 Key,对应 config/entitlements.ts。 |
capability_key | TEXT | 否 | — | — | 能力 Key,对应 config/capability.ts。 |
event_type | TEXT | 否 | — | — | 额度变化类型,例如授予、使用或重置。 |
delta | INTEGER | 否 | — | — | 本次额度变化量,正数增加、负数扣减。 |
reason | TEXT | 是 | — | — | 本次额度变化的原因。 |
metadata | TEXT | 是 | — | — | 业务元数据。 |
created_at | INTEGER | 否 | 当前 Unix 毫秒时间 | — | 创建时间,Unix 毫秒。 |
event_execution
保存 Reaction Event 的输入快照、幂等键和执行租约。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | INTEGER | 是 | — | — | 用户 ID。 |
event_type | TEXT | 否 | — | — | Reaction Event 类型。 |
event_version | INTEGER | 否 | — | — | Event 定义版本。 |
idempotency_key | TEXT | 否 | — | — | Event 幂等键。 |
continue_on_failure | INTEGER | 否 | — | — | Command 业务失败后是否继续执行后续 Command。 |
payload | TEXT | 否 | — | — | 序列化后的输入数据。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
lease_token | TEXT | 是 | — | — | 当前执行租约的 Token。 |
lease_expires_at | INTEGER | 是 | — | — | 当前执行租约的过期时间。 |
command_execution
保存 Event 生成的 Command、执行顺序、重试次数和结果。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
event_execution_id | TEXT | 否 | — | FK → event_execution.id(删除 Event 时级联删除) | 所属 Event 执行记录 ID。 |
user_id | INTEGER | 是 | — | — | 用户 ID。 |
command_key | TEXT | 否 | — | — | 同一次 Event 中唯一的 Command 步骤名称。 |
command_type | TEXT | 否 | — | — | Command 类型。 |
command_version | INTEGER | 否 | — | — | Command 定义版本。 |
mode | TEXT | 否 | — | — | Command 执行模式:sync 或 async。 |
max_attempts | INTEGER | 否 | — | — | 允许自动执行的最大次数。 |
sequence | INTEGER | 否 | — | — | Command 在 Event 中的执行顺序。 |
payload | TEXT | 否 | — | — | 序列化后的输入数据。 |
status | TEXT | 否 | — | — | 当前状态。 |
attempt_count | INTEGER | 否 | 0 | — | 已执行的次数。 |
result | TEXT | 是 | — | — | 序列化后的 Command 返回结果。 |
last_error | TEXT | 是 | — | — | 最近一次处理失败的错误信息。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
completed_at | INTEGER | 是 | — | — | 完成时间,Unix 毫秒。 |
webhook_events
保存支付服务商 Webhook 的原始请求、处理状态和失败信息。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | INTEGER | 否 | — | PK | 记录主键。 |
provider | TEXT | 否 | — | — | 发送 Webhook 的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
event_id | TEXT | 否 | — | — | 支付服务商提供的 Webhook Event ID。 |
event_type | TEXT | 否 | — | — | 支付服务商提供的 Webhook Event 类型。 |
user_id | TEXT | 是 | — | — | 用户 ID。 |
occurred_at | INTEGER | 是 | — | — | 支付服务商记录的 Event 发生时间,Unix 毫秒。 |
raw_body | TEXT | 否 | — | — | Webhook 原始请求体,用于验签和重放。 |
status | TEXT | 否 | 'processing' | — | 当前状态。 |
claim_token | TEXT | 是 | — | — | Webhook 处理租约使用的 Token。 |
last_error | TEXT | 是 | — | — | 最近一次处理失败的错误信息。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
payment_customers
保存本地用户与支付服务商 Customer 的对应关系。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
user_id | TEXT | 否 | — | — | 用户 ID。 |
provider | TEXT | 否 | — | — | Customer 所属的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
provider_customer_id | TEXT | 否 | — | — | 支付服务商中的 Customer ID。 |
is_primary | INTEGER | 否 | 0 | — | 是否为该用户在此支付连接下的主 Customer;1 表示是。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
checkout_sessions
保存本地 Checkout Session 及支付服务商返回的状态。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
provider | TEXT | 否 | — | — | Checkout 所属的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
provider_checkout_type | TEXT | 否 | — | — | 支付服务商中的 Checkout 类型。 |
provider_checkout_id | TEXT | 是 | — | — | 支付服务商中的 Checkout ID。 |
customer_id | TEXT | 否 | — | FK → payment_customers.id | payment_customers 记录 ID。 |
mode | TEXT | 否 | — | — | Checkout 模式:一次性付款或订阅。 |
status | TEXT | 否 | — | — | 当前状态。 |
provider_status | TEXT | 是 | — | — | 支付服务商返回的原始状态。 |
payment_status | TEXT | 否 | 'pending' | — | 支付状态。 |
provider_payment_status | TEXT | 是 | — | — | 支付服务商返回的原始付款状态。 |
has_invoice_creation | INTEGER | 否 | 0 | — | 是否要求支付服务商创建发票;1 表示是。 |
checkout_request | JSON | 是 | — | — | 创建 Checkout 时使用的请求快照。 |
context | JSON | 是 | — | — | 创建 Checkout 时保存的业务上下文。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
currency | TEXT | 是 | — | — | 币种代码。 |
amount_total_minor | INTEGER | 是 | — | — | Checkout 总金额,使用货币最小单位。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
last_error | TEXT | 是 | — | — | 最近一次处理失败的错误信息。 |
provider_updated_at | INTEGER | 是 | — | — | 支付服务商中的最后更新时间,Unix 毫秒。 |
expires_at | INTEGER | 是 | — | — | 过期时间,Unix 毫秒。 |
completed_at | INTEGER | 是 | — | — | 完成时间,Unix 毫秒。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
purchase_items
保存 Checkout Session 中的一次性购买项。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
checkout_session_id | TEXT | 否 | — | FK → checkout_sessions.id(级联删除) | checkout_sessions 记录 ID。 |
provider_line_item_id | TEXT | 是 | — | — | 支付服务商中的明细 ID。 |
provider_product_id | TEXT | 是 | — | — | 支付服务商中的 Product ID。 |
provider_price_id | TEXT | 是 | — | — | 支付服务商中的 Price ID。 |
provider_variant_id | TEXT | 是 | — | — | 支付服务商中的 Variant ID。 |
description | TEXT | 是 | — | — | 说明文字。 |
quantity | INTEGER | 是 | — | — | 数量。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
subscriptions
保存支付服务商订阅及其计费周期、暂停、取消和金额信息。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
customer_id | TEXT | 否 | — | — | payment_customers 记录 ID。 |
checkout_session_id | TEXT | 是 | — | — | checkout_sessions 记录 ID。 |
provider | TEXT | 否 | — | — | 订阅所属的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
provider_subscription_id | TEXT | 否 | — | — | 支付服务商中的 Subscription ID。 |
status | TEXT | 否 | — | — | 当前状态。 |
provider_status | TEXT | 是 | — | — | 支付服务商返回的原始状态。 |
collection_mode | TEXT | 否 | 'unknown' | — | 订阅收款方式。 |
collection_paused | INTEGER | 否 | 0 | — | 订阅是否暂停收款;1 表示暂停。 |
collection_pause_resumes_at | INTEGER | 是 | — | — | 计划恢复收款的时间。 |
collection_pause_details | JSON | 是 | — | — | 支付服务商返回的暂停收款详情。 |
started_at | INTEGER | 是 | — | — | 订阅开始时间,Unix 毫秒。 |
trial_start | INTEGER | 是 | — | — | 试用期开始时间,Unix 毫秒。 |
trial_end | INTEGER | 是 | — | — | 试用期结束时间,Unix 毫秒。 |
current_period_start | INTEGER | 是 | — | — | 当前计费周期开始时间,Unix 毫秒。 |
current_period_end | INTEGER | 是 | — | — | 当前计费周期结束时间,Unix 毫秒。 |
cancel_at_period_end | INTEGER | 否 | 0 | — | 是否在当前计费周期结束时取消;1 表示是。 |
cancel_at | INTEGER | 是 | — | — | 计划取消时间,Unix 毫秒。 |
canceled_at | INTEGER | 是 | — | — | 取消时间,Unix 毫秒。 |
paused_at | INTEGER | 是 | — | — | 暂停时间,Unix 毫秒。 |
ends_at | INTEGER | 是 | — | — | 支付服务商给出的订阅预计结束时间,Unix 毫秒。 |
ended_at | INTEGER | 是 | — | — | 订阅结束时间,Unix 毫秒。 |
scheduled_change | JSON | 是 | — | — | 支付服务商返回的订阅计划变更。 |
scheduled_change_at | INTEGER | 是 | — | — | 计划变更的生效时间。 |
next_billed_at | INTEGER | 是 | — | — | 下一次扣款时间,Unix 毫秒。 |
next_amount_minor | INTEGER | 是 | — | — | 下一期应付金额,使用货币最小单位。 |
next_currency | TEXT | 是 | — | — | 下一期付款币种。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
provider_updated_at | INTEGER | 是 | — | — | 支付服务商中的最后更新时间,Unix 毫秒。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
subscription_items
保存订阅中的产品、Price、数量和计费周期。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
subscription_id | TEXT | 否 | — | FK → subscriptions.id(级联删除) | 订阅 ID。 |
provider_subscription_item_id | TEXT | 是 | — | — | 支付服务商中的 Subscription Item ID。 |
provider_product_id | TEXT | 是 | — | — | 支付服务商中的 Product ID。 |
provider_price_id | TEXT | 是 | — | — | 支付服务商中的 Price ID。 |
description | TEXT | 是 | — | — | 说明文字。 |
quantity | INTEGER | 是 | — | — | 数量。 |
unit_amount_minor | INTEGER | 是 | — | — | 单价,使用货币最小单位。 |
currency | TEXT | 是 | — | — | 币种代码。 |
pricing_model | TEXT | 否 | 'unknown' | — | 计价模式。 |
billing_interval | TEXT | 是 | — | — | 计费周期单位。 |
billing_interval_count | INTEGER | 是 | — | — | 一个计费周期包含的单位数量。 |
current_period_start | INTEGER | 是 | — | — | 当前计费周期开始时间,Unix 毫秒。 |
current_period_end | INTEGER | 是 | — | — | 当前计费周期结束时间,Unix 毫秒。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
transactions
保存支付交易、账单金额、付款人和发票信息。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
public_reference_id | TEXT | 否 | — | — | 可以向用户展示的交易参考编号。 |
provider | TEXT | 否 | — | — | 交易所属的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
source_type | TEXT | 否 | — | — | 支付服务商中的原始交易对象的类型。 |
provider_source_id | TEXT | 否 | — | — | 支付服务商中的原始交易对象的 ID。 |
customer_id | TEXT | 是 | — | — | payment_customers 记录 ID。 |
checkout_session_id | TEXT | 是 | — | — | checkout_sessions 记录 ID。 |
provider_customer_id | TEXT | 是 | — | — | 支付服务商中的 Customer ID。 |
provider_subscription_id | TEXT | 是 | — | — | 支付服务商中的 Subscription ID。 |
kind | TEXT | 否 | — | — | 交易类型,例如一次性付款、订阅首付或订阅续费。 |
status | TEXT | 否 | — | — | 当前状态。 |
provider_status | TEXT | 是 | — | — | 支付服务商返回的原始状态。 |
collection_mode | TEXT | 否 | 'unknown' | — | 订阅收款方式。 |
subtotal_minor | INTEGER | 是 | — | — | 折扣和税费前小计,使用货币最小单位。 |
discount_minor | INTEGER | 是 | — | — | 折扣金额,使用货币最小单位。 |
tax_minor | INTEGER | 是 | — | — | 税额,使用货币最小单位。 |
total_minor | INTEGER | 否 | — | — | 总金额,使用货币最小单位。 |
amount_due_minor | INTEGER | 是 | — | — | 应付金额,使用货币最小单位。 |
amount_paid_minor | INTEGER | 是 | — | — | 已付金额,使用货币最小单位。 |
amount_remaining_minor | INTEGER | 是 | — | — | 未付金额,使用货币最小单位。 |
currency | TEXT | 否 | — | — | 币种代码。 |
billing_reason | TEXT | 是 | — | — | 产生本次交易的计费原因。 |
payer_email | TEXT | 是 | — | — | 付款人邮箱。 |
payer_name | TEXT | 是 | — | — | 付款人姓名。 |
billing_address | JSON | 是 | — | — | 账单地址。 |
tax_identifiers | JSON | 是 | — | — | 税务标识数组。 |
invoice_number | TEXT | 是 | — | — | 发票编号。 |
document_url | TEXT | 是 | — | — | 支付服务商提供的账单文档地址。 |
document_pdf_url | TEXT | 是 | — | — | 支付服务商提供的 PDF 账单地址。 |
failure_code | TEXT | 是 | — | — | 支付服务商返回的失败代码。 |
failure_reason | TEXT | 是 | — | — | 处理失败的原因。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
provider_updated_at | INTEGER | 是 | — | — | 支付服务商中的最后更新时间,Unix 毫秒。 |
issued_at | INTEGER | 是 | — | — | 账单或交易签发时间,Unix 毫秒。 |
due_at | INTEGER | 是 | — | — | 应付款时间,Unix 毫秒。 |
paid_at | INTEGER | 是 | — | — | 交易完成付款的时间,Unix 毫秒。 |
occurred_at | INTEGER | 否 | — | — | 交易实际发生时间,Unix 毫秒。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
transaction_items
保存交易中的产品、Price、计费周期和金额明细。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
transaction_id | TEXT | 否 | — | FK → transactions.id(级联删除) | 交易 ID。 |
provider_line_item_id | TEXT | 是 | — | — | 支付服务商中的明细 ID。 |
provider_product_id | TEXT | 是 | — | — | 支付服务商中的 Product ID。 |
provider_price_id | TEXT | 是 | — | — | 支付服务商中的 Price ID。 |
provider_variant_id | TEXT | 是 | — | — | 支付服务商中的 Variant ID。 |
provider_subscription_item_id | TEXT | 是 | — | — | 支付服务商中的 Subscription Item ID。 |
description | TEXT | 是 | — | — | 说明文字。 |
billing_type | TEXT | 否 | 'unknown' | — | 交易明细的计费类型。 |
is_proration | INTEGER | 否 | 0 | — | 该明细是否为按比例补差价;1 表示是。 |
billing_interval | TEXT | 是 | — | — | 计费周期单位。 |
billing_interval_count | INTEGER | 是 | — | — | 一个计费周期包含的单位数量。 |
period_start | INTEGER | 是 | — | — | 本条明细对应的计费周期开始时间,Unix 毫秒。 |
period_end | INTEGER | 是 | — | — | 本条明细对应的计费周期结束时间,Unix 毫秒。 |
quantity | INTEGER | 是 | — | — | 数量。 |
unit_amount_minor | INTEGER | 是 | — | — | 单价,使用货币最小单位。 |
unit_amount_decimal | TEXT | 是 | — | — | 支付服务商返回的高精度单价字符串。 |
subtotal_minor | INTEGER | 是 | — | — | 折扣和税费前小计,使用货币最小单位。 |
discount_minor | INTEGER | 是 | — | — | 折扣金额,使用货币最小单位。 |
tax_minor | INTEGER | 是 | — | — | 税额,使用货币最小单位。 |
total_minor | INTEGER | 否 | — | — | 总金额,使用货币最小单位。 |
currency | TEXT | 否 | — | — | 币种代码。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |
refunds
保存交易退款及支付服务商返回的退款状态。
| 字段 | 类型 | 可空 | 默认值 | 键 | 含义 |
|---|---|---|---|---|---|
id | TEXT | 否 | — | PK | 记录主键。 |
transaction_id | TEXT | 否 | — | FK → transactions.id(禁止删除仍有退款的交易) | 交易 ID。 |
provider | TEXT | 否 | — | — | 退款所属的支付服务商。 |
connection_id | TEXT | 否 | — | — | 支付连接 ID,对应 config/payment.ts。 |
provider_refund_type | TEXT | 否 | — | — | 支付服务商中的退款类型。 |
provider_refund_id | TEXT | 否 | — | — | 支付服务商中的退款 ID。 |
provider_parent_type | TEXT | 是 | — | — | 支付服务商中的退款父对象类型。 |
provider_parent_id | TEXT | 是 | — | — | 支付服务商中的退款父对象 ID。 |
status | TEXT | 否 | — | — | 当前状态。 |
provider_status | TEXT | 是 | — | — | 支付服务商返回的原始状态。 |
amount_minor | INTEGER | 否 | — | — | 金额,使用货币最小单位。 |
tax_amount_minor | INTEGER | 是 | — | — | 退款中的税额,使用货币最小单位。 |
currency | TEXT | 否 | — | — | 币种代码。 |
reason | TEXT | 是 | — | — | 支付服务商给出的退款原因。 |
failure_reason | TEXT | 是 | — | — | 处理失败的原因。 |
metadata | JSON | 是 | — | — | 业务元数据。 |
provider_data | JSON | 是 | — | — | 支付服务商返回的原始数据。 |
provider_updated_at | INTEGER | 否 | — | — | 支付服务商中的最后更新时间,Unix 毫秒。 |
occurred_at | INTEGER | 否 | — | — | 退款实际发生时间,Unix 毫秒。 |
created_at | INTEGER | 否 | — | — | 创建时间,Unix 毫秒。 |
updated_at | INTEGER | 否 | — | — | 最后更新时间,Unix 毫秒。 |