Merge upstream main into feat/500-api-key-ip-whitelist

This commit is contained in:
RWDai
2026-05-20 10:26:56 +08:00
501 changed files with 47013 additions and 3667 deletions

View File

@@ -113,6 +113,17 @@ type = "text"
length = 32
default = "system"
[[table.users.columns]]
name = "privacy_policy_accepted_version"
type = "text"
length = 64
nullable = true
[[table.users.columns]]
name = "privacy_policy_accepted_at"
type = "timestamp"
nullable = true
[[table.users.columns]]
name = "metadata"
type = "json"
@@ -544,6 +555,11 @@ name = "is_pinned"
type = "bool"
default = false
[[table.announcements.columns]]
name = "requires_ack"
type = "bool"
default = false
[[table.announcements.columns]]
name = "start_time"
type = "unix_seconds"

View File

@@ -579,6 +579,10 @@ type = "unix_seconds"
name = "provider_api_keys_provider_id_idx"
columns = ["provider_id"]
[[table.provider_api_keys.indexes]]
name = "idx_provider_api_keys_provider_default_sort"
columns = ["provider_id", "internal_priority", "name", "id"]
[table.pool_member_scores]
domain = "provider_catalog"
order = 44
@@ -1296,6 +1300,10 @@ columns = ["external_task_id"]
name = "video_tasks_next_poll_idx"
columns = ["next_poll_at"]
[[table.video_tasks.indexes]]
name = "video_tasks_due_poll_idx"
columns = ["status", "next_poll_at", "updated_at"]
[[table.video_tasks.indexes]]
name = "video_tasks_user_status_idx"
columns = ["user_id", "status"]

View File

@@ -137,6 +137,12 @@ name = "extra_config"
type = "json"
nullable = true
[[table.oauth_providers.columns]]
name = "icon_url"
type = "text"
length = 500
nullable = true
[[table.oauth_providers.columns]]
name = "is_enabled"
type = "bool"

View File

@@ -438,6 +438,275 @@ columns = ["order_kind", "status"]
name = "idx_payment_orders_product"
columns = ["product_id"]
[table.user_invite_codes]
domain = "wallet_billing"
order = 42
primary_key = ["user_id"]
[[table.user_invite_codes.columns]]
name = "user_id"
type = "text_id"
length = 64
[[table.user_invite_codes.columns]]
name = "invite_code"
type = "text"
length = 64
[[table.user_invite_codes.columns]]
name = "active"
type = "bool"
default = true
[[table.user_invite_codes.columns]]
name = "created_at"
type = "timestamp"
[[table.user_invite_codes.columns]]
name = "updated_at"
type = "timestamp"
[[table.user_invite_codes.uniques]]
name = "user_invite_codes_invite_code_key"
columns = ["invite_code"]
[[table.user_invite_codes.foreign_keys]]
name = "user_invite_codes_user_id_fkey"
columns = ["user_id"]
references_table = "users"
references_columns = ["id"]
on_delete = "cascade"
[table.user_referrals]
domain = "wallet_billing"
order = 43
primary_key = ["id"]
[[table.user_referrals.columns]]
name = "id"
type = "text_id"
length = 64
[[table.user_referrals.columns]]
name = "inviter_user_id"
type = "text_id"
length = 64
[[table.user_referrals.columns]]
name = "invitee_user_id"
type = "text_id"
length = 64
[[table.user_referrals.columns]]
name = "invite_code_snapshot"
type = "text"
length = 64
[[table.user_referrals.columns]]
name = "source_json"
type = "json"
nullable = true
[[table.user_referrals.columns]]
name = "first_paid_order_id"
type = "text_id"
length = 64
nullable = true
[[table.user_referrals.columns]]
name = "first_paid_at"
type = "timestamp"
nullable = true
[[table.user_referrals.columns]]
name = "created_at"
type = "timestamp"
[[table.user_referrals.columns]]
name = "updated_at"
type = "timestamp"
[[table.user_referrals.uniques]]
name = "user_referrals_invitee_user_id_key"
columns = ["invitee_user_id"]
[[table.user_referrals.indexes]]
name = "idx_user_referrals_inviter"
columns = ["inviter_user_id", "created_at"]
[[table.user_referrals.indexes]]
name = "idx_user_referrals_created"
columns = ["created_at"]
[[table.user_referrals.indexes]]
name = "idx_user_referrals_invite_code"
columns = ["invite_code_snapshot"]
[[table.user_referrals.foreign_keys]]
name = "user_referrals_inviter_user_id_fkey"
columns = ["inviter_user_id"]
references_table = "users"
references_columns = ["id"]
on_delete = "cascade"
[[table.user_referrals.foreign_keys]]
name = "user_referrals_invitee_user_id_fkey"
columns = ["invitee_user_id"]
references_table = "users"
references_columns = ["id"]
on_delete = "cascade"
[[table.user_referrals.foreign_keys]]
name = "user_referrals_first_paid_order_fkey"
columns = ["first_paid_order_id"]
references_table = "payment_orders"
references_columns = ["id"]
on_delete = "set_null"
[table.referral_rewards]
domain = "wallet_billing"
order = 44
primary_key = ["id"]
[[table.referral_rewards.columns]]
name = "id"
type = "text_id"
length = 64
[[table.referral_rewards.columns]]
name = "referral_id"
type = "text_id"
length = 64
[[table.referral_rewards.columns]]
name = "inviter_user_id"
type = "text_id"
length = 64
[[table.referral_rewards.columns]]
name = "invitee_user_id"
type = "text_id"
length = 64
[[table.referral_rewards.columns]]
name = "reward_type"
type = "text"
length = 32
[[table.referral_rewards.columns]]
name = "trigger_point"
type = "text"
length = 64
[[table.referral_rewards.columns]]
name = "source_order_id"
type = "text_id"
length = 64
nullable = true
[[table.referral_rewards.columns]]
name = "idempotency_key"
type = "text"
length = 128
[[table.referral_rewards.columns]]
name = "amount_usd"
type = "float64"
[[table.referral_rewards.columns]]
name = "status"
type = "text"
length = 32
default = "pending"
[[table.referral_rewards.columns]]
name = "wallet_transaction_id"
type = "text_id"
length = 64
nullable = true
[[table.referral_rewards.columns]]
name = "reversed_amount_usd"
type = "float64"
default = 0
[[table.referral_rewards.columns]]
name = "pending_reversal_amount_usd"
type = "float64"
default = 0
[[table.referral_rewards.columns]]
name = "failure_reason"
type = "long_text"
nullable = true
[[table.referral_rewards.columns]]
name = "admin_operator_id"
type = "text_id"
length = 64
nullable = true
[[table.referral_rewards.columns]]
name = "admin_note"
type = "long_text"
nullable = true
[[table.referral_rewards.columns]]
name = "created_at"
type = "timestamp"
[[table.referral_rewards.columns]]
name = "updated_at"
type = "timestamp"
[[table.referral_rewards.uniques]]
name = "referral_rewards_idempotency_key_key"
columns = ["idempotency_key"]
[[table.referral_rewards.indexes]]
name = "idx_referral_rewards_inviter_status"
columns = ["inviter_user_id", "status", "created_at"]
[[table.referral_rewards.indexes]]
name = "idx_referral_rewards_inviter_created"
columns = ["inviter_user_id", "created_at"]
[[table.referral_rewards.indexes]]
name = "idx_referral_rewards_created"
columns = ["created_at"]
[[table.referral_rewards.indexes]]
name = "idx_referral_rewards_source_order"
columns = ["source_order_id"]
[[table.referral_rewards.foreign_keys]]
name = "referral_rewards_referral_id_fkey"
columns = ["referral_id"]
references_table = "user_referrals"
references_columns = ["id"]
on_delete = "cascade"
[[table.referral_rewards.foreign_keys]]
name = "referral_rewards_inviter_user_id_fkey"
columns = ["inviter_user_id"]
references_table = "users"
references_columns = ["id"]
on_delete = "cascade"
[[table.referral_rewards.foreign_keys]]
name = "referral_rewards_invitee_user_id_fkey"
columns = ["invitee_user_id"]
references_table = "users"
references_columns = ["id"]
on_delete = "cascade"
[[table.referral_rewards.foreign_keys]]
name = "referral_rewards_source_order_fkey"
columns = ["source_order_id"]
references_table = "payment_orders"
references_columns = ["id"]
on_delete = "set_null"
[table.payment_gateway_configs]
domain = "wallet_billing"
order = 45
@@ -770,6 +1039,10 @@ columns = ["user_entitlement_id", "request_id"]
name = "idx_entitlement_usage_user_date"
columns = ["user_id", "usage_date"]
[[table.entitlement_usage_ledgers.indexes]]
name = "idx_entitlement_usage_entitlement_date"
columns = ["user_entitlement_id", "usage_date"]
[[table.payment_callbacks.indexes]]
name = "idx_payment_callbacks_order"
columns = ["order_no"]

