mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
Merge upstream main into feat/500-api-key-ip-whitelist
This commit is contained in:
@@ -22,6 +22,8 @@ CREATE TABLE IF NOT EXISTS users (
|
||||
`feature_settings` JSON,
|
||||
`rate_limit` INT,
|
||||
`rate_limit_mode` VARCHAR(32) NOT NULL DEFAULT 'system',
|
||||
`privacy_policy_accepted_version` VARCHAR(64),
|
||||
`privacy_policy_accepted_at` BIGINT,
|
||||
`metadata` JSON,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`updated_at` BIGINT NOT NULL,
|
||||
@@ -124,6 +126,7 @@ CREATE TABLE IF NOT EXISTS announcements (
|
||||
`author_id` VARCHAR(64),
|
||||
`is_active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`is_pinned` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
`requires_ack` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
`start_time` BIGINT,
|
||||
`end_time` BIGINT,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
|
||||
@@ -127,7 +127,8 @@ CREATE TABLE IF NOT EXISTS provider_api_keys (
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`updated_at` BIGINT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY provider_api_keys_provider_id_idx (`provider_id`)
|
||||
KEY provider_api_keys_provider_id_idx (`provider_id`),
|
||||
KEY idx_provider_api_keys_provider_default_sort (`provider_id`, `internal_priority`, `name`, `id`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pool_member_scores (
|
||||
@@ -286,6 +287,7 @@ CREATE TABLE IF NOT EXISTS video_tasks (
|
||||
UNIQUE KEY video_tasks_request_id_key (`request_id`),
|
||||
KEY video_tasks_external_id_idx (`external_task_id`),
|
||||
KEY video_tasks_next_poll_idx (`next_poll_at`),
|
||||
KEY video_tasks_due_poll_idx (`status`, `next_poll_at`, `updated_at`),
|
||||
KEY video_tasks_user_status_idx (`user_id`, `status`),
|
||||
KEY video_tasks_api_key_id_idx (`api_key_id`),
|
||||
KEY video_tasks_provider_id_idx (`provider_id`),
|
||||
|
||||
@@ -36,6 +36,7 @@ CREATE TABLE IF NOT EXISTS oauth_providers (
|
||||
`frontend_callback_url` VARCHAR(500) NOT NULL,
|
||||
`attribute_mapping` JSON,
|
||||
`extra_config` JSON,
|
||||
`icon_url` VARCHAR(500),
|
||||
`is_enabled` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`updated_at` BIGINT NOT NULL,
|
||||
|
||||
@@ -104,6 +104,68 @@ CREATE TABLE IF NOT EXISTS payment_orders (
|
||||
KEY idx_payment_orders_product (`product_id`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user_invite_codes (
|
||||
`user_id` VARCHAR(64) NOT NULL,
|
||||
`invite_code` VARCHAR(64) NOT NULL,
|
||||
`active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`updated_at` BIGINT NOT NULL,
|
||||
PRIMARY KEY (`user_id`),
|
||||
UNIQUE KEY user_invite_codes_invite_code_key (`invite_code`),
|
||||
CONSTRAINT user_invite_codes_user_id_fkey FOREIGN KEY (`user_id`) REFERENCES users (`id`) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS user_referrals (
|
||||
`id` VARCHAR(64) NOT NULL,
|
||||
`inviter_user_id` VARCHAR(64) NOT NULL,
|
||||
`invitee_user_id` VARCHAR(64) NOT NULL,
|
||||
`invite_code_snapshot` VARCHAR(64) NOT NULL,
|
||||
`source_json` JSON,
|
||||
`first_paid_order_id` VARCHAR(64),
|
||||
`first_paid_at` BIGINT,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`updated_at` BIGINT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY user_referrals_invitee_user_id_key (`invitee_user_id`),
|
||||
KEY idx_user_referrals_inviter (`inviter_user_id`, `created_at`),
|
||||
KEY idx_user_referrals_created (`created_at`),
|
||||
KEY idx_user_referrals_invite_code (`invite_code_snapshot`),
|
||||
CONSTRAINT user_referrals_inviter_user_id_fkey FOREIGN KEY (`inviter_user_id`) REFERENCES users (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT user_referrals_invitee_user_id_fkey FOREIGN KEY (`invitee_user_id`) REFERENCES users (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT user_referrals_first_paid_order_fkey FOREIGN KEY (`first_paid_order_id`) REFERENCES payment_orders (`id`) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS referral_rewards (
|
||||
`id` VARCHAR(64) NOT NULL,
|
||||
`referral_id` VARCHAR(64) NOT NULL,
|
||||
`inviter_user_id` VARCHAR(64) NOT NULL,
|
||||
`invitee_user_id` VARCHAR(64) NOT NULL,
|
||||
`reward_type` VARCHAR(32) NOT NULL,
|
||||
`trigger_point` VARCHAR(64) NOT NULL,
|
||||
`source_order_id` VARCHAR(64),
|
||||
`idempotency_key` VARCHAR(128) NOT NULL,
|
||||
`amount_usd` DOUBLE NOT NULL,
|
||||
`status` VARCHAR(32) NOT NULL DEFAULT 'pending',
|
||||
`wallet_transaction_id` VARCHAR(64),
|
||||
`reversed_amount_usd` DOUBLE NOT NULL DEFAULT 0,
|
||||
`pending_reversal_amount_usd` DOUBLE NOT NULL DEFAULT 0,
|
||||
`failure_reason` LONGTEXT,
|
||||
`admin_operator_id` VARCHAR(64),
|
||||
`admin_note` LONGTEXT,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`updated_at` BIGINT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY referral_rewards_idempotency_key_key (`idempotency_key`),
|
||||
KEY idx_referral_rewards_inviter_status (`inviter_user_id`, `status`, `created_at`),
|
||||
KEY idx_referral_rewards_inviter_created (`inviter_user_id`, `created_at`),
|
||||
KEY idx_referral_rewards_created (`created_at`),
|
||||
KEY idx_referral_rewards_source_order (`source_order_id`),
|
||||
CONSTRAINT referral_rewards_referral_id_fkey FOREIGN KEY (`referral_id`) REFERENCES user_referrals (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT referral_rewards_inviter_user_id_fkey FOREIGN KEY (`inviter_user_id`) REFERENCES users (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT referral_rewards_invitee_user_id_fkey FOREIGN KEY (`invitee_user_id`) REFERENCES users (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT referral_rewards_source_order_fkey FOREIGN KEY (`source_order_id`) REFERENCES payment_orders (`id`) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS payment_gateway_configs (
|
||||
`provider` VARCHAR(64) NOT NULL,
|
||||
`enabled` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
@@ -189,7 +251,8 @@ CREATE TABLE IF NOT EXISTS entitlement_usage_ledgers (
|
||||
`created_at` BIGINT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY uq_entitlement_usage_request (`user_entitlement_id`, `request_id`),
|
||||
KEY idx_entitlement_usage_user_date (`user_id`, `usage_date`)
|
||||
KEY idx_entitlement_usage_user_date (`user_id`, `usage_date`),
|
||||
KEY idx_entitlement_usage_entitlement_date (`user_entitlement_id`, `usage_date`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS refund_requests (
|
||||
|
||||
@@ -111,6 +111,33 @@ CREATE TABLE IF NOT EXISTS `usage` (
|
||||
KEY usage_wallet_id_idx (`wallet_id`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS usage_counter_deltas (
|
||||
`id` VARCHAR(36) NOT NULL,
|
||||
`request_id` VARCHAR(128) NOT NULL,
|
||||
`kind` VARCHAR(64) NOT NULL,
|
||||
`target_id` TEXT NOT NULL,
|
||||
`request_count_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`total_requests_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`success_count_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`error_count_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`dns_failures_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`stream_errors_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`total_tokens_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`total_cost_usd_delta` DOUBLE NOT NULL DEFAULT 0,
|
||||
`total_response_time_ms_delta` BIGINT NOT NULL DEFAULT 0,
|
||||
`last_used_at_unix_secs` BIGINT,
|
||||
`last_used_ip` TEXT,
|
||||
`candidate_last_used_at_unix_secs` BIGINT,
|
||||
`removed_last_used_at_unix_secs` BIGINT,
|
||||
`usage_created_at_unix_secs` BIGINT,
|
||||
`created_at` BIGINT NOT NULL,
|
||||
`processed_at` BIGINT,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY ix_usage_counter_deltas_unprocessed (`created_at`, `id`),
|
||||
KEY ix_usage_counter_deltas_processed (`processed_at`, `created_at`, `id`),
|
||||
KEY ix_usage_counter_deltas_request_kind (`request_id`, `kind`, `target_id`)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS usage_settlement_snapshots (
|
||||
`request_id` VARCHAR(128) NOT NULL,
|
||||
`billing_status` VARCHAR(64) NOT NULL,
|
||||
|
||||
Reference in New Issue
Block a user