|
|
@@ -95,6 +95,17 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_api_nonce ON api_request_nonces (api_clien
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_api_request_nonces_api_client_id ON api_request_nonces (api_client_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_api_request_nonces_api_client_id ON api_request_nonces (api_client_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_api_request_nonces_expires_at ON api_request_nonces (expires_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_api_request_nonces_expires_at ON api_request_nonces (expires_at);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS source_api_nonces (
|
|
|
|
|
|
|
|
id BIGSERIAL PRIMARY KEY,
|
|
|
|
|
|
|
|
created_at TIMESTAMPTZ,
|
|
|
|
|
|
|
|
api_key VARCHAR(96) NOT NULL,
|
|
|
|
|
|
|
|
nonce VARCHAR(64) NOT NULL,
|
|
|
|
|
|
|
|
expires_at TIMESTAMPTZ NOT NULL
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_source_api_nonce ON source_api_nonces (api_key, nonce);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_source_api_nonces_expires_at ON source_api_nonces (expires_at);
|
|
|
|
|
|
|
|
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- 商品目录与商户可售商品
|
|
|
|
-- 商品目录与商户可售商品
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
@@ -179,7 +190,7 @@ CREATE INDEX IF NOT EXISTS idx_wallet_ledger_entries_type ON wallet_ledger_entri
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_wallet_ledger_entries_reference_no ON wallet_ledger_entries (reference_no);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_wallet_ledger_entries_reference_no ON wallet_ledger_entries (reference_no);
|
|
|
|
|
|
|
|
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- 履约订单与任务
|
|
|
|
-- 履约订单
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fulfillment_orders (
|
|
|
|
CREATE TABLE IF NOT EXISTS fulfillment_orders (
|
|
|
@@ -203,12 +214,15 @@ CREATE TABLE IF NOT EXISTS fulfillment_orders (
|
|
|
|
currency VARCHAR(12) NOT NULL DEFAULT 'POINT',
|
|
|
|
currency VARCHAR(12) NOT NULL DEFAULT 'POINT',
|
|
|
|
order_status VARCHAR(16) NOT NULL DEFAULT 'paid',
|
|
|
|
order_status VARCHAR(16) NOT NULL DEFAULT 'paid',
|
|
|
|
buyer_reference VARCHAR(128),
|
|
|
|
buyer_reference VARCHAR(128),
|
|
|
|
|
|
|
|
request_fingerprint VARCHAR(64) NOT NULL DEFAULT '',
|
|
|
|
request_data TEXT,
|
|
|
|
request_data TEXT,
|
|
|
|
result_data TEXT,
|
|
|
|
result_data TEXT,
|
|
|
|
provider_order_no VARCHAR(96),
|
|
|
|
provider_order_no VARCHAR(96),
|
|
|
|
failure_reason VARCHAR(512),
|
|
|
|
failure_reason VARCHAR(512),
|
|
|
|
cancelled_at TIMESTAMPTZ,
|
|
|
|
cancelled_at TIMESTAMPTZ,
|
|
|
|
delivered_at TIMESTAMPTZ
|
|
|
|
delivered_at TIMESTAMPTZ,
|
|
|
|
|
|
|
|
delivery_link_expires_at TIMESTAMPTZ,
|
|
|
|
|
|
|
|
delivery_link_revoked_at TIMESTAMPTZ
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_fulfillment_orders_order_no ON fulfillment_orders (order_no);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_fulfillment_orders_order_no ON fulfillment_orders (order_no);
|
|
|
@@ -217,28 +231,10 @@ CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_deleted_at ON fulfillment_orde
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_merchant_id ON fulfillment_orders (merchant_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_merchant_id ON fulfillment_orders (merchant_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_merchant_product_id ON fulfillment_orders (merchant_product_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_merchant_product_id ON fulfillment_orders (merchant_product_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_order_status ON fulfillment_orders (order_status);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_order_status ON fulfillment_orders (order_status);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_request_fingerprint ON fulfillment_orders (request_fingerprint);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_provider_order_no ON fulfillment_orders (provider_order_no);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_provider_order_no ON fulfillment_orders (provider_order_no);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_delivery_link_expires_at ON fulfillment_orders (delivery_link_expires_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS fulfillment_jobs (
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_orders_delivery_link_revoked_at ON fulfillment_orders (delivery_link_revoked_at);
|
|
|
|
id BIGSERIAL PRIMARY KEY,
|
|
|
|
|
|
|
|
created_at TIMESTAMPTZ,
|
|
|
|
|
|
|
|
updated_at TIMESTAMPTZ,
|
|
|
|
|
|
|
|
merchant_id BIGINT NOT NULL,
|
|
|
|
|
|
|
|
order_id BIGINT NOT NULL,
|
|
|
|
|
|
|
|
status VARCHAR(16) NOT NULL DEFAULT 'pending',
|
|
|
|
|
|
|
|
attempts BIGINT NOT NULL DEFAULT 0,
|
|
|
|
|
|
|
|
next_run_at TIMESTAMPTZ NOT NULL,
|
|
|
|
|
|
|
|
provider_order_no VARCHAR(96),
|
|
|
|
|
|
|
|
request_payload TEXT,
|
|
|
|
|
|
|
|
result_payload TEXT,
|
|
|
|
|
|
|
|
last_error VARCHAR(512)
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_fulfillment_jobs_order_id ON fulfillment_jobs (order_id);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_jobs_merchant_id ON fulfillment_jobs (merchant_id);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_jobs_status ON fulfillment_jobs (status);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_jobs_next_run_at ON fulfillment_jobs (next_run_at);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_fulfillment_jobs_provider_order_no ON fulfillment_jobs (provider_order_no);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- ----------------------------------------------------------------------------
|
|
|
|
-- 回调订阅与投递(事务性 outbox)
|
|
|
|
-- 回调订阅与投递(事务性 outbox)
|
|
|
|