View File

@@ -554,6 +554,121 @@ columns = ["user_id"]
name = "usage_wallet_id_idx"
columns = ["wallet_id"]
[table.usage_counter_deltas]
domain = "usage"
order = 15
primary_key = ["id"]
[[table.usage_counter_deltas.columns]]
name = "id"
type = "text"
length = 36
[[table.usage_counter_deltas.columns]]
name = "request_id"
type = "text"
length = 128
[[table.usage_counter_deltas.columns]]
name = "kind"
type = "text"
length = 64
[[table.usage_counter_deltas.columns]]
name = "target_id"
type = "text"
[[table.usage_counter_deltas.columns]]
name = "request_count_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "total_requests_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "success_count_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "error_count_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "dns_failures_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "stream_errors_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "total_tokens_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "total_cost_usd_delta"
type = "float64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "total_response_time_ms_delta"
type = "int64"
default = 0
[[table.usage_counter_deltas.columns]]
name = "last_used_at_unix_secs"
type = "unix_seconds"
nullable = true
[[table.usage_counter_deltas.columns]]
name = "last_used_ip"
type = "text"
nullable = true
[[table.usage_counter_deltas.columns]]
name = "candidate_last_used_at_unix_secs"
type = "unix_seconds"
nullable = true
[[table.usage_counter_deltas.columns]]
name = "removed_last_used_at_unix_secs"
type = "unix_seconds"
nullable = true
[[table.usage_counter_deltas.columns]]
name = "usage_created_at_unix_secs"
type = "unix_seconds"
nullable = true
[[table.usage_counter_deltas.columns]]
name = "created_at"
type = "timestamp"
[[table.usage_counter_deltas.columns]]
name = "processed_at"
type = "timestamp"
nullable = true
[[table.usage_counter_deltas.indexes]]
name = "ix_usage_counter_deltas_unprocessed"
columns = ["created_at", "id"]
[[table.usage_counter_deltas.indexes]]
name = "ix_usage_counter_deltas_processed"
columns = ["processed_at", "created_at", "id"]
[[table.usage_counter_deltas.indexes]]
name = "ix_usage_counter_deltas_request_kind"
columns = ["request_id", "kind", "target_id"]
[table.usage_settlement_snapshots]
domain = "usage"
order = 20